From 30631888046f3951ba2635067c326af6067df5b3 Mon Sep 17 00:00:00 2001 From: Rohit Gupta <rohit.gupta@eurecom.fr> Date: Mon, 12 Oct 2015 19:09:18 +0200 Subject: [PATCH] fixed bugs in autotests script --- .../autotests/run_exec_autotests.bash | 45 ++++++++++++++++--- cmake_targets/autotests/test_case_list.xml | 6 ++- cmake_targets/tools/test_helper | 6 +-- 3 files changed, 47 insertions(+), 10 deletions(-) diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash index 6c9ec4c366..edf2040f0e 100755 --- a/cmake_targets/autotests/run_exec_autotests.bash +++ b/cmake_targets/autotests/run_exec_autotests.bash @@ -34,7 +34,7 @@ cd $tdir #\param $10 -> number of runs #\param $11 -> pre_compile program execution #\param $12 -> class of the test case (compilation, execution) - +#\param $13 -> output of compilation program that needs to be found for test case to pass test_compile() { xUnit_start @@ -51,6 +51,7 @@ test_compile() { nruns=${10} pre_compile_prog=${11} class=${12} + compile_prog_out=${13} build_dir=$tdir/$1/build exec_file=$build_dir/$6 @@ -94,7 +95,7 @@ test_compile() { }>> $log_file 2>&1 echo "</COMPILATION LOG>" >> $log_file 2>&1 if [ "$class" == "compilation" ]; then - if [ -s "$compile_prog_array_index" ] ; then + if [ -s "$compile_prog_array_index" ] || [ -s "$compile_prog_out" ] ; then echo_success "$test_case_name $compile_prog_array_index compiled" xUnit_success "compilation" "$test_case_name.$compile_prog_array_index" "PASS" "$run_index" else @@ -284,12 +285,43 @@ else fi fi } +print_help() { + echo_info ' +This program runs automated test case system for OpenAirInterface +You should have ubuntu 14.xx, updated, and the Linux kernel >= 3.14 +Options +-h | --help + This help +-g | --run-group + Run test cases in a group. For example, ./run_exec_autotests "0101* 010102" +' +} main () { +RUN_GROUP=0 +test_case_list="" + +until [ -z "$1" ] + do + case "$1" in + -g | --run-group) + RUN_GROUP=1 + test_case_list=$2 + "Will execute test cases only in group $test_case_list" + shift 2;; + -h | --help) + print_help + exit 1;; + *) + print_help + echo_fatal "Unknown option $1" + break;; + esac + done xml_conf="$OPENAIR_DIR/cmake_targets/autotests/test_case_list.xml" -test_case_list=`xmlstarlet sel -T -t -m /xml/testCaseList/testCase -s D:N:- "@id" -v "@id" -n $xml_conf` +test_case_list=`xmlstarlet sel -T -t -m /xml/testCaseList/testCase -s A:N:- "@id" -v "@id" -n $xml_conf` echo "test_case_list = $test_case_list" @@ -310,7 +342,8 @@ for search_expr in "${test_case_array[@]}" search_expr_true=`xmlstarlet sel -t -v "/xml/testCaseList/testCase[@id='$search_expr']/search_expr_true" $xml_conf` search_expr_false=`xmlstarlet sel -t -v "/xml/testCaseList/testCase[@id='$search_expr']/search_expr_false" $xml_conf` nruns=`xmlstarlet sel -t -v "/xml/testCaseList/testCase[@id='$search_expr']/nruns" $xml_conf` - + compile_prog_out=`xmlstarlet sel -t -v "/xml/testCaseList/testCase[@id='$search_expr']/compile_prog_out" $xml_conf` + echo "class = $class" echo "name = $name" echo "Description = $desc" @@ -343,7 +376,7 @@ for search_expr in "${test_case_array[@]}" #echo "arg1 = ${search_array_true[0]}" #echo " arg2 = ${search_array_true[1]}" if [ "$class" == "compilation" ]; then - test_compile "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" + test_compile "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" "$compile_prog_out" elif "$class" == "execution" ]; then test_compile_and_run "$name" "$compile_prog" "$compile_prog_args" "$pre_exec" "$pre_exec_args" "$main_exec" "$main_exec_args" "search_array_true[@]" "$search_expr_false" "$nruns" "$pre_compile_prog" "$class" else @@ -356,7 +389,7 @@ for search_expr in "${test_case_array[@]}" } -main +main "$@" xUnit_write "$results_file" diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 5186d6d5e5..6945d75598 100644 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -1,6 +1,6 @@ <xml> - <testCaseList> + <testCaseList> <testCase id="010101" > <class>compilation</class> <desc>Build oaisim.Rel8</desc> @@ -128,6 +128,7 @@ <pre_compile_prog></pre_compile_prog> <compile_prog>nasmesh</compile_prog> <compile_prog_args></compile_prog_args> + <compile_prog_out>CMakeFiles/nasmesh/nasmesh.ko</compile_prog_out> <pre_exec></pre_exec> <pre_exec_args></pre_exec_args> <main_exec></main_exec> @@ -155,6 +156,9 @@ </testCase> </testCaseList> + + + </xml> diff --git a/cmake_targets/tools/test_helper b/cmake_targets/tools/test_helper index 59ab9bc840..628567e762 100644 --- a/cmake_targets/tools/test_helper +++ b/cmake_targets/tools/test_helper @@ -33,12 +33,12 @@ xUnit_fail() { currtime=$(date +%s.%N) time=$(echo "$currtime - $XUNIT_START" | bc -l) xml="<testcase classname='$class' name='$test_case' run='$run_index' time='$time' RESULT='$result'></testcase>" - XUNIT_TESTCASES_XML="$XUNIT_TESTCASES_XML \n$xml" + XUNIT_TESTCASES_XML="$xml \n$XUNIT_TESTCASES_XML" XUNIT_FAILED=$((XUNIT_FAILED+1)) } ## Call this after the testcase finished successfully. -# \sa xUnit_fail() +# \sa xUnit_success() # \pre xUnit_start() must have been called before # \param $1 classname # \param $2 testcase name @@ -52,7 +52,7 @@ xUnit_success() { currtime=$(date +%s.%N) time=$(echo "$currtime - $XUNIT_START" | bc -l) xml="<testcase classname='$class' name='$test_case' run='$run_index' time='$time' RESULT='$result'></testcase>" - XUNIT_TESTCASES_XML="$XUNIT_TESTCASES_XML \n$xml" + XUNIT_TESTCASES_XML="$xml \n$XUNIT_TESTCASES_XML" XUNIT_SUCCESS=$((XUNIT_SUCCESS+1)) } -- GitLab