[kvm-unit-tests PATCH 3/9] run_tests.sh: add '-d' for dry-run

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Add an option that allows us to just get the qemu command line
for each test. Running ./run_tests.sh -d will result in each
test saying it passed, and test.log will contain a list of each
qemu command line that would have been executed, had it not been
a dry-run.

Signed-off-by: Andrew Jones <drjones@xxxxxxxxxx>
---
 arm/run      | 12 +++++++-----
 run_tests.sh | 41 +++++++++++++++++++++++++----------------
 x86/run      | 11 +++++++----
 3 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/arm/run b/arm/run
index e50709dcd12f4..3eacf3b77d625 100755
--- a/arm/run
+++ b/arm/run
@@ -48,9 +48,11 @@ fi
 
 command="$qemu $M -cpu $processor $chr_testdev"
 command+=" -display none -serial stdio -kernel"
-
 echo $command "$@"
-$command "$@"
-ret=$?
-echo Return value from qemu: $ret
-exit $ret
+
+if [ "$DRYRUN" != "yes" ]; then
+	$command "$@"
+	ret=$?
+	echo Return value from qemu: $ret
+	exit $ret
+fi
diff --git a/run_tests.sh b/run_tests.sh
index 6f00aa495744c..4246f1b60a733 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -28,22 +28,24 @@ function run()
         return
     fi
 
-    if [ -n "$arch" ] && [ "$arch" != "$ARCH" ]; then
-        echo "skip $1 ($arch only)"
-        return
-    fi
-
-    # check a file for a particular value before running a test
-    # the check line can contain multiple files to check separated by a space
-    # but each check parameter needs to be of the form <path>=<value>
-    for check_param in ${check[@]}; do
-        path=${check_param%%=*}
-        value=${check_param#*=}
-        if [ "$path" ] && [ "$(cat $path)" != "$value" ]; then
-            echo "skip $1 ($path not equal to $value)"
+    if [ "$DRYRUN" != "yes" ]; then
+        if [ -n "$arch" ] && [ "$arch" != "$ARCH" ]; then
+            echo "skip $1 ($arch only)"
             return
         fi
-    done
+
+        # Check a file for a particular value before running a test. The
+        # check line can contain multiple files to check, separated by a space,
+        # but each check parameter needs to be of the form <path>=<value>
+        for check_param in ${check[@]}; do
+            path=${check_param%%=*}
+            value=${check_param#*=}
+            if [ "$path" ] && [ "$(cat $path)" != "$value" ]; then
+                echo "skip $1 ($path not equal to $value)"
+                return
+            fi
+        done
+    fi
 
     cmdline="./$TEST_DIR-run $kernel -smp $smp $opts"
     if [ $verbose != 0 ]; then
@@ -108,11 +110,13 @@ function usage()
 {
 cat <<EOF
 
-Usage: $0 [-g group] [-h] [-v]
+Usage: $0 [-g group] [-h] [-v] [-d]
 
     -g: Only execute tests in the given group
     -h: Output this help text
     -v: Enables verbose mode
+    -d: Dry-run only. Just output the qemu command lines
+        that would be executed.
 
 Set the environment variable QEMU=/path/to/qemu-system-ARCH to
 specify the appropriate qemu binary for ARCH-run.
@@ -121,7 +125,7 @@ EOF
 }
 
 >test.log
-while getopts "g:hv" opt; do
+while getopts "g:hvd" opt; do
     case $opt in
         g)
             only_group=$OPTARG
@@ -133,10 +137,15 @@ while getopts "g:hv" opt; do
         v)
             verbose=1
             ;;
+	d)
+            echo "DRYRUN=yes" >> config.mak
+            ;;
         *)
             exit
             ;;
     esac
 done
 
+source config.mak # reload, parsing options may have changed it
 run_all $config
+sed -i '/^DRYRUN=.*/d' config.mak
diff --git a/x86/run b/x86/run
index d00e8fece4b6d..38b56e9a6b531 100755
--- a/x86/run
+++ b/x86/run
@@ -54,7 +54,10 @@ fi
 
 command="${qemu} -enable-kvm $pc_testdev -vnc none -serial stdio $pci_testdev -kernel"
 echo ${command} "$@"
-${command} "$@"
-ret=$?
-echo Return value from qemu: $ret
-exit $ret
+
+if [ "$DRYRUN" != "yes" ]; then
+	${command} "$@"
+	ret=$?
+	echo Return value from qemu: $ret
+	exit $ret
+fi
-- 
2.4.3

--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux