[PATCH 2/2] live-image: add an option for creating oem-tests.lst

Alex Hung alex.hung at canonical.com
Wed Feb 5 21:34:47 UTC 2020


This allows users to create oem-tests.lst for automating
tests in fwts-live, and thus removes needs users to modify fwts-live
images or partitions manually.

Signed-off-by: Alex Hung <alex.hung at canonical.com>
---
 live-image/fwts-frontend-text | 74 +++++++++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/live-image/fwts-frontend-text b/live-image/fwts-frontend-text
index 7b16b981..7fe4533f 100755
--- a/live-image/fwts-frontend-text
+++ b/live-image/fwts-frontend-text
@@ -154,6 +154,76 @@ select_tests()
 	done
 }
 
+#
+#  Get user choices to create oem-tests.lst
+#
+select_oem_automation()
+{
+	while true
+	do
+		declare -a tests
+		x=0
+		#
+		#  Discover available tests
+		#
+		fwts --batch --batch-experimental --uefitests --unsafe --show-tests | grep "^ "| sort | uniq > $OPTIONS
+		while read test text
+		do
+			((x++))
+			tests[$x]=$test
+			txt="${txt} ${x} \"${text}\" off"
+		done < $OPTIONS
+		rm $OPTIONS
+
+		#
+		# Construct and run dialog
+		#
+		echo dialog --backtitle '"$FWTS"' --title '"Select Tests for Automation"' --help-button  --checklist '"Select from the list below the test(s) for oem-tests.lst. Use up/down cursor keys, space to select and enter to start:"' 20 70 $x $txt > $DIALOG_CMD
+		. $DIALOG_CMD 2> $OPTIONS
+		ret=$?
+		rm $DIALOG_CMD
+
+		#
+		# Scan return selections and build fwts test scenarios
+		#
+		x=0
+		for i in `cat $OPTIONS`
+		do
+			((x++))
+			i=${i#\"}
+			i=${i%\"}
+			run_tests="$run_tests ${tests[$i]}"
+		done
+
+		#
+		# Handle dialog exit states:
+		#
+		case $ret in
+		0)
+			if [ $x -eq 0 ]; then
+				dialog --backtitle "$FWTS" --title "No Tests Selected!" --msgbox \
+			"   You did not select any tests to be run." 5 50
+			else
+				# remove leading space and output to oem-tests.lst
+				echo "TESTS=$(echo $run_tests)" > $OEM_TESTS_FILE
+				echo "POST=poweroff" >> $OEM_TESTS_FILE
+				dialog --backtitle "$FWTS" --title "Auto-tests Saved!" --msgbox \
+					" Auto-tests are saved to $OEM_TESTS_FILE" 5 50
+				finish
+			fi
+			;;
+		1)
+			return
+			;;
+		2)
+			do_help
+			;;
+		255)
+			no_tests_finish
+			;;
+		esac
+	done
+}
 #
 #  View the results log
 #
@@ -314,6 +384,7 @@ do
 			"Recommended" "Recommended Tests" off \
 			"Recommended for IFV" "Recommended Tests for F/W Vendors" off \
 			"Selected" "Select Individual Tests" off \
+			"Automated" "Create Auto-Tests" off \
 			"Abort" "Abort Testing" off \
 			2> $OPTIONS
 			;;
@@ -369,6 +440,9 @@ do
 		'Selected')
 			select_tests
 			;;
+		'Automated')
+			select_oem_automation
+			;;
 		'Abort')
 			no_tests_finish
 			;;
-- 
2.17.1




More information about the fwts-devel mailing list