ci: cram: mlo.t: fix long CRAM commands that lead to parsing failures

Problem:

Sometimes, the mlo.t cram test throws the following error and quits
without continuing the execution :

   $ R "ba-cli -j -l WiFi.AccessPoint.1.SSIDReference+.MLDUnit=0 |jsonfilter -e @[0]'[*].MLDUnit' "
-  0
+  /bin/sh: 232: Syntax error: Unterminated quoted string (no-eol)

Cause:

This issue was triggered by a known CRAM limitation where the command
buffer size is restricted to 8kB when running under python versions
earlier than 3.14. When running the script mlo.t we are exceeding this
limit, leading to parsing errors in the test runner.
(c.f. https://prplfoundationcloud.atlassian.net/wiki/spaces/PRPLFOUN/pages/1097170947/Cram#Command-Buffer-Size-Limit)

Solution:

Optimize the script so that the command buffer stays below the 8kB limit.
This constraint will remain in place for future script updates until the
python version may be updated.

Fixes: PPW-1179

Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
This commit is contained in:
Houssem Dafdouf 2025-11-18 17:45:01 +01:00 committed by Hela Saadani
parent e0f771b3f8
commit e8d8c0cf5e

View File

@ -94,7 +94,7 @@ Disable MLO on private and guest vaps:
Test activation of access point 1:
$ R logger -t cram "Test AccessPoint 1 activation "$(get_ssid_ref 1)""
$ R logger -t cram "Enable AP 1 "$(get_ssid_ref 1)""
$ enable_ap 1
WiFi.AccessPoint.1 enabled
@ -117,7 +117,7 @@ Test activation of access point 1:
Test activation of access point 2:
$ R logger -t cram "Test AccessPoint 2 activation "$(get_ssid_ref 2)""
$ R logger -t cram "Enable AP 2 "$(get_ssid_ref 2)""
$ enable_ap 2
WiFi.AccessPoint.2 enabled
@ -140,7 +140,7 @@ Test activation of access point 2:
Test activation of access point 3:
$ R logger -t cram "Test AccessPoint 3 activation "$(get_ssid_ref 3)""
$ R logger -t cram "Enable AP 3 "$(get_ssid_ref 3)""
$ enable_ap 3
WiFi.AccessPoint.3 enabled
@ -163,7 +163,7 @@ Test activation of access point 3:
Test activation of access point 4:
$ R logger -t cram "Test AccessPoint 4 activation "$(get_ssid_ref 4)""
$ R logger -t cram "Enable AP 4 "$(get_ssid_ref 4)""
$ enable_ap 4
WiFi.AccessPoint.4 enabled
@ -186,7 +186,7 @@ Test activation of access point 4:
Test activation of access point 5:
$ R logger -t cram "Test AccessPoint 5 activation "$(get_ssid_ref 5)""
$ R logger -t cram "Enable AP 5 "$(get_ssid_ref 5)""
$ enable_ap 5
WiFi.AccessPoint.5 enabled
@ -209,7 +209,7 @@ Test activation of access point 5:
Test activation of access point 6:
$ R logger -t cram "Test AccessPoint 6 activation "$(get_ssid_ref 6)""
$ R logger -t cram "Enable AP 6 "$(get_ssid_ref 6)""
$ enable_ap 6
WiFi.AccessPoint.6 enabled
@ -232,7 +232,7 @@ Test activation of access point 6:
Test activation of access point 7:
$ R logger -t cram "Test AccessPoint 7 activation "$(get_ssid_ref 7)""
$ R logger -t cram "Enable AP 7 "$(get_ssid_ref 7)""
$ enable_ap 7
WiFi.AccessPoint.7 enabled
@ -255,7 +255,7 @@ Test activation of access point 7:
Test activation of access point 8:
$ R logger -t cram "Test AccessPoint 8 activation "$(get_ssid_ref 8)""
$ R logger -t cram "Enable AP 8 "$(get_ssid_ref 8)""
$ enable_ap 8
WiFi.AccessPoint.8 enabled
@ -278,7 +278,7 @@ Test activation of access point 8:
Test activation of access point 9:
$ R logger -t cram "Test AccessPoint 9 activation "$(get_ssid_ref 9)""
$ R logger -t cram "Enable AP 9 "$(get_ssid_ref 9)""
$ enable_ap 9
WiFi.AccessPoint.9 enabled
@ -348,7 +348,7 @@ Check iw interfaces and beaconing:
Test deactivation of access point 9:
$ R logger -t cram "Test AccessPoint 9 deactivation "$(get_ssid_ref 9)""
$ R logger -t cram "Disable AP 9 "$(get_ssid_ref 9)""
$ disable_ap 9
WiFi.AccessPoint.9 disabled
@ -371,7 +371,7 @@ Test deactivation of access point 9:
Test deactivation of access point 8:
$ R logger -t cram "Test AccessPoint 8 deactivation "$(get_ssid_ref 8)""
$ R logger -t cram "Disable AP 8 "$(get_ssid_ref 8)""
$ disable_ap 8
WiFi.AccessPoint.8 disabled
@ -394,7 +394,7 @@ Test deactivation of access point 8:
Test deactivation of access point 7:
$ R logger -t cram "Test AccessPoint 7 deactivation "$(get_ssid_ref 7)""
$ R logger -t cram "Disable AP 7 "$(get_ssid_ref 7)""
$ disable_ap 7
WiFi.AccessPoint.7 disabled
@ -416,7 +416,7 @@ Test deactivation of access point 7:
Up
Test deactivation of access point 6:
$ R logger -t cram "Test AccessPoint 6 deactivation "$(get_ssid_ref 6)""
$ R logger -t cram "Disable AP 6 "$(get_ssid_ref 6)""
$ disable_ap 6
WiFi.AccessPoint.6 disabled
@ -439,7 +439,7 @@ Test deactivation of access point 6:
Test deactivation of access point 5:
$ R logger -t cram "Test AccessPoint 5 deactivation "$(get_ssid_ref 5)""
$ R logger -t cram "Disable AP 5 "$(get_ssid_ref 5)""
$ disable_ap 5
WiFi.AccessPoint.5 disabled
@ -462,7 +462,7 @@ Test deactivation of access point 5:
Test deactivation of access point 4:
$ R logger -t cram "Test AccessPoint 4 deactivation "$(get_ssid_ref 4)""
$ R logger -t cram "Disable AP 4 "$(get_ssid_ref 4)""
$ disable_ap 4
WiFi.AccessPoint.4 disabled
@ -485,7 +485,7 @@ Test deactivation of access point 4:
Test deactivation of access point 3:
$ R logger -t cram "Test AccessPoint 3 deactivation "$(get_ssid_ref 3)""
$ R logger -t cram "Disable AP 3 "$(get_ssid_ref 3)""
$ disable_ap 3
WiFi.AccessPoint.3 disabled
@ -508,7 +508,7 @@ Test deactivation of access point 3:
Test deactivation of access point 2:
$ R logger -t cram "Test AccessPoint 2 deactivation "$(get_ssid_ref 2)""
$ R logger -t cram "Disable AP 2 "$(get_ssid_ref 2)""
$ disable_ap 2
WiFi.AccessPoint.2 disabled
@ -531,7 +531,7 @@ Test deactivation of access point 2:
Test deactivation of access point 1:
$ R logger -t cram "Test AccessPoint 1 deactivation "$(get_ssid_ref 1)""
$ R logger -t cram "Disable AP 1 "$(get_ssid_ref 1)""
$ disable_ap 1
WiFi.AccessPoint.1 disabled
@ -561,22 +561,22 @@ Restore defautlt MLDUnit values:
$ R logger -t cram "Restore default MLD configuration"
$ R "ba-cli -j -l WiFi.AccessPoint.1.SSIDReference+.MLDUnit=0 |jsonfilter -e @[0]'[*].MLDUnit' "
$ R 'ba-cli -l WiFi.AccessPoint.1.SSIDReference+.MLDUnit=0' | sed '/^$/d'
0
$ R "ba-cli -j -l WiFi.AccessPoint.2.SSIDReference+.MLDUnit=1 |jsonfilter -e @[0]'[*].MLDUnit' "
$ R 'ba-cli -l WiFi.AccessPoint.2.SSIDReference+.MLDUnit=1' | sed '/^$/d'
1
$ R "ba-cli -j -l WiFi.AccessPoint.3.SSIDReference+.MLDUnit=0 |jsonfilter -e @[0]'[*].MLDUnit' "
$ R 'ba-cli -l WiFi.AccessPoint.3.SSIDReference+.MLDUnit=0' | sed '/^$/d'
0
$ R "ba-cli -j -l WiFi.AccessPoint.4.SSIDReference+.MLDUnit=1 |jsonfilter -e @[0]'[*].MLDUnit' "
$ R 'ba-cli -l WiFi.AccessPoint.4.SSIDReference+.MLDUnit=1' | sed '/^$/d'
1
$ R "ba-cli -j -l WiFi.AccessPoint.5.SSIDReference+.MLDUnit=0 |jsonfilter -e @[0]'[*].MLDUnit' "
$ R 'ba-cli -l WiFi.AccessPoint.5.SSIDReference+.MLDUnit=0' | sed '/^$/d'
0
$ R "ba-cli -j -l WiFi.AccessPoint.6.SSIDReference+.MLDUnit=1 |jsonfilter -e @[0]'[*].MLDUnit' "
$ R 'ba-cli -l WiFi.AccessPoint.6.SSIDReference+.MLDUnit=1' | sed '/^$/d'
1
Resume prplMesh: