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@xxxxxxxxxx> --- 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 -- 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