I've long noticed that libstdc++.log (unlike libstdc++.sum) doesn't
contain log entries for tests run from abi.exp, but hadn't looked
closer, getting used to check libstdc++.log.sep instead which contained
everything I expected.

This weekend, I've observed the same for the prettyprinters.exp failures
reported in PR libstdc++/53006 and decided to investigate.

It turns out that abi_check is the culprit: it emits its own summary in
a style similar to what DejaGnu does:

                === libstdc++-v3 check-abi Summary ===

# of added symbols:              0
# of missing symbols:            0
# of undesignated symbols:       0
# of incompatible symbols:       0

using: baseline_symbols.txt

The header format is similar to what runtest emits, but the detail lines
below are completely different.

This is enought to seriously confuse contrib/dg-extract-results.sh -L
badly enough to assume that this header line ends one variant, which
otherwise only happens when doing multilib testing with intermediate
summaries like

                === libstdc++ Summary for unix ===

# of expected passes            50

                === libstdc++ Summary for unix/-m64 ===

# of expected passes            49
# of unexpected failures        1

My (admittedly equally hacky solution) was to change the check-abi
header format enough to avoid this confusion, and suddently the expected
abi.exp and prettyprinters.exp log entries show up in the merged
libstdc++.log as expected.

Bootstrapped on i386-pc-solaris2.11, ok for mainline?

Thanks.
        Rainer


2012-04-15  Rainer Orth  <r...@cebitec.uni-bielefeld.de>

        * testsuite/util/testsuite_abi.cc (compare_symbols): Change
        summary header to avoid confision with DejaGnu header.

# HG changeset patch
# Parent 5fef8c66380e7570ac7c7a2b4b5aa94646c6bba4
Fix merging default libstdc++.log

diff --git a/libstdc++-v3/testsuite/util/testsuite_abi.cc b/libstdc++-v3/testsuite/util/testsuite_abi.cc
--- a/libstdc++-v3/testsuite/util/testsuite_abi.cc
+++ b/libstdc++-v3/testsuite/util/testsuite_abi.cc
@@ -530,7 +530,7 @@ compare_symbols(const char* baseline_fil
 	}
     }
 
-  cout << "\n\t\t=== libstdc++-v3 check-abi Summary ===" << endl;
+  cout << "\n\t\t==== libstdc++-v3 check-abi Summary ====" << endl;
   cout << endl;
   cout << "# of added symbols:\t\t " << added_names.size() << endl;
   cout << "# of missing symbols:\t\t " << missing_names.size() << endl;

-- 
-----------------------------------------------------------------------------
Rainer Orth, Center for Biotechnology, Bielefeld University

Reply via email to