@@ -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
@@ -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
@@ -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
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@redhat.com> --- arm/run | 12 +++++++----- run_tests.sh | 41 +++++++++++++++++++++++++---------------- x86/run | 11 +++++++---- 3 files changed, 39 insertions(+), 25 deletions(-)