X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=automated-tests%2Fexecute.sh;h=04dbd1f45d302713d7851145ea535c21189b3c76;hp=e4059eef3b38a4bc38584cf5d3f42b2ef838182f;hb=d04c5bdbb95cc98f90848c7a98b0b2804df6e5b8;hpb=e2eda444afbe82e9591fe198eef339227f90a616 diff --git a/automated-tests/execute.sh b/automated-tests/execute.sh index e4059ee..04dbd1f 100755 --- a/automated-tests/execute.sh +++ b/automated-tests/execute.sh @@ -1,42 +1,106 @@ #!/bin/bash -TEMP=`getopt -o ds: --long desktop,scenario: \ - -n 'build_out.sh' -- "$@"` +TEMP=`getopt -o hsr --long help,serial,rerun -n 'execute.sh' -- "$@"` if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi # Note the quotes around `$TEMP': they are essential! eval set -- "$TEMP" -scenario=all -env=./_export_env.sh +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 " execute.sh \tFind and execute the given test case" + exit 2 +} +opt_serial=0 +opt_rerun="" while true ; do case "$1" in - -d|--desktop) env=./_export_desktop.sh ; shift ;; - -s|--scenario) scenario="$2" ; shift 2 ;; - --) shift ; break ;; - *) echo "Internal error!" ; exit 1 ;; - esac + -h|--help) usage ;; + -s|--serial) opt_serial=1 ; shift ;; + -r|--rerun) opt_rerun="-r" ; shift ;; + --) shift; break;; + *) echo "Internal error $1!" ; exit 1 ;; + esac done +function execute +{ + 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 +} -# Source correct environment -. $env -echo PATH=$PATH -echo LD_LIBRARY_PATH=$LD_LIBRARY_PATH -echo TET_ROOT=$TET_ROOT -echo TET_SUITE_ROOT=$TET_SUITE_ROOT -echo ARCH=$ARCH +# Clean up old test results +rm -f tct*core-tests.xml -RESULT_DIR=results-$ARCH -HTML_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.html -JOURNAL_RESULT=$RESULT_DIR/exec-tar-result-$FILE_NAME_EXTENSION.journal +# Clean up old coverage data +if [ -d ../build/tizen ] ; then + rm -f ../build/tizen/dali-core/.libs/*.gcda +fi -mkdir -p $RESULT_DIR +find build \( -name "*.gcda" \) -exec rm '{}' \; -tcc -e -j $JOURNAL_RESULT -p ./ $scenario -./tbp.pl $JOURNAL_RESULT +ASCII_BOLD="\e[1m" +ASCII_RESET="\e[0m" +if [ $opt_serial = 1 ] ; then + # Run all test case executables serially, create XML output + if [ -n "$1" ] ; then + execute $1 $* + else + for mod in `ls -1 src/ | grep -v CMakeList ` + do + if [ $mod != 'common' ] && [ $mod != 'manual' ]; then + + echo -ne "$ASCII_BOLD" + echo -e "Executing $mod$ASCII_RESET" + execute $mod $* + fi + done + fi + + scripts/summarize.pl +else + # if $1 is an executable filename, execute it· + + 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` + do + echo -e "$ASCII_BOLD" + echo -e "Executing $mod$ASCII_RESET" + build/src/$mod/tct-$mod-core $opt_rerun + done + + elif [ -f "build/src/$1/tct-$1-core" ] ; then + # First argument is an executable filename - execute only that with any + # remaining arguments + module=$1 + shift; + build/src/$module/tct-$module-core $opt_rerun $* + + 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` + 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 + fi + done + echo $1 not found + fi +fi