Re: [PATCHv3 0/3] Automatic detection of test name problems

Andrew Burgess
2020-05-12T16:48:08Z

* Andrew Burgess <andrew.burgess@embecosm.com> [2020-05-11 22:30:17 +0100]:

> * Andrew Burgess <andrew.burgess@embecosm.com> [2020-04-30 12:20:08 +0100]:
>
> > Changes since v2:
> >
> > - Now print PATH: .... or DUPLICATE: .... into the summary and log
> > files when an offending test name is seen.
> >
> > - The dg-extract-results.* script merge these new status lines into
> > the single unified file when running tests in parallel.
> >
> > All feedback welcome,
>
> I've now pushed patches #1 and #2 from this series. Patch #3 I will
> post to the GCC list in order to get it merged. Then I'll back-port
> to our repository after that.

Apologies!

I confess that I never actually tested patches #1 and #2 without patch
#3 also being present. I (stupidly) assumed that any unknown count
lines would just be ignored by the dg-extract-results scripts. Turns
out they are not.

I have now pushed the patch below as a short term bridge until the
dg-extract-results script changes are merged.

The patch below disables my new tests when running the gdb tests in
parallel, but does allow them when running non-parallel.

As soon as the dg-extract-results changes are in place I will revert
this patch.

Sorry for any broken test runs since I pushed my changes.

Thanks,
Andrew

---

commit 843f4d93576eef02139f7b1b3fa1cea7b0f286f1
Author: Andrew Burgess <andrew.burgess@embecosm.com>
Date: Tue May 12 17:38:17 2020 +0100

gdb/testsuite: Disable path and duplicate checks when parallel testing

This commit disables the recently added checking for paths in test
names, and for duplicate test names, when the gdb tests are run in
parallel.

When running the gdb tests in parallel the extra result count lines
produced cause the dg-extract-results scripts to exit with an error.

The patches for the dg-extract-results scripts have been posted to the
gcc-patches mailing list here:

https://gcc.gnu.org/pipermail/gcc-patches/2020-May/545562.html

Once they are merged there then these changes can be merged over to
binutils-gdb, and this commit can be reverted.

gdb/testsuite/ChangeLog:

* lib/check-test-names.exp: Disable when testing is being run in
parallel.

diff --git a/gdb/testsuite/lib/check-test-names.exp b/gdb/testsuite/lib/check-test-names.exp
index 4c0fde6e4ea..79139adea7a 100644
--- a/gdb/testsuite/lib/check-test-names.exp
+++ b/gdb/testsuite/lib/check-test-names.exp
@@ -18,6 +18,26 @@
# name. When a test includes the path in its test name it is harder
# to compare results between two runs of GDB from different trees.

+# This is a short term hack (12-May-2020). If we are running tests in
+# parallel then we need support in the contrib/dg-extract-results.*
+# scripts to merge the new result types generated by this file back
+# into the single unified summary file. If this support is not in
+# place then the dg-extract-results script will exit with an error.
+#
+# The script changes need to first be merged into the gcc repository,
+# then copied over to the binutils-gdb repository. The required
+# changes have been posted to the gcc list here:
+#
+# https://gcc.gnu.org/pipermail/gcc-patches/2020-May/545562.html
+#
+# But until these are merged into binutils-gdb the extra checks
+# offered by this file can only be done when the tests are not running
+# in parallel.
+if {[info exists GDB_PARALLEL]} {
+ # Don't load this file.
+ return
+}
+
namespace eval ::CheckTestNames {
# An associative array of all test names to the number of times each
# name is seen. Used to detect duplicate test names.