tests: Add a simple wmediumd test

If wmediumd is available on the path, test that it can forward
packets between two virtual nodes and that stopping it makes
the regular in-kernel datapath do the needed work again.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Johannes Berg 2015-11-27 15:41:37 +01:00 committed by Jouni Malinen
parent f6c09bf46e
commit 10a15590f8
2 changed files with 47 additions and 0 deletions

View file

@ -19,6 +19,9 @@ from wpasupplicant import WpaSupplicant
def test_ap_open(dev, apdev):
"""AP with open mode (no security) configuration"""
_test_ap_open(dev, apdev)
def _test_ap_open(dev, apdev):
hapd = hostapd.add_ap(apdev[0]['ifname'], { "ssid": "open" })
dev[0].connect("open", key_mgmt="NONE", scan_freq="2412",
bg_scan_period="0")

View file

@ -0,0 +1,44 @@
# wmediumd sanity checks
# Copyright (c) 2015, Intel Deutschland GmbH
#
# This software may be distributed under the terms of the BSD license.
# See README for more details.
import tempfile, os, subprocess, errno
from utils import HwsimSkip
from test_ap_open import _test_ap_open
CFG = """
ifaces :
{
ids = ["%s", "%s" ];
links = (
(0, 1, 30)
);
};
"""
def test_wmediumd_simple(dev, apdev):
"""test a simple wmediumd configuration"""
fd, fn = tempfile.mkstemp()
try:
f = os.fdopen(fd, 'w')
f.write(CFG % (apdev[0]['bssid'], dev[0].own_addr()))
f.close()
try:
p = subprocess.Popen(['wmediumd', '-c', fn],
stdout=open('/dev/null', 'a'),
stderr=subprocess.STDOUT)
except OSError, e:
if e.errno == errno.ENOENT:
raise HwsimSkip("wmediumd not available")
raise
try:
_test_ap_open(dev, apdev)
finally:
p.terminate()
p.wait()
# test that releasing hwsim works correctly
_test_ap_open(dev, apdev);
finally:
os.unlink(fn)