[PATCH kvm-unit-tests v2 02/12] run_tests: prepare for changes in scripts/mkstandalone

Radim Krčmář
2015-12-17T17:54:01Z

mkstandalone has a different mechanism for running tests as well as a
different handling of output and return codes.
- create two shell function to capture test execution and logging
- return the return value of unit-test
- cope with empty $verbose in `run`

Signed-off-by: Radim Krčmář <rkrcmar@redhat.com>
---
v2: new (reused the bitshift and comment from v1)

run_tests.sh | 4 ++++
scripts/run.bash | 13 +++++++++----
2 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/run_tests.sh b/run_tests.sh
index 58949e39c38c..e09d410beaa4 100755
--- a/run_tests.sh
+++ b/run_tests.sh
@@ -28,7 +28,11 @@ specify the appropriate qemu binary for ARCH-run.
EOF
}

+__run() { ./$TEST_DIR-run "${@}"; }
+__eval_log() { eval "${@}" >> test.log; }
+
echo > test.log
+
while getopts "g:hv" opt; do
case $opt in
g)
diff --git a/scripts/run.bash b/scripts/run.bash
index 0c5a2569d80e..243586c6d2fc 100644
--- a/scripts/run.bash
+++ b/scripts/run.bash
@@ -34,18 +34,23 @@ function run()
fi
done

- cmdline="TESTNAME=$testname ACCEL=$accel ./$TEST_DIR-run $kernel -smp $smp $opts"
- if [ $verbose != 0 ]; then
+ cmdline="TESTNAME=$testname ACCEL=$accel __run $kernel -smp $smp $opts"
+ if [ "$verbose" -a "$verbose" != 0 ]; then
echo $cmdline
fi

# extra_params in the config file may contain backticks that need to be
# expanded, so use eval to start qemu
- eval $cmdline >> test.log
+ __eval_log "$cmdline"
+ # The first bit of return value is too hard to use, just skip it.
+ # Unit-tests' return value is shifted by one.
+ ret=$(($? >> 1))

- if [ $? -le 1 ]; then
+ if [ $ret -eq 0 ]; then
echo -e "\e[32mPASS\e[0m $1"
else
echo -e "\e[31mFAIL\e[0m $1"
fi
+
+ return $ret
}
--
2.6.4