Re: [PATCHv3 2/3] gdb/testsuite: Detect and warn about duplicate test names

Andrew Burgess
2020-08-03T10:02:18Z

* Simon Marchi <simark@simark.ca> [2020-07-31 17:34:06 -0400]:

> On 2020-04-30 7:20 a.m., Andrew Burgess wrote:
> > Building on the previous commit, this patch detects when two tests
> > have the same test name and causes Dejagnu to print a new result type
> > '# of duplicate test names' in the result summary. A line starting
> > with 'DUPLICATE: ' is also added to the gdb.sum and gdb.log files.
> >
> > The DUPLICATE markers will be printed the second time a duplicate test
> > name is seen, and every time after that. So you might see:
> >
> > PASS: gdb.base/sometest.exp: foo
> > PASS: gdb.base/sometest.exp: bar
> > PASS: gdb.base/sometest.exp: foo
> > DUPLICATE: gdb.base/sometest.exp: foo
> > PASS: gdb.base/sometest.exp: baz
> > PASS: gdb.base/sometest.exp: foo
> > DUPLICATE: gdb.base/sometest.exp: foo
> >
> > However, the results will report a duplicate count of 1, indicating
> > that just one test name (foo) was duplicated.
> >
> > Currently if the tests are run in parallel mode the new result type is
> > not merged into the combined summary file so users will need to run in
> > non-parallel mode to check this result. Similarly, the 'DUPLICATE: '
> > markers will not be merged into the final gdb.sum file. A later
> > commit will fix this.
>
> Hi Andrew,
>
> When testing on Red Hat 7.8 (machine gcc135), I get this, which I think is related to this
> change.
>
> Running /home/simark/src/binutils-gdb/gdb/testsuite/gdb.ada/O2_float_param.exp ...
> can't unset "all_test_names": no such variable
> while executing
> "unset all_test_names"
>
> This machine has Dejagnu 1.5.1, which I suppose is the version that comes with this distro
> version.

`all_test_names` is local to gdb/testsuite/lib/check-test-names.exp,
so shouldn't depend on the version of dejagnu being run.

I tried installing version 1.5.1 of dejagnu, and as expected that
works fine.

My guess is that this is either a problem with an older version of
tcl, or maybe expect (?)

Or else, there's something specific about exactly what test you're
running, with the particular settings you're using that's triggering
this issue.

Can you include the output of `runtest --version` so we can see which
tcl/expect are being used, and provide the full `make check` command
you're running.

Thanks,
Andrew