tests: Save the log of wmediumd
Signed-off-by: Masashi Honma <masashi.honma@gmail.com>
This commit is contained in:
parent
33a6da6908
commit
d760db19b1
2 changed files with 38 additions and 11 deletions
|
@ -516,6 +516,8 @@ def main():
|
|||
rename_log(args.logdir, 'fst-wpa_supplicant', name, None)
|
||||
if os.path.exists(os.path.join(args.logdir, 'fst-hostapd')):
|
||||
rename_log(args.logdir, 'fst-hostapd', name, None)
|
||||
if os.path.exists(os.path.join(args.logdir, 'wmediumd.log')):
|
||||
rename_log(args.logdir, 'wmediumd.log', name, None)
|
||||
|
||||
end = datetime.now()
|
||||
diff = end - start
|
||||
|
|
|
@ -18,26 +18,51 @@ ifaces :
|
|||
};
|
||||
"""
|
||||
|
||||
def test_wmediumd_simple(dev, apdev):
|
||||
def output_wmediumd_log(p, params, data):
|
||||
log_file = open(os.path.abspath(os.path.join(params['logdir'],
|
||||
'wmediumd.log')), 'a')
|
||||
log_file.write(data)
|
||||
log_file.close()
|
||||
|
||||
def start_wmediumd(fn, params):
|
||||
try:
|
||||
p = subprocess.Popen(['wmediumd', '-c', fn],
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.STDOUT)
|
||||
except OSError, e:
|
||||
if e.errno == errno.ENOENT:
|
||||
raise HwsimSkip('wmediumd not available')
|
||||
raise
|
||||
|
||||
logs = ''
|
||||
while True:
|
||||
line = p.stdout.readline()
|
||||
if not line:
|
||||
output_wmediumd_log(p, params, logs)
|
||||
raise Exception('wmediumd was terminated unexpectedly')
|
||||
if line.find('REGISTER SENT!') > -1:
|
||||
break
|
||||
logs += line
|
||||
return p
|
||||
|
||||
def stop_wmediumd(p, params):
|
||||
p.terminate()
|
||||
p.wait()
|
||||
stdoutdata, stderrdata = p.communicate()
|
||||
output_wmediumd_log(p, params, stdoutdata)
|
||||
|
||||
def test_wmediumd_simple(dev, apdev, params):
|
||||
"""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
|
||||
p = start_wmediumd(fn, params)
|
||||
try:
|
||||
_test_ap_open(dev, apdev)
|
||||
finally:
|
||||
p.terminate()
|
||||
p.wait()
|
||||
stop_wmediumd(p, params)
|
||||
# test that releasing hwsim works correctly
|
||||
_test_ap_open(dev, apdev)
|
||||
finally:
|
||||
|
|
Loading…
Reference in a new issue