ci: cram: pwhm: update pwhm test with FEAT-389 requirements
FEAT-389 requires that link removal or addition must not trigger interface reconfiguration. This test update verifies that no interface reconfiguration occurs by checking the ifindex value from the iw output. References: FEAT-389,PPM-3772 Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
This commit is contained in:
parent
b814022ee3
commit
efd6030833
@ -399,6 +399,62 @@ get_main_link_itf () {
|
||||
fi
|
||||
}
|
||||
|
||||
# print ifindex of a specific AP
|
||||
# In : AP index
|
||||
# Out : ifindex
|
||||
get_ifindex () {
|
||||
local ap_index=$1
|
||||
ifname=$(wifi_dm "AccessPoint.${ap_index}.SSIDReference+.Name?" | cut -d'"' -f2)
|
||||
R logger -t cram "get_ifindex: AccessPoint ${1} / interface $ifname"
|
||||
R "iw dev ${ifname} info" | grep ifindex | sed 's/^[ \t]*//' | cut -d ' ' -f2
|
||||
}
|
||||
|
||||
# Print sorted list of hostapd sockets inodes and pathes
|
||||
# In : no input
|
||||
# Out : list of hostapd sockets inodes and paths
|
||||
read_hostapd_inodes(){
|
||||
ilist=$(R "ls -li /var/run/hostapd/wlan* 2>/dev/null" | awk '{print $1, $NF}' | sort)
|
||||
echo "$ilist"
|
||||
}
|
||||
|
||||
# print lines difference (diff command equivalent)
|
||||
# In : old string, new string
|
||||
# Out : lines differences with A:/R: prefix (Added/Removed)
|
||||
compare_list() {
|
||||
awk -v l1="$1" -v l2="$2" '
|
||||
function trim(s) { gsub(/^[ \t\r]+|[ \t\r]+$/, "", s); return s }
|
||||
BEGIN {
|
||||
n1 = split(l1, a, "\n")
|
||||
n2 = split(l2, b, "\n")
|
||||
|
||||
for (i=1; i<=n1; i++) if ((a[i]=trim(a[i])) != "") s1[a[i]]
|
||||
for (i=1; i<=n2; i++) if ((b[i]=trim(b[i])) != "") s2[b[i]]
|
||||
|
||||
for (i=1; i<=n1; i++) if (a[i] != "" && !(a[i] in s2)) print "R: " a[i]
|
||||
for (i=1; i<=n2; i++) if (b[i] != "" && !(b[i] in s1)) print "A: " b[i]
|
||||
}'
|
||||
}
|
||||
|
||||
# compare ifindex of specific AP
|
||||
# In : AP index, old ifindex list
|
||||
# Out : OK / error message
|
||||
check_ifindexes () {
|
||||
while [ "$#" -ge 2 ]; do
|
||||
ap_index=$1
|
||||
tgt_ifindex=$2
|
||||
|
||||
current_ifindex=$(get_ifindex "${ap_index}")
|
||||
|
||||
if [ "${current_ifindex}" = "${tgt_ifindex}" ]; then
|
||||
echo "OK"
|
||||
else
|
||||
echo "AP${ap_index}: NOK (got ${current_ifindex}, expected ${tgt_ifindex})"
|
||||
fi
|
||||
|
||||
shift 2
|
||||
done
|
||||
}
|
||||
|
||||
# print link number from iw output
|
||||
# In : APMLD index (ie MLDID)
|
||||
# Out : link number from iw output
|
||||
|
||||
@ -59,7 +59,9 @@ Check that no hostapd instance is running:
|
||||
$ R "pgrep -f 'hostapd'"
|
||||
[1]
|
||||
|
||||
Test activation of access point 1:
|
||||
#####################################
|
||||
# Test activation of access point 1 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 1 activation "$(get_ssid_ref 1)""
|
||||
|
||||
@ -91,7 +93,24 @@ Save hostap pid:
|
||||
$ hostap_pid=$(R pgrep -f 'hostapd')
|
||||
$ R logger -t cram "hostap PID : $hostap_pid"
|
||||
|
||||
Test activation of access point 2:
|
||||
Save all the current ifindexes and verify inodes (FEAT-389):
|
||||
|
||||
$ ilist_old=
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
$ ifindexes=$(R "iw dev" | grep ifindex -B 1 | sed 's/^[[:space:]]*//')
|
||||
|
||||
|
||||
This is a new MLD so two new sockets should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.1 (re)
|
||||
A: .* /var/run/hostapd/wlan2.1_link0 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 2 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 2 activation "$(get_ssid_ref 2)""
|
||||
|
||||
@ -120,7 +139,21 @@ Check wpacltrl socket file:
|
||||
wlan2.2
|
||||
wlan2.2_link0
|
||||
|
||||
Test activation of access point 3:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new MLD so two new sockets should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.2 (re)
|
||||
A: .* /var/run/hostapd/wlan2.2_link0 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 3 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 3 activation "$(get_ssid_ref 3)""
|
||||
|
||||
@ -150,7 +183,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2
|
||||
wlan2.2_link0
|
||||
|
||||
Test activation of access point 4:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new link so one new socket should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.1_link1 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 4 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 4 activation "$(get_ssid_ref 4)""
|
||||
|
||||
@ -181,7 +227,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2_link0
|
||||
wlan2.2_link1
|
||||
|
||||
Test activation of access point 5:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new link so one new socket should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.2_link1 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 5 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 5 activation "$(get_ssid_ref 5)""
|
||||
|
||||
@ -213,7 +272,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2_link0
|
||||
wlan2.2_link1
|
||||
|
||||
Test activation of access point 6:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new link so one new socket should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.1_link2 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 6 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 6 activation "$(get_ssid_ref 6)""
|
||||
|
||||
@ -246,7 +318,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2_link1
|
||||
wlan2.2_link2
|
||||
|
||||
Test activation of access point 7:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new link so one new socket should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.2_link2 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 7 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 7 activation "$(get_ssid_ref 7)""
|
||||
|
||||
@ -281,8 +366,21 @@ Check wpacltrl socket file:
|
||||
wlan2.3
|
||||
wlan2.3_link0
|
||||
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
Test activation of access point 8:
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new MLD so two new sockets should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.3 (re)
|
||||
A: .* /var/run/hostapd/wlan2.3_link0 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 8 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 8 activation "$(get_ssid_ref 8)""
|
||||
|
||||
@ -318,7 +416,20 @@ Check wpacltrl socket file:
|
||||
wlan2.3_link0
|
||||
wlan2.3_link1
|
||||
|
||||
Test activation of access point 9:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new link so one new socket should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.3_link1 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#####################################
|
||||
# Test activation of access point 9 #
|
||||
#####################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 9 activation "$(get_ssid_ref 9)""
|
||||
|
||||
@ -355,9 +466,26 @@ Check wpacltrl socket file:
|
||||
wlan2.3_link1
|
||||
wlan2.3_link2
|
||||
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
This is a new link so one new socket should be created:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
A: .* /var/run/hostapd/wlan2.3_link2 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
Check is any ifindex changed. grep only removed (ie changed) ifindexes (FEAT-389):
|
||||
|
||||
$ ifidx_cur=$(R "iw dev" | grep ifindex -B 1 | sed 's/^[[:space:]]*//')
|
||||
$ compare_list "$ifindexes" "$ifidx_cur" | grep 'R:' || true
|
||||
|
||||
$ sleep 5
|
||||
|
||||
Check if hostap pid has changed or not:
|
||||
|
||||
$ if [ "$(R pgrep -f 'hostapd')" = "$hostap_pid" ]; then echo "true"; else echo "hostap restarted during the test !"; fi
|
||||
true
|
||||
|
||||
|
||||
@ -5,11 +5,16 @@ Create R alias:
|
||||
|
||||
$ R "logger -t cram 'Starting PWHM test (step 2) ...'"
|
||||
|
||||
Save hostap pid:
|
||||
Save hostap pid, it's needed as part of script split (PCF-2222):
|
||||
|
||||
$ hostap_pid=$(R pgrep -f 'hostapd')
|
||||
$ R logger -t cram "hostap PID : $hostap_pid"
|
||||
|
||||
Save inodes (FEAT-389), it's needed as part of script split (PCF-2222)
|
||||
|
||||
$ ilist_old=$(read_hostapd_inodes)
|
||||
$ ifindexes=$(R "iw dev" | grep ifindex -B 1 | sed 's/^[[:space:]]*//')
|
||||
|
||||
Check that hostapd is operating as expected:
|
||||
|
||||
$ R logger -t cram "Check that hostapd is operating"
|
||||
@ -62,7 +67,9 @@ Check that the tree interfaces are present in the main link interface:
|
||||
link 2:
|
||||
channel.* (re)
|
||||
|
||||
Test deactivation of access point 9:
|
||||
#######################################
|
||||
# Test deactivation of access point 9 #
|
||||
#######################################
|
||||
|
||||
$ enable_ap_sync 9 0
|
||||
AccessPoint.9.Enable=0
|
||||
@ -96,7 +103,20 @@ Check wpacltrl socket file:
|
||||
wlan2.3_link0
|
||||
wlan2.3_link1
|
||||
|
||||
Test deactivation of access point 8:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
One link was removed, so there should be one less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.3_link2 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 8 #
|
||||
#######################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 8 deactivation "$(get_ssid_ref 8)""
|
||||
|
||||
@ -131,7 +151,20 @@ Check wpacltrl socket file:
|
||||
wlan2.3
|
||||
wlan2.3_link0
|
||||
|
||||
Test deactivation of access point 7:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
One link was removed, so there should be one less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.3_link1 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 7 #
|
||||
#######################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 7 deactivation "$(get_ssid_ref 7)""
|
||||
|
||||
@ -164,7 +197,21 @@ Check wpacltrl socket file:
|
||||
wlan2.2_link1
|
||||
wlan2.2_link2
|
||||
|
||||
Test deactivation of access point 6:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
The MLD was disabled, so there should be two less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.3 (re)
|
||||
R: .* /var/run/hostapd/wlan2.3_link0 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 6 #
|
||||
#######################################
|
||||
|
||||
$ enable_ap_sync 6 0
|
||||
AccessPoint.6.Enable=0
|
||||
@ -194,7 +241,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2_link0
|
||||
wlan2.2_link1
|
||||
|
||||
Test deactivation of access point 5:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
One link was removed, so there should be one less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.2_link2 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 5 #
|
||||
#######################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 5 deactivation "$(get_ssid_ref 5)""
|
||||
|
||||
@ -225,7 +285,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2_link0
|
||||
wlan2.2_link1
|
||||
|
||||
Test deactivation of access point 4:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
One link was removed, so there should be one less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.1_link2 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 4 #
|
||||
#######################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 4 deactivation "$(get_ssid_ref 4)""
|
||||
|
||||
@ -255,7 +328,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2
|
||||
wlan2.2_link0
|
||||
|
||||
Test deactivation of access point 3:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
One link was removed, so there should be one less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.2_link1 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 3 #
|
||||
#######################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 3 deactivation "$(get_ssid_ref 3)""
|
||||
|
||||
@ -284,7 +370,20 @@ Check wpacltrl socket file:
|
||||
wlan2.2
|
||||
wlan2.2_link0
|
||||
|
||||
Test deactivation of access point 2:
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
One link was removed, so there should be one less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.1_link1 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
#######################################
|
||||
# Test deactivation of access point 2 #
|
||||
#######################################
|
||||
|
||||
$ enable_ap_sync 2 0
|
||||
AccessPoint.2.Enable=0
|
||||
@ -309,12 +408,26 @@ Check wpacltrl socket file:
|
||||
wlan2.1
|
||||
wlan2.1_link0
|
||||
|
||||
Check and save inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
The MLD was disabled, so there should be two less socket:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.2 (re)
|
||||
R: .* /var/run/hostapd/wlan2.2_link0 (re)
|
||||
|
||||
$ ilist_old=$ilist_new
|
||||
|
||||
Before deactivating last AP (ie stopping hostpad), check if hostap pid has changed or not:
|
||||
|
||||
$ if [ "$(R pgrep -f 'hostapd')" = "$hostap_pid" ]; then echo "true"; else echo "hostap restarted during the test !"; fi
|
||||
true
|
||||
|
||||
Test deactivation of access point 1:
|
||||
#######################################
|
||||
# Test deactivation of access point 1 #
|
||||
#######################################
|
||||
|
||||
$ R logger -t cram "Test AccessPoint 1 deactivation "$(get_ssid_ref 1)""
|
||||
|
||||
@ -340,6 +453,21 @@ Check wpacltrl socket file:
|
||||
$ ls_hapd_sockets
|
||||
ls: /var/run/hostapd/: No such file or directory
|
||||
|
||||
Check inodes (FEAT-389):
|
||||
|
||||
$ ilist_new=$(read_hostapd_inodes)
|
||||
|
||||
The MLD was disabled, so there should be two less socket so all sockets are now closed:
|
||||
|
||||
$ compare_list "$ilist_old" "$ilist_new"
|
||||
R: .* /var/run/hostapd/wlan2.1 (re)
|
||||
R: .* /var/run/hostapd/wlan2.1_link0 (re)
|
||||
|
||||
Check is any ifindex changed (FEAT-389):
|
||||
|
||||
$ ifidx_cur=$(R "iw dev" | grep ifindex -B 1 | sed 's/^[[:space:]]*//')
|
||||
$ compare_list "$ifindexes" "$ifidx_cur"
|
||||
|
||||
Check if hostapd process is stopped:
|
||||
|
||||
$ R "pgrep -f 'hostapd'"
|
||||
@ -347,8 +475,8 @@ Check if hostapd process is stopped:
|
||||
|
||||
Resume prplMesh:
|
||||
|
||||
$ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Enable=1" | tr -d '\n'
|
||||
1 (no-eol)
|
||||
$ R "ba-cli -l X_PRPLWARE-COM_ProcessManager.PrplMesh.Enable=1" | tr -d '\n'
|
||||
1 (no-eol)
|
||||
|
||||
$ R logger -t cram "Stopping PWHM test .."
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user