[Darwin, testsuite] Address PR91087 - XFAIL parts of pr16855.C.
authorIain Sandoe <iain@sandoe.co.uk>
Thu, 25 Jul 2019 18:12:03 +0000 (18:12 +0000)
committerIain Sandoe <iains@gcc.gnu.org>
Thu, 25 Jul 2019 18:12:03 +0000 (18:12 +0000)
The testcase is failing to instrument part of the source because of a bug
in the ordering of static DTORs.  It seems unlikely that this is generically
fixable in the toolchain (and given that it's likely to be a dynamic loader
change would not be expected to be applied retrospectively to OS versions
that are out of support).  To avoid the testsuite noise, xfail the count lines
that don't match (we can adjust the xfails as/when the upstream bug is fixed).

dejagnu xfails do not seem to work when embedded in a line like:
  ~Test (void) { .... /* count(1) { xfail ... } */ }
the closing brace seems to confuse the parser.  The solution is to exapnd the
text onto three lines.

2019-07-25  Iain Sandoe  <iain@sandoe.co.uk>

PR gcov-profile/91087
* g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the
"final" line for the failure summaries.  Adjust source layout so that
dejagnu xfail expressions work.

From-SVN: r273809

gcc/testsuite/ChangeLog
gcc/testsuite/g++.dg/gcov/pr16855.C

index ea5d239661a824bb36cea08dd49016111bb4785a..6fc49316c8a57d4fda869095887169ef2a3af2a3 100644 (file)
@@ -1,3 +1,10 @@
+2019-07-25  Iain Sandoe  <iain@sandoe.co.uk>
+
+       PR gcov-profile/91087
+       * g++.dg/gcov/pr16855.C: Xfail the count lines for the DTORs and the
+       "final" line for the failure summaries.  Adjust source layout so that
+       dejagnu xfail expressions work.
+
 2019-07-25  Thomas Koenig  <tkoenig@gcc.gnu.org>
 
        PR fortran/65819
index d7aa8a4f72cb01774464ebd534422273a0b566c9..a68b05cb571c2e25230bf033de4c81176f1d6a84 100644 (file)
@@ -1,6 +1,8 @@
 /* { dg-options "-fprofile-arcs -ftest-coverage" } */
 /* { dg-do run { target native } } */
 
+/* See PR91087 for information on Darwin xfails. */
+
 #include <stdlib.h>
 #include <stdio.h>
 
@@ -18,7 +20,9 @@ class Test
 {
 public:
   Test (void) { fprintf (stderr, "In Test::Test\n"); /* count(1) */ }
-  ~Test (void) { fprintf (stderr, "In Test::~Test\n"); /* count(1) */ }
+  ~Test (void) {
+   fprintf (stderr, "In Test::~Test\n"); /* count(1) { xfail *-*-darwin* } */
+  }
 } T1;
 
 void
@@ -42,7 +46,7 @@ static void __attribute__ ((constructor)) ctor_default ()
 
 static void __attribute__ ((destructor)) dtor_default ()
 {
-  fprintf (stderr, "in destructor(())\n"); /* count(1) */
+  fprintf (stderr, "in destructor(())\n"); /* count(1) { xfail *-*-darwin* } */
 }
 
-/* { dg-final { run-gcov branches { -b pr16855.C } } } */
+/* { dg-final { run-gcov branches { -b pr16855.C } { xfail *-*-darwin* } } } */