diff --git a/cmake_targets/autotests/run_exec_autotests.bash b/cmake_targets/autotests/run_exec_autotests.bash index 176d275ec8..c00500cfc3 100755 --- a/cmake_targets/autotests/run_exec_autotests.bash +++ b/cmake_targets/autotests/run_exec_autotests.bash @@ -20,8 +20,6 @@ # * contact@openairinterface.org # */ -# \author Navid Nikaein, Rohit Gupta - if [ -s $OPENAIR_DIR/cmake_targets/tools/build_helper ] ; then source $OPENAIR_DIR/cmake_targets/tools/build_helper else @@ -29,212 +27,46 @@ else exit 1 fi -trap handle_ctrl_c INT - source $OPENAIR_DIR/cmake_targets/tools/test_helper - -SUDO="sudo -E -S" +SUDO="sudo -E" tdir=$OPENAIR_DIR/cmake_targets/autotests -rm -fr $tdir/bin +rm -fr $tdir/bin mkdir -p $tdir/bin results_file="$tdir/log/results_autotests.xml" -updated=$(svn st -q $OPENAIR_DIR) -if [ "$updated" != "" ] ; then - echo "some files are not in svn:\n $updated" -fi - -cd $tdir #\param $1 -> name of test case -#\param $2 -> name of compilation program -#\param $3 -> arguments for compilation program -#\param $4 -> name of pre-executable to install kernel modules, etc -#\param $5 -> arguments of pre-executable -#\param $6 -> name of executable -#\param $7 -> arguments for running the program -#\param $8 -> search expression -#\param $9 -> search expression which should NOT be found (for ex. segmentation fault) -#\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 -#\param $14 -> tags to help identify the test case for readability in output xml file -function test_compile() { +#\param $2 -> name of executable +#\param $3 -> arguments for running the program +#\param $4 -> search expression +#\param $5 -> search expression which should NOT be found (for ex. segmentation fault) +#\param $6 -> number of runs +#\param $7 -> tags to help identify the test case for readability in output xml file +#\param $8 => test config file params to be modified +#\param $9 -> desc to help identify the test case for readability in output xml file +function test_run() { xUnit_start test_case_name=$1 log_dir=$tdir/log/$test_case_name log_file=$log_dir/test.$1.log.txt - compile_prog=$2 - compile_args=$3 - pre_exec_file=$4 - pre_exec_args=$5 - exec_args=$7 - search_expr_array=("${!8}") - search_expr_negative=$9 - nruns=${10} - pre_compile_prog=${11} - class=${12} - compile_prog_out=${13} - tags=${14} - xmlfile_testcase=$log_dir/test.$1.xml - #build_dir=$tdir/$1/build - #exec_file=$build_dir/$6 - - #compile_prog_out=`eval "echo $compile_prog_out"` - #echo "compile_prog_out = $compile_prog_out" - read -a compile_prog_out_array <<< "$compile_prog_out" + main_exec=$2 + exec_args=$3 + search_expr_array=("${!4}") + search_expr_negative=$5 + nruns=${6} + tags=${7} + test_config_file=${8} + desc=${9} - #Temporary log file where execution log is stored. - temp_exec_log=$log_dir/temp_log.txt - rm -fr $log_dir - mkdir -p $log_dir - - - - #echo "log_dir = $log_dir" - #echo "log_file = $log_file" - #echo "exec_file = $exec_file" - #echo "exec_args = $exec_args" - #echo "search_expr = $search_expr" - #echo "pre_exec_file = $pre_exec_file" - #echo "nruns = $nruns" - echo "class = $class" - - compile_prog_array=() - read -a compile_prog_array <<<"$compile_prog" - - #tags_array=() - #read -a tags_array <<<"$tags" - - #pre_compile_prog_array=() - #readarray -t pre_compile_prog_array <<< "$pre_compile_prog" - result=1 - result_string="" - for (( run_index=1; run_index <= $nruns; run_index++ )) - do - - #tags_array_index=0 - #for pre_compile_prog_array_index in "${pre_compile_prog_array[@]}" - #do - - #for compile_prog_array_index in "${compile_prog_array[@]}" - #do - echo "Compiling test case $test_case_name.${tags} Log file = $log_file" - date=`date` - echo ", Date = $date " >> $log_file - #rm -fr $build_dir - #mkdir -p $build_dir - cd $log_dir - { - uname -a - compile_log_dir=`eval echo \"$OPENAIR_DIR/cmake_targets/log/\"` - echo "Removing compilation log files in $compile_log_dir" - rm -frv $compile_log_dir - echo "Executing $pre_exec_file $pre_exe_args ...." - eval $pre_exec_file $pre_exec_args - echo "Executing $compile_prog $compile_prog_args ...." - eval $compile_prog $compile_prog_args - echo "Copying compilation log files to test case log directory: $log_dir" - cp -fvr $OPENAIR_DIR/cmake_targets/log/ $log_dir/compile_log - }>> $log_file 2>&1 - echo "" >> $log_file 2>&1 - if [ "$class" == "compilation" ]; then - for compile_prog_out_index in ${compile_prog_out_array[@]} - do - if [ -s "$compile_prog_out_index" ]; then - let "result = result&1" - - echo_success "$test_case_name.${tags} RUN = $run_index $compile_prog_out_index = compiled" - - else - let "result = result&0" - - echo_error "$test_case_name.${tags} RUN = $run_index $compile_prog_out_index failed" - - fi - done #end of for loop compile_prog_out_index - if [ "$result" == "1" ]; then - result_string=$result_string" Run_$run_index = PASS" - else - result_string=$result_string" Run_$run_index = FAIL" - fi - - fi - #let "tags_array_index++" - #done # End of for loop compile_prog_array - #done # End of for loop (pre_compile_prog_array_index) - done #End of for loop (run_index) - - - #If for for some reason upper for loop does not execute, we fail the test case completely - if [ "$result_string" == "" ]; then - result=0 - fi - if [ "$result" == "1" ]; then - echo_success "$test_case_name.${tags} PASSED" - xUnit_success "compilation" "$test_case_name.$tags" "PASS" "$result_string" "$xmlfile_testcase" "" - else - echo_error "$test_case_name.${tags} FAILED" - xUnit_fail "compilation" "$test_case_name.$tags" "FAIL" "$result_string" "$xmlfile_testcase" "" - fi -} - - - -#\param $1 -> name of test case -#\param $2 -> name of compilation program -#\param $3 -> arguments for compilation program -#\param $4 -> name of pre-executable to install kernel modules, etc -#\param $5 -> arguments of pre-executable -#\param $6 -> name of executable -#\param $7 -> arguments for running the program -#\param $8 -> search expression -#\param $9 -> search expression which should NOT be found (for ex. segmentation fault) -#\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 -#\param $14 -> tags to help identify the test case for readability in output xml file -#\param $15 => password for the user to run certain commands as sudo -#\param $16 => test config file params to be modified -#\param $17 => bypass flag if main_exec if available -#\param $18 -> desc to help identify the test case for readability in output xml file - -function test_compile_and_run() { - xUnit_start - test_case_name=$1 - log_dir=$tdir/log/$test_case_name - log_file=$log_dir/test.$1.log.txt - compile_prog=$2 - compile_args=$3 - pre_exec_file=$4 - pre_exec_args=$5 - main_exec=$6 - exec_args=$7 - search_expr_array=("${!8}") - search_expr_negative=$9 - nruns=${10} - pre_compile_prog=${11} - class=${12} - compile_prog_out=${13} - tags=${14} - mypassword=${15} - test_config_file=${16} - bypass_compile=${17} - desc=${18} - - build_dir=$tdir/$1/build - #exec_file=$build_dir/$6 xmlfile_testcase=$log_dir/test.$1.xml #Temporary log file where execution log is stored. temp_exec_log=$log_dir/temp_log.txt export OPENAIR_LOGDIR=$log_dir rm -fr $log_dir mkdir -p $log_dir - + echo "" > $temp_exec_log echo "" > $log_file #echo "log_dir = $log_dir" @@ -242,272 +74,180 @@ function test_compile_and_run() { #echo "exec_file = $exec_file" #echo "exec_args = $exec_args" #echo "search_expr = $search_expr" - #echo "pre_exec_file = $pre_exec_file" #echo "nruns = $nruns" - echo "class = $class" #echo "desc = $desc" - - #compile_prog_array=() - #read -a compile_prog_array <<<"$compile_prog" - #test_config_file=`eval "echo \"$test_config_file\" "` - - #echo "test_config_file = $test_config_file" - tags_array=() read -a tags_array <<<"$tags" desc_array=() readarray -t desc_array <<<"$desc" - + main_exec_args_array=() readarray -t main_exec_args_array <<< "$exec_args" - - REAL_MAIN_EXEC=`eval "echo $main_exec"` - if [ "$bypass_compile" == "1" ] && [ -f $REAL_MAIN_EXEC ] - then - echo "Bypassing compilation for $main_exec" - else - rm -fr $OPENAIR_DIR/cmake_targets/log - #for search_expr in "${compile_prog_array[@]}" - #do - echo "Compiling test case $test_case_name Log file = $log_file" - echo "" >> $log_file - - #rm -fr $build_dir - #mkdir -p $build_dir - - cd $log_dir - { - uname -a - echo "Executing $pre_compile_prog" - eval $pre_compile_prog - - if [ "$test_config_file" != "" ]; then - echo "Modifying test_config_file parameters..." - echo "$test_config_file" |xargs -L 1 $OPENAIR_DIR/cmake_targets/autotests/tools/search_repl.py - fi - echo "Executing $compile_prog $compile_args" - eval "$compile_prog $compile_args" - echo "Copying compilation log files to test case log directory: $log_dir" - cp -fvr $OPENAIR_DIR/cmake_targets/log/ $log_dir/compile_log - }>> $log_file 2>&1 - echo "" >> $log_file 2>&1 - #done + if [ ! -f $main_exec ]; then + echo_fatal "no executable $main_exec found" fi - - #process the test case if it is that of execution - if [ "$class" == "execution" ]; then - tags_array_index=0 - for main_exec_args_array_index in "${main_exec_args_array[@]}" + + tags_array_index=0 + for main_exec_args_array_index in "${main_exec_args_array[@]}" + do + global_result=1 + result_string="" + PROPER_DESC=`echo ${desc_array[$tags_array_index]} | sed -e "s@^.*Test cases.*(Test@Test@" -e "s@^ *(@@" -e"s/)$//" -e "s/),$//"` + echo_info "$PROPER_DESC" + + for (( run_index=1; run_index <= $nruns; run_index++ )) do - global_result=1 - result_string="" - PROPER_DESC=`echo ${desc_array[$tags_array_index]} | sed -e "s@^.*Test cases.*(Test@Test@" -e "s@^ *(@@" -e"s/)$//" -e "s/),$//"` - echo_info "$PROPER_DESC" + temp_exec_log=$log_dir/test.$test_case_name.${tags_array[$tags_array_index]}.run_$run_index + echo "" > $temp_exec_log - for (( run_index=1; run_index <= $nruns; run_index++ )) + echo "Executing test case $test_case_name.${tags_array[$tags_array_index]}, Run Index = $run_index, Execution Log file = $temp_exec_log" + + echo "-----------------------------------------------------------------------------" >> $temp_exec_log 2>&1 + echo "" >> $temp_exec_log 2>&1 + echo "Executing $main_exec $main_exec_args_array_index " | tee $temp_exec_log + { uname -a ; eval "$main_exec $main_exec_args_array_index" ;} >> $temp_exec_log 2>&1 + + echo "" >> $temp_exec_log 2>&1 + cat $temp_exec_log >> $log_file 2>&1 + + + result=1 + for search_expr in "${search_expr_array[@]}" do - temp_exec_log=$log_dir/test.$test_case_name.${tags_array[$tags_array_index]}.run_$run_index - echo "" > $temp_exec_log - echo "Executing test case $test_case_name.${tags_array[$tags_array_index]}, Run Index = $run_index, Execution Log file = $temp_exec_log" - - echo "-----------------------------------------------------------------------------" >> $temp_exec_log 2>&1 - echo "" >> $temp_exec_log 2>&1 - - if [ -n "$pre_exec_file" ]; then - { echo " Executing $pre_exec_file $pre_exec_args " - eval " $pre_exec_file $pre_exec_args " ; }>> $temp_exec_log 2>&1 + search_result=`grep -E "$search_expr" $temp_exec_log` + if [ -z "$search_result" ]; then + let "result = result & 0" + else + let "result = result & 1" fi - echo "Executing $main_exec $main_exec_args_array_index " - echo "Executing $main_exec $main_exec_args_array_index " >> $temp_exec_log - { uname -a ; eval "$main_exec $main_exec_args_array_index" ;} >> $temp_exec_log 2>&1 + done - echo "" >> $temp_exec_log 2>&1 - cat $temp_exec_log >> $log_file 2>&1 - - - result=1 - for search_expr in "${search_expr_array[@]}" - do - - search_result=`grep -E "$search_expr" $temp_exec_log` + #If we find a negative search result then there is crash of program and test case is failed even if above condition is true + search_result=`grep -iE "$search_expr_negative" $temp_exec_log` + if [ -n "$search_result" ]; then + result=0 + fi + let "global_result = global_result & result" - #echo "search_expr = $search_expr" - #echo "search_result = $search_result" + #echo "result = $result" - if [ -z "$search_result" ]; then - let "result = result & 0" - else - let "result = result & 1" - fi - done - - #If we find a negative search result then there is crash of program and test case is failed even if above condition is true - search_result=`grep -iE "$search_expr_negative" $temp_exec_log` - if [ -n "$search_result" ]; then - result=0 - fi - let "global_result = global_result & result" - - #echo "result = $result" - - #this is a result of this run - #test_case_result="" - if [ "$result" -eq "0" ]; then - result_string=$result_string" Run_$run_index =FAIL" - echo_error "$test_case_name.${tags_array[$tags_array_index]} RUN = $run_index Result = FAIL" - fi - - if [ "$result" -eq "1" ]; then - result_string=$result_string" Run_$run_index =PASS" - echo_success "$test_case_name.${tags_array[$tags_array_index]} RUN = $run_index Result = PASS" - fi - - - done #End of for loop (nindex) - - echo " Result String = $result_string" - - if [ "$result_string" == "" ]; then - echo_error "execution $test_case_name.$compile_prog.${tags_array[$tags_array_index]} Run_Result = \"$result_string\" Result = FAIL" - xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" - else - if [ "$global_result" == "0" ]; then - echo_error "execution $test_case_name.${tags_array[$tags_array_index]} Run_Result = \"$result_string\" Result = FAIL" - xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" + if [ "$result" -eq "0" ]; then + result_string=$result_string" Run_$run_index =FAIL" + echo_error "$test_case_name.${tags_array[$tags_array_index]} RUN = $run_index Result = FAIL" fi - if [ "$global_result" == "1" ]; then - echo_success "execution $test_case_name.${tags_array[$tags_array_index]} Run_Result = \"$result_string\" Result = PASS " - xUnit_success "execution" "$test_case_name.${tags_array[$tags_array_index]}" "PASS" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" - fi - fi + if [ "$result" -eq "1" ]; then + result_string=$result_string" Run_$run_index =PASS" + echo_success "$test_case_name.${tags_array[$tags_array_index]} RUN = $run_index Result = PASS" + fi - let "tags_array_index++" - done - fi - rm -fr $build_dir + + done #End of for loop (nindex) + + echo " Result String = $result_string" + + if [ "$result_string" == "" ]; then + echo_error "execution $test_case_name.${tags_array[$tags_array_index]} {$PROPER_DESC} Run_Result = \"$result_string\" Result = FAIL" + xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" + else + if [ "$global_result" == "0" ]; then + echo_error "execution $test_case_name.${tags_array[$tags_array_index]} {$PROPER_DESC} Run_Result = \"$result_string\" Result = FAIL" + xUnit_fail "execution" "$test_case_name.${tags_array[$tags_array_index]}" "FAIL" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" + fi + + if [ "$global_result" == "1" ]; then + echo_success "execution $test_case_name.${tags_array[$tags_array_index]} {$PROPER_DESC} Run_Result = \"$result_string\" Result = PASS " + xUnit_success "execution" "$test_case_name.${tags_array[$tags_array_index]}" "PASS" "$result_string" "$xmlfile_testcase" "$PROPER_DESC" + fi + fi + + let "tags_array_index++" + done } -dbin=$OPENAIR_DIR/cmake_targets/autotests/bin dlog=$OPENAIR_DIR/cmake_targets/autotests/log exec_dir=$OPENAIR_DIR/cmake_targets/ran_build/build +xml_conf="$OPENAIR_DIR/cmake_targets/autotests/test_case_list.xml" function 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 +This program runs automated test cases Options +-c | --config + Set the configuration file to execute (default: $xml_conf) -d | --exec-dir Set directory of executables (default: $exec_dir) -g | --run-group Run test cases in a group. For example, ./run_exec_autotests "0101* 010102" -h | --help This help --p - Use password for logging --np | --no-password - No need for a password --q | --quiet - Quiet mode; eliminate informational messages and comment prompts. --b | --bypass-compile - Bypass compilation of main-exec if already present ' } function main () { -QUIET=0 -BYPASS_COMPILE=0 RUN_GROUP=0 -SET_PASSWORD=0 -passwd="" test_case_group="" test_case_group_array=() test_case_array=() echo_info "Note that the user should be sudoer for executing certain commands, for example loading kernel modules" -until [ -z "$1" ] - do - case "$1" in - -g | --run-group) - RUN_GROUP=1 - test_case_group=$2 - test_case_group=`sed "s/\+/\*/g" <<< "${test_case_group}"` # Replace + with * for bash string substituion - echo_info "Will execute test cases only in group $test_case_group" - shift 2;; - -p) - SET_PASSWORD=1 - passwd=$2 - shift 2;; - -np|--no-password) - SET_PASSWORD=1 - shift ;; - -q|--quiet) - QUIET=1 - shift ;; - -b|--bypass-compile) - BYPASS_COMPILE=1 - echo "bypass option ON" - shift ;; - -d|--exec-dir) - exec_dir=$2 - echo "setting execdir to $exec_dir" - shift 2;; - -h | --help) - print_help - exit 1;; - *) - print_help - echo_fatal "Unknown option $1" - break;; - esac - done - -if [ "$SET_PASSWORD" != "1" ]; then - read -s -p "Enter Password: " passwd -fi +until [ -z "$1" ]; do + case "$1" in + -c|--config) + xml_conf=$2 + echo "setting xml_conf to $xml_conf" + shift 2;; + -d|--exec-dir) + exec_dir=$2 + echo "setting exec_dir to $exec_dir" + shift 2;; + -g | --run-group) + RUN_GROUP=1 + test_case_group=$2 + test_case_group=`sed "s/\+/\*/g" <<< "${test_case_group}"` # Replace + with * for bash string substituion + echo_info "Will execute test cases only in group $test_case_group" + shift 2;; + -h | --help) + print_help + exit 1;; + *) + print_help + echo_fatal "Unknown option $1" + break;; + esac +done tmpfile=`mktemp` -echo $passwd | $SUDO echo $HOME > $tmpfile +$SUDO echo $HOME > $tmpfile tstsudo=`cat $tmpfile` if [ "$tstsudo" != "$HOME" ]; then - echo "$USER might not have sudo privileges. Exiting" + echo_error "$USER does not have sudo privileges. Exiting" exit -else - echo "$USER has sudo privileges" fi -echo "tstsudo = $tstsudo" rm -fr $tmpfile -xml_conf="$OPENAIR_DIR/cmake_targets/autotests/test_case_list.xml" - -test_case_list=`xmlstarlet sel -T -t -m /testCaseList/testCase -s A:N:- "@id" -v "@id" -n $xml_conf` test_case_excl_list=`xmlstarlet sel -t -v "/testCaseList/TestCaseExclusionList" $xml_conf` -if [ $QUIET -eq 0 ]; then echo "Test Case Exclusion List = $test_case_excl_list "; fi - test_case_excl_list=`sed "s/\+/\*/g" <<< "$test_case_excl_list" ` # Replace + with * for bash string substituion - +echo "Test Case Exclusion List = $test_case_excl_list " read -a test_case_excl_array <<< "$test_case_excl_list" -if [ $QUIET -eq 0 ]; then echo "test_case_list = $test_case_list"; fi - -if [ $QUIET -eq 0 ]; then echo "Test Case Exclusion List = $test_case_excl_list \n"; fi - +test_case_list=`xmlstarlet sel -T -t -m /testCaseList/testCase -s A:N:- "@id" -v "@id" -n $xml_conf` +echo "test_case_list = $test_case_list" readarray -t test_case_array <<<"$test_case_list" read -a test_case_group_array <<< "$test_case_group" - for search_expr in "${test_case_array[@]}" do flag_run_test_case=0 # search if this test case needs to be executed if [ "$RUN_GROUP" -eq "1" ]; then for search_group in "${test_case_group_array[@]}" - do + do if [[ $search_expr == $search_group ]];then flag_run_test_case=1 echo_info "Test case $search_expr match found in group" @@ -519,10 +259,10 @@ for search_expr in "${test_case_array[@]}" fi for search_excl in "${test_case_excl_array[@]}" - do + do if [[ $search_expr == $search_excl ]];then flag_run_test_case=0 - if [ $QUIET -eq 0 ]; then echo_info "Test case $search_expr match found in test case excl group. Will skip the test case for execution..."; fi + echo_info "Test case $search_expr match found in test case excl group. Will skip the test case for execution..." break fi done @@ -534,70 +274,53 @@ for search_expr in "${test_case_array[@]}" fi name=$search_expr - class=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/class" $xml_conf` desc=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/desc" $xml_conf` - pre_compile_prog=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/pre_compile_prog" $xml_conf` - compile_prog=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/compile_prog" $xml_conf` - compile_prog_args=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/compile_prog_args" $xml_conf` - pre_exec=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/pre_exec" $xml_conf` - pre_exec_args=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/pre_exec_args" $xml_conf` main_exec=$exec_dir/`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/main_exec" $xml_conf` main_exec_args=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/main_exec_args" $xml_conf` search_expr_true=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/search_expr_true" $xml_conf` search_expr_false=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/search_expr_false" $xml_conf` nruns=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/nruns" $xml_conf` - compile_prog_out=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/compile_prog_out" $xml_conf` tags=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/tags" $xml_conf` - test_config_file=`xmlstarlet sel -t -v "/testCaseList/testCase[@id='$search_expr']/test_config_file" $xml_conf` - echo "class = $class" echo "name = $name" echo "Description = $desc" - echo "pre_compile_prog = $pre_compile_prog" - echo "compile_prog = $compile_prog" - echo "compile_prog_args = $compile_prog_args" - echo "compile_prog_out = $compile_prog_out" - echo "pre_exec = $pre_exec" - echo "pre_exec_args = $pre_exec_args" echo "main_exec = $main_exec" echo "main_exec_args = $main_exec_args" echo "search_expr_true = $search_expr_true" echo "search_expr_false = $search_expr_false" + echo "tags = $tags" echo "nruns = $nruns" - #eval $pre_exec - compile_prog_out=`eval echo \"$compile_prog_out\"` - search_array_true=() IFS=\" #set the shell field separator - set -f #dont try to glob + set -f #dont try to glob #set -- $search_expr_true #split on $IFS for i in $search_expr_true do echo "i = $i" if [ -n "$i" ] && [ "$i" != " " ]; then search_array_true+=("$i") #echo "inside i = \"$i\" " - fi + fi done - unset IFS + unset IFS #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" "$compile_prog_out" "$tags" "$desc" - elif [ "$class" == "execution" ]; then - echo \'passwd\' | $SUDO killall -q oaisim_nos1 - 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" "$compile_prog_out" "$tags" "$mypassword" "$test_config_file" "$BYPASS_COMPILE" "$desc" - else - echo "Unexpected class of test case...Skipping the test case $name ...." - fi + + test_run \ + "$name" \ + "$main_exec" \ + "$main_exec_args" \ + "search_array_true[@]" \ + "$search_expr_false" \ + "$nruns" \ + "$tags" \ + "$test_config_file" \ + "$desc" done - - - } uname -a @@ -605,10 +328,4 @@ uname -a main "$@" xUnit_write "$results_file" - echo "Test Results are written to $results_file" - -exit - - - diff --git a/cmake_targets/autotests/test_case_list.xml b/cmake_targets/autotests/test_case_list.xml index 405fab0c25..00478ebecd 100755 --- a/cmake_targets/autotests/test_case_list.xml +++ b/cmake_targets/autotests/test_case_list.xml @@ -2,7 +2,6 @@ - execution dlsim Test cases. (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB), (Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)), (Test 6: 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)), @@ -17,11 +16,6 @@ (Test 15c: 20 MHz, R.9-1 FDD (MCS 26, 83 PRB), EVA5, 16.6dB (70%)), (TM2 Test 1: 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)), (TM2 Test 1b: 5 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - dlsim -m=5 -g=F -s=-1 -w=1.0 -f=.2 -n=500 -B=50 -c=2 -z=2 -O=60 -m=4 -g=F -s=0 -w=1.0 -f=.2 -n=500 -B=6 -c=4 -z=2 -O=60 @@ -44,18 +38,12 @@ - execution ulsim Test cases. (Test 1: 5 MHz, FDD (MCS 5), AWGN, 6dB), (Test 2: 5 MHz, FDD (MCS 16), AWGN , 12dB (70%)), (Test 3: 10 MHz, R3.FDD (MCS 5), AWGN, 6dB (70%)), (Test 4: 10 MHz, R3-1.FDD (MCS 16), AWGN, 12dB (70%)), (Test 5: 20 MHz, FDD (MCS 5), AWGN, 6dB (70%)), (Test 6: 20 MHz, FDD (MCS 16), AWGN, 12 dB (70%)) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - ulsim -BnbRBs=25 -mcs=5 -yN_rx=1 -gchannel=N -xTransmission=1 -snr=6 -wsnrInterrupt=1.0 -e_snr_step=.1 -P -nb_frame=500 -Operf=70 -BnbRBs=25 -mcs=16 -yN_rx=1 -gchannel=N -xTransmission=1 -snr=12 -wsnrInterrupt=1.0 -e_snr_step=.1 -P -nb_frame=500 -Operf=70 @@ -70,7 +58,6 @@ - execution ldpc Test cases. (Test1: block length = 3872), (Test2: block length = 4224), (Test3: block length = 4576), @@ -81,11 +68,6 @@ (Test8: block length = 7040), (Test9: block length = 7744), (Test10: block length = 8448) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - ldpctest -l3872 -s10 -n100 -l4224 -s10 -n100 @@ -104,16 +86,10 @@ - execution polartest Test cases. (Test1: PBCH polar test), (Test2: DCI polar test), (Test3: UCI polar test,6-bit CRC), (Test4: UCI polar test,11-bit CRC) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - polartest -q -s-10 -f0 -q -s-10 -f0 -m1 @@ -126,7 +102,6 @@ - execution nr_pbchsim Test cases. (Test1: PBCH-only, 106 PRB), (Test2: PBCH and synchronization, 106PBR), (Test3: PBCH-only, 217 PRB), @@ -134,11 +109,6 @@ (Test5: PBCH-only, 273 PRB), (Test6: PBCH and synchronization, 273 PRB), (Test7: PBCH and synchronization, 106PBR, SSB SC OFFSET 6) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_pbchsim -s-11 -S-8 -n10 -R106 -s-11 -S-8 -n10 -o8000 -I -R106 @@ -154,7 +124,6 @@ - execution nr_dlsim Test cases. (Test1: 106 PRB), (Test2: 217 PRB), (Test3: 273 PRB), @@ -179,11 +148,6 @@ (Test22: 4x4 MIMO, 2 Layers), (Test23: 25 PRBs, 15 kHz SCS) (Test24: MCS 0, low SNR performance) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_dlsim -n100 -R106 -b106 -s5 -n100 -R217 -b217 -s5 @@ -216,15 +180,9 @@ - execution nr_dlschsim Test cases. (Test1: 106 PRB), (Test2: 217 PRB), (Test3: 273 PRB) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_dlschsim -R 106 -m9 -s13 -n100 -R 217 -m15 -s15 -n100 @@ -236,16 +194,10 @@ - execution shortblocktest Test cases. (Test1: 3 bits), (Test2: 6 bits), (Test3: 7 bits), (Test4: 11 bits) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - smallblocktest -l 3 -s -4 -d 1 -i 10000 -l 6 -s -4 -d 1 -i 10000 @@ -259,16 +211,10 @@ - execution nr_ulschsim Test cases. (Test1: 106 PRBs), (Test2: 217 PRBs), (Test3: 273 PRBs) (Test4: 106 PRBs 4-layer MIMO) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_ulschsim -R 106 -m9 -s13 -n100 -R 217 -m15 -s15 -n100 @@ -281,7 +227,6 @@ - execution nr_pucchsim Test cases. (Test1: Format 0 1-bit ACK miss 106 PRB), (Test2: Format 0 2-bit ACK miss 106 PRB), (Test3: Format 0 2-bit ACK miss, 1-bit SR 106 PRB), @@ -299,11 +244,6 @@ (Test15: Format 2 32-bit 8/106 PRB), (Test16: Format 2 32-bit 16/106 PRB), (Test17: Format 2 64-bit 16/106 PRB) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_pucchsim -R 106 -i 1 -P 0 -b 1 -s-2 -n1000 -R 106 -i 1 -P 0 -b 2 -s-2 -n1000 @@ -330,7 +270,6 @@ - execution dlsim_tm4 test cases (Test 1: 10 MHz, R2.FDD (MCS 5), EVA5, -1dB), (Test 5: 1.4 MHz, R4.FDD (MCS 4), EVA5, 0dB (70%)), (Test 6, 10 MHz, R3.FDD (MCS 15), EVA5, 6.7dB (70%)), @@ -343,11 +282,6 @@ (TM2 Test 1 10 MHz, R.11 FDD (MCS 14), EVA5, 6.8 dB (70%)), (TM2 Test 1b 20 MHz, R.11-2 FDD (MCS 13), EVA5, 5.9 dB (70%)), - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - $OPENAIR_DIR/cmake_targets/lte-simulators/build/dlsim_tm4 -m5 -gF -s-1 -w1.0 -f.2 -n500 -B50 -c2 -z2 -O70 -m4 -gF -s0 -w1.0 -f.2 -n500 -B6 -c4 -z2 -O70 @@ -367,7 +301,6 @@ - execution nr_ulsim Test cases. (Test1: MCS 9 106 PRBs), (Test2: MCS 16 50 PRBs), (Test3: MCS 28 50 PRBs), @@ -390,11 +323,6 @@ (Test20: 3GPP G-FR1-A4-13 4 RX Antennas Requirements Test), (Test21: 3GPP G-FR1-A4-13 8 RX Antennas Requirements Test), (Test22: MCS 0, low SNR performance) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_ulsim -n100 -m9 -r106 -s5 -n100 -m16 -s10 @@ -425,7 +353,6 @@ - execution nr_prachsim Test cases. (Test1: 30kHz SCS, 106 PRBs, Prach format A2), (Test2: 30kHz SCS, 217 PRBs, Prach format A2), (Test3: 30kHz SCS, 273 PRBs, Prach format A2), @@ -434,11 +361,6 @@ (Test6: 120kHz SCS, 66 PRBs, Prach format A2), (Test7: 120kHz SCS, 66 PRBs, High Speed Enabled), (Test8: 15kHz SCS, 25 PRBs) - - $OPENAIR_DIR/cmake_targets/build_oai - --phy_simulators -c - $OPENAIR_DIR/cmake_targets/autotests/tools/free_mem.bash - nr_prachsim -a -s -30 -n 100 -p 63 -R 106 -a -s -30 -n 100 -p 63 -R 217