From: uros Date: Sat, 15 May 2010 19:19:48 +0000 (+0000) Subject: * testsuite/lib/mfdg.exp (additional_prunes): New global. X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=commitdiff_plain;h=d45b884a73402fb1589e08517911078aaba4ede0;hp=afb3d3c49fad6249e0b85722105326e9031d9475 * testsuite/lib/mfdg.exp (additional_prunes): New global. (dg-test): Clear additional_prunes before test is run. (dg-prune-output): New procedure. * testsuite/lib/libmudflap.exp (libmudflap-dg-test): Do not call prune_gcc_output. (libmudflap-dg-prune): New procedure. * testsuite/libmudflap.c++/pass57-frag.cxx (dg-prune-output): New dg directive. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@159440 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/libmudflap/ChangeLog b/libmudflap/ChangeLog index 99112ccdcab..0c24a037e64 100644 --- a/libmudflap/ChangeLog +++ b/libmudflap/ChangeLog @@ -1,3 +1,14 @@ +2010-05-15 Uros Bizjak + + * testsuite/lib/mfdg.exp (additional_prunes): New global. + (dg-test): Clear additional_prunes before test is run. + (dg-prune-output): New procedure. + * testsuite/lib/libmudflap.exp (libmudflap-dg-test): Do not call + prune_gcc_output. + (libmudflap-dg-prune): New procedure. + * testsuite/libmudflap.c++/pass57-frag.cxx (dg-prune-output): + New dg directive. + 2010-05-04 Ralf Wildenhues PR other/43620 diff --git a/libmudflap/testsuite/lib/libmudflap.exp b/libmudflap/testsuite/lib/libmudflap.exp index c69e84ade29..588ecb5c86b 100644 --- a/libmudflap/testsuite/lib/libmudflap.exp +++ b/libmudflap/testsuite/lib/libmudflap.exp @@ -187,7 +187,6 @@ proc libmudflap-dg-test { prog do_what extra_tool_flags } { lappend options "libs=$mfconfig_libs" set comp_output [libmudflap_target_compile "$prog" "$output_file" "$compile_type" $options]; - set comp_output [prune_gcc_output $comp_output ]; return [list $comp_output $output_file] } @@ -278,6 +277,22 @@ proc libmudflap-list-sourcefiles { } { } +proc libmudflap-dg-prune { system text } { + global additional_prunes + + set text [prune_gcc_output $text] + + foreach p $additional_prunes { + if { [string length $p] > 0 } { + # Following regexp matches a complete line containing $p. + regsub -all "(^|\n)\[^\n\]*$p\[^\n\]*" $text "" text + } + } + + return $text +} + + proc prune_gcc_output { text } { regsub -all {(^|\n)[^\n]*ld: warning: libgcc_s[^\n]*not found[^\n]*try using[^\n]*} $text "" text regsub -all {(^|\n)[^\n]*In function.*pthread_create[^\n]*} $text "" text diff --git a/libmudflap/testsuite/lib/mfdg.exp b/libmudflap/testsuite/lib/mfdg.exp index 0db44d5fbbd..5f864745c01 100644 --- a/libmudflap/testsuite/lib/mfdg.exp +++ b/libmudflap/testsuite/lib/mfdg.exp @@ -33,6 +33,7 @@ load_lib dg.exp proc dg-test { args } { global dg-do-what-default dg-interpreter-batch-mode dg-linenum-format global errorCode errorInfo + global additional_prunes global tool global srcdir ;# eg: /calvin/dje/build/gcc/./testsuite/ global host_triplet target_triplet @@ -91,6 +92,8 @@ proc dg-test { args } { set dg-extra-tool-flags $default_extra_tool_flags set dg-final-code "" + set additional_prunes "" + # `dg-output-text' is a list of two elements: pass/fail and text. # Leave second element off for now (indicates "don't perform test") set dg-output-text "P" @@ -334,7 +337,6 @@ proc dg-test { args } { } - # # Indicate that this test case is to be rerun several times. This # is useful if it is nondeterministic. This applies to rerunning the @@ -346,3 +348,18 @@ proc dg-repetitions { line value } { upvar dg-repetitions repetitions set repetitions $value } + + +# Prune any messages matching ARGS[1] (a regexp) from test output. +proc dg-prune-output { args } { + global additional_prunes + + if { [llength $args] != 2 } { + error "[lindex $args 1]: need one argument" + return + } + + lappend additional_prunes [lindex $args 1] +} + +set additional_prunes "" diff --git a/libmudflap/testsuite/libmudflap.c++/pass57-frag.cxx b/libmudflap/testsuite/libmudflap.c++/pass57-frag.cxx index e4fa70176b7..8be1a2d1113 100644 --- a/libmudflap/testsuite/libmudflap.c++/pass57-frag.cxx +++ b/libmudflap/testsuite/libmudflap.c++/pass57-frag.cxx @@ -23,3 +23,6 @@ int main () { return 0; } + +/* Ignore a warning that is irrelevant to the purpose of this test. */ +/* { dg-prune-output ".*mudflap cannot track unknown size extern.*" } */