Patch for newlib test assertion naming
Jeff Johnston
jjohnstn@redhat.com
Mon Jul 18 19:08:00 GMT 2005
Joseph S. Myers wrote:
> When integrating dejagnu-based testsuites such as newlib's into an
> automatic regression testing system, the PASS and FAIL lines from the
> ".sum" files from successive runs are extracted and compared. This
> requires the test assertion names after PASS or FAIL to be unique
> (within the tests for each multilib; successive multilibs repeat the
> same names) and stable so that the differences show only genuine
> changes, not changes because of (for example) the date in a source
> directory name changing. In addition, it's desirable for a test
> failure not to change the set of test assertion names, so if a
> compilation test fails the following execution test should be marked
> UNRESOLVED rather than disappearing altogether from the test output.
>
> At present, newlib.sum can have lines such as:
>
> FAIL: Failed to compile /scratch/gcc/nightly-2005-07-04-csl-arm/src/newlib-mainline/newlib/testsuite/newlib.wctype/twctype.c.
>
> which has two problems: the test assertion name includes the full
> source directory path, and such a line will only appear if the test
> fails; if it passes, it won't become (and wouldn't make sense to
> become):
>
> PASS: Failed to compile /scratch/gcc/nightly-2005-07-04-csl-arm/src/newlib-mainline/newlib/testsuite/newlib.wctype/twctype.c.
>
> Test names such as "newlib.wctype/twctype.c compilation", which can
> appear after either PASS or FAIL, avoid these problems. This patch
> accordingly changes the newlib testsuite to use such test names, with
> additional information about unexpected results from output comparison
> going in "verbose -log" lines in the log rather than in the FAIL name.
> Tested by running the testsuite for arm-none-eabi. OK to commit?
>
Ok. Patch checked in.
-- Jeff J.
> 2005-07-06 Joseph S. Myers <joseph@codesourcery.com>
>
> * testsuite/lib/checkoutput.exp (newlib_check_output): Use test
> names after PASS and FAIL which do not depend on source directory
> name or on whether test passed or failed.
> * testsuite/lib/passfail.exp (newlib_pass_fail): Likewise.
>
> diff -rupN testsuite.orig/lib/checkoutput.exp testsuite/lib/checkoutput.exp
> --- testsuite.orig/lib/checkoutput.exp 2005-07-05 00:10:08.000000000 +0000
> +++ testsuite/lib/checkoutput.exp 2005-07-06 22:39:13.000000000 +0000
> @@ -17,9 +17,11 @@ proc newlib_check_output { srcfile expec
> set comp_output [newlib_target_compile "$srcfullname" "$test_driver" "executable" ""]
>
> if { $comp_output != "" } {
> - fail "Failed to compile $srcfile.\n"
> + fail "$subdir/$srcfile compilation"
> + unresolved "$subdir/$srcfile output"
> return
> }
> + pass "$subdir/$srcfile compilation"
>
> set result [newlib_load $test_driver ""]
> set status [lindex $result 0]
> @@ -30,11 +32,12 @@ proc newlib_check_output { srcfile expec
> foreach { expectedval } $expectlist {
> set gotval [string trim [lindex $output_lines 0] "\r"]
> if { ! [string match $expectedval $gotval] } {
> - fail "$srcfile: Expected: $expectedval Got: $gotval "
> + verbose -log "$subdir/$srcfile: Expected: $expectedval Got: $gotval "
> + fail "$subdir/$srcfile output"
> return
> }
> set output_lines [lrange $output_lines 1 end]
> }
>
> - pass $srcfile
> + pass "$subdir/$srcfile output"
> }
> diff -rupN testsuite.orig/lib/passfail.exp testsuite/lib/passfail.exp
> --- testsuite.orig/lib/passfail.exp 2005-07-05 00:10:08.000000000 +0000
> +++ testsuite/lib/passfail.exp 2005-07-06 22:40:09.000000000 +0000
> @@ -41,10 +41,12 @@ proc newlib_pass_fail { srcfile } {
> set comp_output [newlib_target_compile "$fullsrcfile" "$test_driver" "executable" ""]
>
> if { $comp_output != "" } {
> - fail "Failed to compile $fullsrcfile.\n"
> + fail "$subdir/$srcfile compilation"
> + unresolved "$subdir/$srcfile execution"
> } else {
> + pass "$subdir/$srcfile compilation"
> set result [newlib_load $test_driver ""]
> set status [lindex $result 0]
> - $status "$fullsrcfile"
> + $status "$subdir/$srcfile execution"
> }
> }
>
>
More information about the Newlib
mailing list