From dcfaead025f2bdb7aa4a929b43d8800533d9c9e8 Mon Sep 17 00:00:00 2001 From: Cedric Bastoul Date: Wed, 8 Jan 2014 16:45:56 +0100 Subject: [PATCH] Add a test_regenerate target for regenerating failing tests "make test_regenerate" will update all failing tests with the files generated by the current CLooG. Handy to update tests that changed textually but remain semantically equivalent, e.g., because of a polyhedral library update. Use with care! --- test/Makefile.am | 10 ++++++++-- test/check_c.sh | 2 +- test/check_fortran.sh | 2 +- test/check_openscop.sh | 2 +- test/check_run.sh | 6 +++--- test/check_special.sh | 2 +- test/check_strided.sh | 2 +- test/checker.sh | 10 +++++++++- 8 files changed, 25 insertions(+), 11 deletions(-) diff --git a/test/Makefile.am b/test/Makefile.am index c97678b..3b0f60c 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -315,8 +315,14 @@ TESTS_ENVIRONMENT = \ SPECIAL_OPTIONS="$(SPECIAL_OPTIONS)" test_run: generate_test$(EXEEXT) - $(TESTS_ENVIRONMENT) \ - $(srcdir)/check_run.sh + $(TESTS_ENVIRONMENT) $(srcdir)/check_run.sh + +test_regenerate: + $(TESTS_ENVIRONMENT) $(srcdir)/check_c.sh regenerate ; \ + $(TESTS_ENVIRONMENT) $(srcdir)/check_fortran.sh regenerate ; \ + $(TESTS_ENVIRONMENT) $(srcdir)/check_strided.sh regenerate ; \ + $(TESTS_ENVIRONMENT) $(srcdir)/check_openscop.sh regenerate ; \ + $(TESTS_ENVIRONMENT) $(srcdir)/check_special.sh regenerate check_SCRIPTS = \ check_c.sh \ diff --git a/test/check_c.sh b/test/check_c.sh index 8601154..0938837 100755 --- a/test/check_c.sh +++ b/test/check_c.sh @@ -35,4 +35,4 @@ # * * # *****************************************************************************/ -$CHECKER "C" "$CLOOGTEST_C" "" "cloog" "c" "0" +$CHECKER "C" "$CLOOGTEST_C" "" "cloog" "c" "0" "${1:-keep}" diff --git a/test/check_fortran.sh b/test/check_fortran.sh index 7d8db92..27cbc14 100755 --- a/test/check_fortran.sh +++ b/test/check_fortran.sh @@ -35,4 +35,4 @@ # * * # *****************************************************************************/ -$CHECKER "FORTRAN" "$CLOOGTEST_FORTRAN" "" "cloog" "f" "0" +$CHECKER "FORTRAN" "$CLOOGTEST_FORTRAN" "" "cloog" "f" "0" "${1:-keep}" diff --git a/test/check_openscop.sh b/test/check_openscop.sh index 6b78415..3e943e8 100755 --- a/test/check_openscop.sh +++ b/test/check_openscop.sh @@ -35,4 +35,4 @@ # * * # *****************************************************************************/ -$CHECKER "OPENSCOP" "$CLOOGTEST_OPENSCOP" "-openscop" "scop" "c" "0" +$CHECKER "OPENSCOP" "$CLOOGTEST_OPENSCOP" "-openscop" "scop" "c" "0" "${1:-keep}" diff --git a/test/check_run.sh b/test/check_run.sh index 9ce0b1c..279adc3 100755 --- a/test/check_run.sh +++ b/test/check_run.sh @@ -44,12 +44,12 @@ special_refactored=`echo "$SPECIAL_OPTIONS" | \ sed "s/#/ /g" | \ sed "s/'//g"` -$CHECKER "RUN C" "$FINITE_CLOOGTEST_C" "" "cloog" "c" "1" +$CHECKER "RUN C" "$FINITE_CLOOGTEST_C" "" "cloog" "c" "1" "${1:-keep}" failedtest=$?; -$CHECKER "RUN SPECIAL" "$special_refactored" "" "cloog" "c" "1" +$CHECKER "RUN SPECIAL" "$special_refactored" "" "cloog" "c" "1" "${1:-keep}" failedtest=`expr $failedtest + $?`; -$CHECKER "RUN SPECIAL -sh 1" "$special_refactored" "-sh 1" "cloog" "c" "1" +$CHECKER "RUN SPECIAL -sh 1" "$special_refactored" "-sh 1" "cloog" "c" "1" "${1:-keep}" failedtest=`expr $failedtest + $?`; return $failedtest; diff --git a/test/check_special.sh b/test/check_special.sh index ece90d5..b392524 100755 --- a/test/check_special.sh +++ b/test/check_special.sh @@ -44,4 +44,4 @@ special_refactored=`echo "$SPECIAL_OPTIONS" | \ sed "s/#/ /g" | \ sed "s/'//g"` -$CHECKER "SPECIAL" "$special_refactored" "" "cloog" "c" "0" +$CHECKER "SPECIAL" "$special_refactored" "" "cloog" "c" "0" "${1:-keep}" diff --git a/test/check_strided.sh b/test/check_strided.sh index 3932373..8e48d2e 100755 --- a/test/check_strided.sh +++ b/test/check_strided.sh @@ -35,4 +35,4 @@ # * * # *****************************************************************************/ -$CHECKER "STRIDED" "$CLOOGTEST_STRIDED" "-strides 1" "cloog" "c" "0" +$CHECKER "STRIDED" "$CLOOGTEST_STRIDED" "-strides 1" "cloog" "c" "0" "${1:-keep}" diff --git a/test/checker.sh b/test/checker.sh index 4064819..3fde644 100755 --- a/test/checker.sh +++ b/test/checker.sh @@ -60,6 +60,10 @@ TEST_OUTPUT_EXTENSION="$5" ## Extension of the generated file TEST_RUN="$6" ## "1" if the checking policy is to generate, ## compile and run, generate only otherwise +TEST_REGENERATE="$7" ## "regenerate" to replace the original file with + ## the generated one in the case of a check fail + ## !!! USE WITH CARE !!! + failedtest=0; cloog=$top_builddir/cloog$EXEEXT echo " /*-----------------------------------------------*" @@ -105,8 +109,12 @@ for x in $TEST_FILES; do else echo "generating... \c"; $cloog $options -q $input > cloog_temp; - diff -u -w --ignore-matching-lines='CLooG' cloog_temp $output; + diff -u -w --ignore-matching-lines='CLooG' $output cloog_temp; result=$?; + if [ "$result" -ne "0" ] && [ "$TEST_REGENERATE" = "regenerate" ]; then + echo -e "\033[31mREGENERATING... \033[0m"; + cp cloog_temp $output; + fi; rm -f cloog_temp; fi; -- 2.11.4.GIT