tests: Use pgrep instead of ps
The ps command as shipped by busybox does not support the "command" column. Change the code to use pgrep instead which will work fine in all environments. In addition, raise an exception if PID was not found since the test would just hang with pid = 0. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com>
This commit is contained in:
parent
5ff6a2749b
commit
71bcb97b8c
2 changed files with 10 additions and 12 deletions
|
@ -7607,20 +7607,15 @@ def test_ap_wpa2_eap_psk_mac_addr_change(dev, apdev):
|
|||
params = hostapd.wpa2_eap_params(ssid="test-wpa2-eap")
|
||||
hapd = hostapd.add_ap(apdev[0], params)
|
||||
|
||||
cmd = subprocess.Popen(['ps', '-eo', 'pid,command'], stdout=subprocess.PIPE)
|
||||
res = cmd.stdout.read().decode()
|
||||
cmd = subprocess.Popen(['pgrep', '-nf', 'wpa_supplicant.*' + dev[0].ifname],
|
||||
stdout=subprocess.PIPE)
|
||||
res = cmd.stdout.read().decode().strip()
|
||||
cmd.stdout.close()
|
||||
pid = 0
|
||||
for p in res.splitlines():
|
||||
if "wpa_supplicant" not in p:
|
||||
continue
|
||||
if dev[0].ifname not in p:
|
||||
continue
|
||||
pid = int(p.strip().split(' ')[0])
|
||||
if pid == 0:
|
||||
logger.info("Could not find wpa_supplicant PID")
|
||||
else:
|
||||
if res:
|
||||
pid = int(res)
|
||||
logger.info("wpa_supplicant PID %d" % pid)
|
||||
else:
|
||||
raise Exception("Could not find wpa_supplicant PID")
|
||||
|
||||
addr = dev[0].get_status_field("address")
|
||||
subprocess.call(['ip', 'link', 'set', 'dev', dev[0].ifname, 'down'])
|
||||
|
|
|
@ -146,6 +146,9 @@ if [ "$TELNET" = "1" ] ; then
|
|||
) &
|
||||
fi
|
||||
|
||||
# procps 3.3.17 needs an uptime of >1s (relevant for UML time-travel)
|
||||
sleep 1
|
||||
|
||||
# check if we're rebooting due to a kernel panic ...
|
||||
if grep -q 'Kernel panic' /tmp/logs/console ; then
|
||||
echo "KERNEL CRASHED!" >/dev/ttyS0
|
||||
|
|
Loading…
Reference in a new issue