mirror of
				https://github.com/Telecominfraproject/wlan-lanforge-scripts.git
				synced 2025-10-31 02:38:03 +00:00 
			
		
		
		
	gui-automation: Add serial-console and other logging.
The openwrt_ctl.py program can do some basic commands and console logging on OpenWrt and LANforge Linux systems. Add some more log gathering logic to the basic_regression.bash script.
This commit is contained in:
		| @@ -11,6 +11,14 @@ | ||||
| # | ||||
| # | ||||
|  | ||||
| # Disable stdout buffering in python so that we get serial console log | ||||
| # output promptly. | ||||
| PYTHONUNBUFFERED=1 | ||||
| export PYTHONUNBUFFERED | ||||
|  | ||||
| AP_SERIAL=${AP_SERIAL:-NONE} | ||||
| LF_SERIAL=${LF_SERIAL:-NONE} | ||||
| LFPASSWD=${LFPASSWD:-lanforge}  # Root password on LANforge machine | ||||
| AP_AUTO_CFG_FILE=${AP_AUTO_CFG_FILE:-test_configs/AP-Auto-ap-auto-32-64-dual.txt} | ||||
| WCT_CFG_FILE=${WCT_CFG_FILE:-test_configs/WCT-64sta.txt} | ||||
| DPT_CFG_FILE=${DPT_CFG_FILE:-test_configs/dpt-pkt-sz.txt} | ||||
| @@ -66,7 +74,7 @@ RSLTS_DIR=${RSLTS_DIR:-basic_regression_results_$DATESTR} | ||||
| AP_AUTO_CFG=ben | ||||
| WCT_CFG=ben | ||||
| DPT_CFG=ben | ||||
| SCENARIO=64sta | ||||
| SCENARIO=tip-auto | ||||
| RPT_TMPDIR=${MY_TMPDIR}/lf_reports | ||||
|  | ||||
| # Query DUT from the scenario | ||||
| @@ -74,9 +82,61 @@ DUT=`grep DUT: $SCENARIO_CFG_FILE |head -1|grep -o "DUT: .*"|cut -f2 -d ' '` | ||||
|  | ||||
| echo "Found DUT: $DUT from scenario $SCENARIO_CFG_FILE" | ||||
|  | ||||
| mkdir -p $RSLTS_DIR | ||||
| function pre_test { | ||||
|     # Clean logs, this bounces radios and such too as side effect | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli admin clean_logs" | ||||
|  | ||||
|     if [ "_${LF_SERIAL}" != "_NONE" ] | ||||
|     then | ||||
|         # Kill any existing processes on this serial port | ||||
|         pkill -f ".*openwrt_ctl.*$LF_SERIAL.*" | ||||
|         ../openwrt_ctl.py --action lurk --tty $LF_SERIAL --scheme serial --user root --passwd $LFPASSWD --prompt "\[root@" >  $MY_TMPDIR/lanforge_console_log.txt 2>&1 & | ||||
|     fi | ||||
|  | ||||
|     if [ "_${AP_SERIAL}" != "_NONE" ] | ||||
|     then | ||||
|         # Kill any existing processes on this serial port | ||||
|         pkill -f ".*openwrt_ctl.*$AP_SERIAL.*" | ||||
|         ../openwrt_ctl.py --action logread --tty $AP_SERIAL --scheme serial >  $MY_TMPDIR/dut_console_log.txt 2>&1 & | ||||
|     fi | ||||
| } | ||||
|  | ||||
| function post_test { | ||||
|     DEST=$1 | ||||
|     mkdir -p $DEST/logs | ||||
|  | ||||
|     if [ "_${LF_SERIAL}" != "_NONE" ] | ||||
|         then | ||||
|         # Kill any existing processes on this serial port | ||||
|         pkill -f ".*openwrt_ctl.*$LF_SERIAL.*" | ||||
|         mv $MY_TMPDIR/lanforge_console_log.txt $DEST/logs/ | ||||
|     fi | ||||
|  | ||||
|     if [ "_${AP_SERIAL}" != "_NONE" ] | ||||
|         then | ||||
|         # Kill any existing processes on this serial port | ||||
|         pkill -f ".*openwrt_ctl.*$AP_SERIAL.*" | ||||
|         mv $MY_TMPDIR/dut_console_log.txt $DEST/logs/ | ||||
|     fi | ||||
|  | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $DEST/logs/test_automation_log.txt | ||||
|     if [ -f /home/lanforge/lanforge_log_0.txt ] | ||||
|     then | ||||
|         # Must be running on LF itself | ||||
|         cp /home/lanforge/lanforge_log_*.txt* $DEST/logs/ | ||||
|         cp /home/lanforge/wifi/*log* $DEST/logs/ | ||||
|     else | ||||
|         # Try via scp.  Root perms needed to read wifi logs, thus root@ | ||||
|         scp root@$LFMANAGER:/home/lanforge/lanforge_log_*.txt* $DEST/logs/ | ||||
|         scp root@$LFMANAGER:/home/lanforge/wifi/*log* $DEST/logs/ | ||||
|     fi | ||||
| } | ||||
|  | ||||
|  | ||||
| set -x | ||||
|  | ||||
| mkdir -p $RSLTS_DIR | ||||
|  | ||||
| # Load scenario file | ||||
| ../lf_testmod.pl --mgr $LFMANAGER --action set --test_type Network-Connectivity --test_name $SCENARIO --file $SCENARIO_CFG_FILE | ||||
|  | ||||
| @@ -101,7 +161,7 @@ fi | ||||
| ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --cmd "cli show_dut" | ||||
|  | ||||
| # Pause to let GUI finish getting data from the server | ||||
| sleep 10 | ||||
| sleep 20 | ||||
|  | ||||
| # Tell GUI to load and build the scenario | ||||
| ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --scenario $SCENARIO | ||||
| @@ -117,19 +177,21 @@ fi | ||||
| echo "Checking if we should run Dataplane packet size test." | ||||
| if [ "_$DO_DPT_PKT_SZ" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "Dataplane" --tname dpt-ben  --tconfig $DPT_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
|         --modifier_key "Show Low-Level Graphs" --modifier_val true \ | ||||
|         --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/dataplane_pkt_sz | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/dataplane_pkt_sz/test_automation.txt | ||||
|     post_test $RSLTS_DIR/dataplane_pkt_sz | ||||
| fi | ||||
|  | ||||
| # Do capacity test | ||||
| echo "Checking if we should run WCT Download test." | ||||
| if [ "_$DO_WCT_DL" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "WiFi Capacity" --tname wct-ben  --tconfig $WCT_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -137,12 +199,13 @@ then | ||||
|         --modifier_key "RATE_UL" --modifier_val "0" \ | ||||
|         --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/wifi_capacity_dl | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/wifi_capacity_dl/test_automation.txt | ||||
|     post_test $RSLTS_DIR/wifi_capacity_dl | ||||
| fi | ||||
|  | ||||
| echo "Checking if we should run WCT Upload test." | ||||
| if [ "_$DO_WCT_UL" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "WiFi Capacity" --tname wct-ben  --tconfig $WCT_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -150,12 +213,13 @@ then | ||||
|         --modifier_key "RATE_DL" --modifier_val "0" \ | ||||
|         --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/wifi_capacity_ul | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/wifi_capacity_ul/test_automation.txt | ||||
|     post_test $RSLTS_DIR/wifi_capacity_ul | ||||
| fi | ||||
|  | ||||
| echo "Checking if we should run WCT Bi-Direction test." | ||||
| if [ "_$DO_WCT_BI" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "WiFi Capacity" --tname wct-ben  --tconfig $WCT_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -164,7 +228,7 @@ then | ||||
|         --modifier_key "Protocol:" --modifier_val "TCP-IPv4" \ | ||||
|         --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/wifi_capacity_bi | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/wifi_capacity_bi/test_automation.txt | ||||
|     post_test $RSLTS_DIR/wifi_capacity_bi | ||||
| fi | ||||
|  | ||||
|  | ||||
| @@ -172,12 +236,13 @@ fi | ||||
| echo "Checking if we should run Short-AP Basic CX test." | ||||
| if [ "_$DO_SHORT_AP_BASIC_CX" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
|         --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_basic_cx | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_basic_cx/test_automation.txt | ||||
|     post_test $RSLTS_DIR/ap_auto_basic_cx | ||||
| fi | ||||
|  | ||||
| # Run Throughput, Dual-Band, Capacity test in a row, the Capacity will use results from earlier | ||||
| @@ -185,6 +250,7 @@ fi | ||||
| echo "Checking if we should run Short-AP Throughput test." | ||||
| if [ "_$DO_SHORT_AP_TPUT" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -194,13 +260,14 @@ then | ||||
|         --modifier_key "Capacity" --modifier_val true \ | ||||
|         --rpt_dest $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_capacity | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_capacity/test_automation.txt | ||||
|     post_test $RSLTS_DIR/ap_auto_capacity | ||||
| fi | ||||
|  | ||||
| # Run Stability test (single port resets, voip, tcp, udp) | ||||
| echo "Checking if we should run Short-AP Stability Reset test." | ||||
| if [ "_$DO_SHORT_AP_STABILITY_RESET" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -209,13 +276,14 @@ then | ||||
|         --modifier_key "Stability Duration:" --modifier_val $STABILITY_DURATION \ | ||||
|         --rpt_dest  $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_reset_ports | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_reset_ports/test_automation.txt | ||||
|     post_test $RSLTS_DIR/ap_auto_stability_reset_ports | ||||
| fi | ||||
|  | ||||
| # Run Stability test (radio resets, voip, tcp, udp) | ||||
| echo "Checking if we should run Short-AP Stability Radio Reset test." | ||||
| if [ "_$DO_SHORT_AP_STABILITY_RADIO_RESET" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -225,13 +293,14 @@ then | ||||
|         --modifier_key "Reset Radios" --modifier_val true \ | ||||
|         --rpt_dest  $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_reset_radios | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_reset_radios/test_automation.txt | ||||
|     post_test $RSLTS_DIR/ap_auto_stability_reset_radios | ||||
| fi | ||||
|  | ||||
| # Run Stability test (no resets, no voip, tcp, udp) | ||||
| echo "Checking if we should run Short-AP Stability No-Reset test." | ||||
| if [ "_$DO_SHORT_AP_STABILITY_NO_RESET" == "_1" ] | ||||
| then | ||||
|     pre_test | ||||
|     ../lf_gui_cmd.pl --manager $GMANAGER --port $GMPORT --ttype "AP-Auto" --tname ap-auto-ben --tconfig $AP_AUTO_CFG \ | ||||
|         --modifier_key "Test Rig ID:" --modifier_val "$TEST_RIG_ID" \ | ||||
|         --modifier_key "DUT_NAME" --modifier_val "$DUT" \ | ||||
| @@ -242,7 +311,18 @@ then | ||||
|         --modifier_key "Concurrent Ports To Reset:" --modifier_val 0 \ | ||||
|         --rpt_dest  $RPT_TMPDIR > $MY_TMPDIR/basic_regression_log.txt 2>&1 | ||||
|     mv $RPT_TMPDIR/* $RSLTS_DIR/ap_auto_stability_no_reset | ||||
|     mv $MY_TMPDIR/basic_regression_log.txt $RSLTS_DIR/ap_auto_stability_no_reset/test_automation.txt | ||||
|     post_test $RSLTS_DIR/ap_auto_stability_no_reset | ||||
| fi | ||||
|  | ||||
| if [ "_${LFLOG_PID}" != "_" ] | ||||
| then | ||||
|     kill $LFLOG_PID | ||||
|     mv $MY_TMPDIR/lanforge_console_log.txt $RSLTS_DIR/ | ||||
| fi | ||||
| if [ "_${DUTLOG_PID}" != "_" ] | ||||
| then | ||||
|     kill $DUTLOG_PID | ||||
|     mv $MY_TMPDIR/dut_console_log.txt $RSLTS_DIR/ | ||||
| fi | ||||
|  | ||||
| echo "Done with regression test." | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Ben Greear
					Ben Greear