TEMP_FILE_EXEC_NOT_FOUND="temp_exec_not_found.txt"
TEMP_REPORT_FILE="temp_report.txt"
+MAKE_OPTIONS="-j3 -k -s -w"
+
+SCRIPT_DIR=(`pwd`)
+
# check that directories are found
if [[ -d $REPORT_PATH && -d $UNIT_TESTS_ROOT_DIR ]]; then
# convert relational paths to absolute ones
echo "##########################################" >> $REPORT
echo "" >> $REPORT
- # find all test .pro files pahts, cut .pro extension
- UNIT_TEST_PROJECTS=(`find $UNIT_TESTS_ROOT_DIR_ABSOLUTE | egrep .pro$ | sed -e s/.pro//g`)
+ # find all test .pro files paths, cut .pro extension
+ UNIT_TEST_PROJECTS=(`find $UNIT_TESTS_ROOT_DIR_ABSOLUTE | egrep \.pro$ | sed -e s,.pro$,,g`)
echo "###################################################"
echo "All unit test executables will be deleted"
# run qmake
cd $UNIT_TESTS_ROOT_DIR_ABSOLUTE
qmake -r
- make
+ make $MAKE_OPTIONS
cd -
echo ""
# go to unit test directory
cd "`echo $PROJECT | grep --perl-regexp -o .*\(?=/\)`"
# run unit test, save to temp file, ignore strerr stream
- $PROJECT -silent -o $REPORT_PATH_ABSOLUTE/$TEMP_REPORT_FILE 2>&1 | grep -v "atk_object_set_name..assertion"
+ $PROJECT -silent -o $REPORT_PATH_ABSOLUTE/$TEMP_REPORT_FILE 2>&1 | grep -v -f $SCRIPT_DIR/filtering_patterns_for_unit_tests_output.txt
cd - > /dev/null
# print to screen and append to summary
cat $REPORT_PATH_ABSOLUTE/$TEMP_REPORT_FILE
cat $REPORT_PATH_ABSOLUTE/$TEMP_REPORT_FILE >> $REPORT_PATH_ABSOLUTE/$REPORT_FILE
+ echo ""
echo "" >> $REPORT_PATH_ABSOLUTE/$REPORT_FILE
else
# save path of missing test to temporary file
tput sgr0 # restore terminal defaults
echo ""
echo "Some possible causes:"
- echo " - project has set target name explicitly. Target name must be same as directory name"
+ echo " - project has set target name explicitly. Target name must be same as the directory name"
echo " - don't use shadow build system"
+ echo " - test project is not included in the master test project (tests/tests.pro)"
# and save same list also to test summary file
echo "" >> $REPORT
# remove temporary files
rm $REPORT_PATH_ABSOLUTE/temp_*.txt
+ # remove all unit test binaries so they doesn't accidentally get into repository
+ for BINARY in "${UNIT_TEST_PROJECTS[@]}"
+ do
+ # remove only if file really exists
+ if [ -a $BINARY ]; then
+ rm $BINARY
+ fi
+ done
+
# tell that script reached the end
echo "" >> $REPORT
echo "All done!" >> $REPORT