Browse Source

tests: RADIUS Accounting in RSN and failure to add attributes due to OOM

Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
Jouni Malinen 8 years ago
parent
commit
7745728ee8
1 changed files with 37 additions and 1 deletions
  1. 37 1
      tests/hwsim/test_radius.py

+ 37 - 1
tests/hwsim/test_radius.py

@@ -1448,7 +1448,7 @@ def test_radius_acct_failure_oom(dev, apdev):
                                          "181:s:" + 250*'E' ] }
     hapd = hostapd.add_ap(apdev[0], params)
 
-    with alloc_fail(hapd, 1, "radius_msg_add_attr;=accounting_msg"):
+    with alloc_fail(hapd, 1, "radius_msg_add_attr;?radius_msg_add_attr_int32;=accounting_msg"):
         dev[0].connect("radius-acct-open", key_mgmt="NONE", scan_freq="2412")
         wait_fail_trigger(hapd, "GET_ALLOC_FAIL")
 
@@ -1456,6 +1456,42 @@ def test_radius_acct_failure_oom(dev, apdev):
         dev[1].connect("radius-acct-open", key_mgmt="NONE", scan_freq="2412")
         wait_fail_trigger(hapd, "GET_ALLOC_FAIL")
 
+def test_radius_acct_failure_oom_rsn(dev, apdev):
+    """RADIUS Accounting in RSN and failure to add attributes due to OOM"""
+    params = hostapd.wpa2_eap_params(ssid="radius-acct")
+    params['acct_server_addr'] = "127.0.0.1"
+    params['acct_server_port'] = "1813"
+    params['acct_server_shared_secret'] = "radius"
+    params['radius_acct_interim_interval'] = "1"
+    params['nas_identifier'] =  250*'A'
+    params['radius_acct_req_attr'] = [ "126:s:" + 250*'B',
+                                       "77:s:" + 250*'C',
+                                       "127:s:" + 250*'D',
+                                       "181:s:" + 250*'E' ]
+    hapd = hostapd.add_ap(apdev[0], params)
+    bssid = hapd.own_addr()
+
+    dev[0].scan_for_bss(bssid, freq="2412")
+    with alloc_fail(hapd, 1, "radius_msg_add_attr;?radius_msg_add_attr_int32;=accounting_msg"):
+        connect(dev[0], "radius-acct")
+        wait_fail_trigger(hapd, "GET_ALLOC_FAIL")
+
+    dev[1].scan_for_bss(bssid, freq="2412")
+    with alloc_fail(hapd, 1, "accounting_sta_report"):
+        connect(dev[1], "radius-acct")
+        wait_fail_trigger(hapd, "GET_ALLOC_FAIL")
+
+    dev[2].scan_for_bss(bssid, freq="2412")
+    connect(dev[2], "radius-acct")
+
+    for i in range(1, 8):
+        with alloc_fail(hapd, i, "radius_msg_add_attr;?radius_msg_add_attr_int32;=accounting_msg"):
+            wait_fail_trigger(hapd, "GET_ALLOC_FAIL")
+
+    for i in range(1, 15):
+        with alloc_fail(hapd, i, "radius_msg_add_attr;?radius_msg_add_attr_int32;=accounting_sta_report"):
+            wait_fail_trigger(hapd, "GET_ALLOC_FAIL")
+
 def test_radius_acct_failure_sta_data(dev, apdev):
     """RADIUS Accounting and failure to get STA data"""
     params = { "ssid": "radius-acct-open",