]> gcc.gnu.org Git - gcc.git/commitdiff
Add support for a .x file to control XFAIL and wich kinds of gcov output
authorJanis Johnson <janis@gcc.gnu.org>
Fri, 7 Sep 2001 16:39:44 +0000 (16:39 +0000)
committerJanis Johnson <janis@gcc.gnu.org>
Fri, 7 Sep 2001 16:39:44 +0000 (16:39 +0000)
to verify.

From-SVN: r45466

gcc/testsuite/gcc.misc-tests/gcov.exp

index 117387f7cb4f247aacaf5b51366695862afc1b27..053bbefd930e0f1053c0655c28cb40887a58f218 100644 (file)
@@ -253,11 +253,29 @@ proc verify-calls { testcase file } {
 
 proc run-gcov { args } {
     global GCOV
-    global subdir
+    global srcdir subdir
 
     # Extract the test name from the arguments.
     set testcase [lindex $args end]
 
+    # Get special options for this test from the .x script, if present.
+    # This can include:
+    #   gcov_execute_xfail     string to pass to setup_xfail
+    #   gcov_verify_xfail      string to pass to setup_xfail
+    #   gcov_verify_branches   if defined, check branch percentages
+    #   gcov_verify_calls      if defined, check call return percentages
+    if [file exists [file rootname $srcdir/$subdir/$testcase].x] {
+       set done_p 0
+       catch "set done_p \[source [file rootname $srcdir/$subdir/$testcase].x\]"
+       if { $done_p } {
+           return
+       }
+    }
+
+    if [info exists gcov_execute_xfail] {
+       setup_xfail $gcov_execute_xfail
+    }
+
     verbose "Running $GCOV $testcase" 2
     set testcase [remote_download host $testcase];
     set result [remote_exec host $GCOV $args];
@@ -276,22 +294,30 @@ proc run-gcov { args } {
     }
     remote_upload host $testcase.gcov $testcase.gcov;
 
+    if [info exists gcov_verify_xfail] {
+       setup_xfail $gcov_verify_xfail
+    }
+
     # Check that line execution counts are as expected.
     set loutput [verify-lines $testcase $testcase.gcov]
     set lfailed [lindex $loutput 0]
     set lmessage [lindex $loutput 1]
 
-    # If we asked for branch and call information, check that it is correct.
-    if [regexp -- "-b" $args] {
+    # If requested via the .x file, check that branch and call information
+    # is correct.
+    if [info exists gcov_verify_branches] {
        set boutput [verify-branches $testcase $testcase.gcov]
        set bfailed [lindex $boutput 0]
        set bmessage [lindex $boutput 1]
+    } else {
+       set bfailed 0
+       set bmessage ""
+    }
+    if [info exists gcov_verify_calls] {
        set coutput [verify-calls $testcase $testcase.gcov]
        set cfailed [lindex $coutput 0]
        set cmessage [lindex $coutput 1]
     } else {
-       set bfailed 0
-       set bmessage ""
        set cfailed 0
        set cmessage ""
     }
@@ -300,7 +326,7 @@ proc run-gcov { args } {
 
     # Report whether the gcov test passed or failed.  If there were
     # multiple failures then the message is a summary.
-    set tfailed [expr $lfailed + [expr $bfailed + $cfailed]]
+    set tfailed [expr $lfailed + $bfailed + $cfailed]
     if { $tfailed > 0 } {
        if { $tfailed == 1 } {
            set vmessage "$lmessage$bmessage$cmessage"
This page took 0.063671 seconds and 5 git commands to generate.