X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fexecute.sh;h=7703340d40120c4061b2c8c6139110ff4f9fbf8f;hp=3bd6b06790720a05e9d46910c28051dd7939569d;hb=41d36118a13932bcf1db39b780ac437fcda8aa08;hpb=998d982768c7f211d948cfd7921ec27ff739ce49 diff --git a/automated-tests/execute.sh b/automated-tests/execute.sh index 3bd6b06..7703340 100755 --- a/automated-tests/execute.sh +++ b/automated-tests/execute.sh @@ -1,36 +1,161 @@ #!/bin/bash -function execute +TEMP=`getopt -o dhsSmf --long debug,help,failnorerun,serial,tct,modules -n 'execute.sh' -- "$@"` + +if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi + +# Note the quotes around `$TEMP': they are essential! +eval set -- "$TEMP" + +function usage +{ + echo -e "Usage: execute.sh [-d][-s|-S|-r] [module|testcase]" + echo -e " execute.sh\t\tExecute test cases from all modules in parallel" + echo -e " execute.sh -f \tExecute test cases from all modules in parallel without rerunning failed test cases" + echo -e " execute.sh -d \tDebug testcase" + echo -e " execute.sh [module]\tExecute test cases from the given module in parallel" + echo -e " execute.sh -s [module]\t\tExecute test cases in serial using Testkit-Lite" + echo -e " execute.sh -S [module]\t\tExecute test cases in serial" + echo -e " execute.sh \tFind and execute the given test case" + exit 2 +} + +opt_tct=0 +opt_serial="" +opt_modules=0 +opt_debug=0 +opt_noFailedRerun=""; +while true ; do + case "$1" in + -h|--help) usage ;; + -d|--debug) opt_debug=1 ; shift ;; + -s|--tct) opt_tct=1 ; shift ;; + -f|--nofailedrerun) opt_noFailedRerun="-f" ; shift ;; + -S|--serial) opt_serial="-s" ; shift ;; + -m|--modules) opt_modules=1 ; shift ;; + --) shift; break;; + *) echo "Internal error $1!" ; exit 1 ;; + esac +done + +function execute_tct { scripts/tctestsgen.sh $1 `pwd` desktop $2 testkit-lite -f `pwd`/tests.xml -o tct-${1}-core-tests.xml -A --comm localhost scripts/add_style.pl $1 } +function summary_start +{ + start=`date +"%Y-%m-%d_%H_%M_%S"` + cat > summary.xml < + + + + + $start + $start + +EOF +} + +function summary_end +{ + cat >> summary.xml < +EOF +} + +if [ $opt_modules == 1 ] ; then + modules= get_modules + echo $modules + exit 0 +fi + # Clean up old test results rm -f tct*core-tests.xml # Clean up old coverage data -if [ -d ../build/slp ] ; then - rm -f ../build/slp/dali-core/.libs/*.gcda -elif [ -d ../build/tizen ] ; then - rm -f ../build/tizen/dali-core/.libs/*.gcda -fi +[ -d ../build/tizen ] && rm -f ../build/tizen/dali/.libs/*.gcda +[ -d ../build/tizen-cmake ] && find ../build/tizen-cmake/ -name \*.gcda -exec rm {} \; + +find build \( -name "*.gcda" \) -exec rm '{}' \; + +ASCII_BOLD="\e[1m" +ASCII_RESET="\e[0m" -find build -name "*.gcda" -exec rm '{}' \; +modules=`ls -1 src/ | grep -v CMakeList | grep -v common | grep -v manual` +if [ -f summary.xml ] ; then unlink summary.xml ; fi + +if [ $opt_tct == 1 ] ; then + # Use Test-kit lite + # Run all test case executables serially, create XML output + if [ -n "$1" ] ; then + execute_tct $1 $* + else + for mod in $modules + do + if [ $mod != 'common' ] && [ $mod != 'manual' ]; then + + echo -ne "$ASCII_BOLD" + echo -e "Executing $mod$ASCII_RESET" + execute_tct $mod $* + fi + done + fi -if [ -n "$1" ] ; then - echo EXECUTING ONLY $1 - execute $* + scripts/summarize.pl else - for mod in `ls -1 src/ | grep -v CMakeList ` - do - if [ $mod != 'common' ] && [ $mod != 'manual' ]; then - echo EXECUTING $mod - execute $mod $* + # Execute test cases using own test harness + + if [ -z "$1" ] ; then + # No arguments: + # Execute each test executable in turn (by default, runs tests in parallel) + summary_start + for mod in $modules + do + echo -e "$ASCII_BOLD" + echo -e "Executing $mod$ASCII_RESET" + build/src/$mod/tct-$mod-core $opt_serial $opt_noFailedRerun + done + summary_end + + elif [ -f "build/src/$1/tct-$1-core" ] ; then + # First argument is an executable filename - execute only that with any + # remaining arguments + summary_start + module=$1 + shift; + build/src/$module/tct-$module-core $opt_serial $opt_noFailedRerun $* + summary_end + + else + # First argument is not an executable. Is it a test case name? + # Try executing each executable with the test case name until success/known failure + for mod in $modules + do + output=`build/src/$mod/tct-$mod-core $1` + ret=$? + if [ $ret -ne 6 ] ; then + if [ $opt_debug -ne 0 ] ; then + echo DEBUGGING: + gdb --args build/src/$mod/tct-$mod-core $1 + + else + echo $output + if [ $ret -eq 0 ] ; then echo -e "\nPassed" ; fi + fi + exit $ret + fi + done + echo $1 not found fi - done fi -scripts/summarize.pl +if [ -f summary.xml ] ; then + scripts/output_summary.pl +fi + +exit $?