]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
tests: D-Bus Get/Set Pmf
authorJouni Malinen <j@w1.fi>
Sat, 14 Jan 2017 15:28:25 +0000 (17:28 +0200)
committerJouni Malinen <j@w1.fi>
Sat, 14 Jan 2017 15:28:25 +0000 (17:28 +0200)
Signed-off-by: Jouni Malinen <j@w1.fi>
tests/hwsim/test_dbus.py

index d7b4b6dfcd706bf9c846748bc236b64c01221217..994731537525fa4e70b5fc0c0ed5f90d71ee75fe 100644 (file)
@@ -2210,6 +2210,49 @@ def _test_dbus_apscan(dev, apdev):
     if_obj.Set(WPAS_DBUS_IFACE, "ApScan", dbus.UInt32(1),
                dbus_interface=dbus.PROPERTIES_IFACE)
 
+def test_dbus_pmf(dev, apdev):
+    """D-Bus Get/Set Pmf"""
+    try:
+        _test_dbus_pmf(dev, apdev)
+    finally:
+        dev[0].request("SET pmf 0")
+
+def _test_dbus_pmf(dev, apdev):
+    (bus,wpas_obj,path,if_obj) = prepare_dbus(dev[0])
+
+    dev[0].set("pmf", "0")
+    res = if_obj.Get(WPAS_DBUS_IFACE, "Pmf",
+                     dbus_interface=dbus.PROPERTIES_IFACE)
+    if res != 0:
+        raise Exception("Unexpected initial Pmf value: %d" % res)
+
+    for i in range(3):
+        if_obj.Set(WPAS_DBUS_IFACE, "Pmf", dbus.UInt32(i),
+                     dbus_interface=dbus.PROPERTIES_IFACE)
+        res = if_obj.Get(WPAS_DBUS_IFACE, "Pmf",
+                         dbus_interface=dbus.PROPERTIES_IFACE)
+        if res != i:
+            raise Exception("Unexpected Pmf value %d (expected %d)" % (res, i))
+
+    try:
+        if_obj.Set(WPAS_DBUS_IFACE, "Pmf", dbus.Int16(-1),
+                   dbus_interface=dbus.PROPERTIES_IFACE)
+        raise Exception("Invalid Set(Pmf,-1) accepted")
+    except dbus.exceptions.DBusException, e:
+        if "Error.Failed: wrong property type" not in str(e):
+            raise Exception("Unexpected error message for invalid Set(Pmf,-1): " + str(e))
+
+    try:
+        if_obj.Set(WPAS_DBUS_IFACE, "Pmf", dbus.UInt32(123),
+                   dbus_interface=dbus.PROPERTIES_IFACE)
+        raise Exception("Invalid Set(Pmf,123) accepted")
+    except dbus.exceptions.DBusException, e:
+        if "Error.Failed: Pmf must be 0, 1, or 2" not in str(e):
+            raise Exception("Unexpected error message for invalid Set(Pmf,123): " + str(e))
+
+    if_obj.Set(WPAS_DBUS_IFACE, "Pmf", dbus.UInt32(1),
+               dbus_interface=dbus.PROPERTIES_IFACE)
+
 def test_dbus_fastreauth(dev, apdev):
     """D-Bus Get/Set FastReauth"""
     (bus,wpas_obj,path,if_obj) = prepare_dbus(dev[0])