From f30b99bbe48af6d2f5c01062cbff86f70f497805 Mon Sep 17 00:00:00 2001
From: Jason Hiser <jdhiser@gmail.com>
Date: Fri, 30 Nov 2018 17:31:34 +0000
Subject: [PATCH] changed test_cmds to support input of arbitrary path to
 binary for a test, also bzip2 test improvements

Former-commit-id: aa21520c9d4a00d237ef71282d7e022d146c80d8
---
 tests/bzip2/test_script.sh | 23 +++++----
 tests/test_cmds.sh         | 99 ++++++++++++++++++++++++++++++++++++--
 2 files changed, 108 insertions(+), 14 deletions(-)

diff --git a/tests/bzip2/test_script.sh b/tests/bzip2/test_script.sh
index bf756f88c..a45cbde63 100755
--- a/tests/bzip2/test_script.sh
+++ b/tests/bzip2/test_script.sh
@@ -55,16 +55,19 @@ run_bench_prog_only 120 -k $DATA_DIR/compression_input1_orig
 #sure it does exist before doing any comparisons. I check the bench's output
 #file because it is possible for the test to fail to produce an output for
 #different reasons. 
-if [[ -z "$IGNORE_RESULTS" ]] && [[ -f $DATA_DIR/compression_input1_orig.bz2 ]]; then
-
-	compare_std_results
- 	
-	diff $DATA_DIR/compression_input1_test.bz2 $DATA_DIR/compression_input1_orig.bz2
-	status=$?
-	if [ ! "$status" -eq 0 ]; then
-		echo "Exit Status Failure"
+if [[ -z "$IGNORE_RESULTS" ]] ; then
+	if [[ -f $DATA_DIR/compression_input1_orig.bz2 ]]; then
+		compare_std_results
+		
+		diff $DATA_DIR/compression_input1_test.bz2 $DATA_DIR/compression_input1_orig.bz2
+		status=$?
+		if [ ! "$status" -eq 0 ]; then
+			echo "Exit Status Failure"
+			report_failure
+		fi 
+	else
 		report_failure
-	fi 
+	fi
 fi
 cleanup
-report_success
\ No newline at end of file
+report_success
diff --git a/tests/test_cmds.sh b/tests/test_cmds.sh
index f8d4d4ae0..834716ddf 100755
--- a/tests/test_cmds.sh
+++ b/tests/test_cmds.sh
@@ -3,6 +3,7 @@
 show_logs_on_failure=0
 had_fails=0
 apps=""
+declare -A app_paths
 default_apps="bzip2 grep du ncal ls objdump readelf sort tar touch tcpdump"
 configs=""
 default_configs="rida"
@@ -50,15 +51,14 @@ do_tests()
 			fi
 
 
-			progpath=$(which $prog)
+			progpath="${app_path[$prog]}"
 			if [ "$progpath" = "" ]; then
 				echo "TEST: Original binary ($prog) not found: skipping..."
 				continue
 			fi
+			progpath=$(realpath $progpath)
+			echo "TEST ($config) ${prog}=${progpath}: Protecting..."
 
-			echo "TEST ($config) ${prog}: Protecting..."
-
-			progpath=$(readlink -f $progpath)
 			
 			case $config in
 				zafl)
@@ -162,6 +162,74 @@ do_tests()
 				ibtl_p1)
 					$PSZ $progpath $protected --backend strata --step ibtl=on --step ilr=on --step pc_confine=on --step p1transform=on --tempdir $temp_dir > test_${prog}.ps.log 2>&1
 				;;
+				mvp1v1)
+					$VGT -i $progpath -c mvp1 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvp1v2)
+					$VGT -i $progpath -c mvp1 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvp2v1)
+					$VGT -i $progpath -c mvp2 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvp2v2)
+					$VGT -i $progpath -c mvp2 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvp3v1)
+					$VGT -i $progpath -c mvp3 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvp3v2)
+					$VGT -i $progpath -c mvp3 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvp3v3)
+					$VGT -i $progpath -c mvp3 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-3/bin/$(basename $progpath) $protected 
+				;;
+				mvp4v1)
+					$VGT -i $progpath -c mvp4 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvp4v2)
+					$VGT -i $progpath -c mvp4 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvp4v3)
+					$VGT -i $progpath -c mvp4 -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-3/bin/$(basename $progpath) $protected 
+				;;
+				mvpAv1)
+					$VGT -i $progpath -c mvpA -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvpAv2)
+					$VGT -i $progpath -c mvpA -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvpBv1)
+					$VGT -i $progpath -c mvpB -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvpBv2)
+					$VGT -i $progpath -c mvpB -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvpCv1)
+					$VGT -i $progpath -c mvpC -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-1/bin/$(basename $progpath) $protected 
+				;;
+				mvpCv2)
+					$VGT -i $progpath -c mvpC -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-2/bin/$(basename $progpath) $protected 
+				;;
+				mvpCv3)
+					$VGT -i $progpath -c mvpC -o $temp_dir > test_${prog}.ps.log 2>&1
+					cp $temp_dir/vs-1/variant-3/bin/$(basename $progpath) $protected 
+				;;
 				orig)
 					cp $progpath $protected 
 				;;
@@ -315,9 +383,32 @@ parse_args()
 
 }
 
+
+process_apps()
+{
+	local new_apps=""
+	local fields=()
+	for i in $apps
+	do
+		IFS="=" read -ra fields <<< $i
+		if [[ ${#fields[@]} -gt 2 ]]; then
+			echo "Cannot separate  $i into 2 fields based on delimiter '='"
+			exit 1
+		elif [[ ${#fields[@]} -eq 2 ]]; then
+			app_path[${fields[0]}]=${fields[1]}
+		elif [[ ${#fields[@]} -eq 1 ]]; then
+			app_path[${fields[0]}]=$(which ${fields[0]})
+		fi
+
+		new_apps="$new_apps ${fields[0]}"
+	done
+	apps="$new_apps"
+}
+
 main()
 {
 	parse_args "$@"
+	process_apps
 
 	echo 
 	echo "test configuration"
-- 
GitLab