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=04dbd1f45d302713d7851145ea535c21189b3c76;hb=41d36118a13932bcf1db39b780ac437fcda8aa08;hpb=869f6dc6c56e97f9bfb2460c84afa8d6ebf06ea5 diff --git a/automated-tests/execute.sh b/automated-tests/execute.sh index 04dbd1f..7703340 100755 --- a/automated-tests/execute.sh +++ b/automated-tests/execute.sh @@ -1,6 +1,6 @@ #!/bin/bash -TEMP=`getopt -o hsr --long help,serial,rerun -n 'execute.sh' -- "$@"` +TEMP=`getopt -o dhsSmf --long debug,help,failnorerun,serial,tct,modules -n 'execute.sh' -- "$@"` if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi @@ -9,98 +9,153 @@ eval set -- "$TEMP" function usage { - echo -e "Usage: execute.sh\t\tExecute test cases from all modules in parallel" - echo -e " execute.sh \tExecute test cases from the given module in parallel" - echo -e " execute.sh -s\t\tExecute test cases in serial using Testkit-Lite" - echo -e " execute.sh -r\t\tExecute test cases in parallel, re-running failed test cases in serial afterwards" + 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_serial=0 -opt_rerun="" +opt_tct=0 +opt_serial="" +opt_modules=0 +opt_debug=0 +opt_noFailedRerun=""; while true ; do case "$1" in -h|--help) usage ;; - -s|--serial) opt_serial=1 ; shift ;; - -r|--rerun) opt_rerun="-r" ; shift ;; + -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 +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/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" -if [ $opt_serial = 1 ] ; then +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 $1 $* + execute_tct $1 $* else - for mod in `ls -1 src/ | grep -v CMakeList ` + for mod in $modules do if [ $mod != 'common' ] && [ $mod != 'manual' ]; then echo -ne "$ASCII_BOLD" echo -e "Executing $mod$ASCII_RESET" - execute $mod $* + execute_tct $mod $* fi done fi scripts/summarize.pl + else - # if $1 is an executable filename, execute it· + # Execute test cases using own test harness if [ -z "$1" ] ; then # No arguments: - # Execute each test executable in turn, using parallel execution - for mod in `ls -1 src/ | grep -v CMakeList | grep -v common | grep -v manual` + # 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_rerun + 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_rerun $* + 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 `ls -1 src/ | grep -v CMakeList | grep -v common | grep -v manual` + # 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 - echo $output - if [ $ret -eq 0 ] ; then echo -e "\nPassed" ; fi - exit $ret + 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 fi + +if [ -f summary.xml ] ; then + scripts/output_summary.pl +fi + +exit $?