[gdb/testsuite] Clean or check standard_output_file dir in gdb_init
authorTom de Vries <tdevries@suse.de>
Thu, 22 Jun 2023 17:15:23 +0000 (19:15 +0200)
committerTom de Vries <tdevries@suse.de>
Thu, 22 Jun 2023 17:15:23 +0000 (19:15 +0200)
commitd4d5b571954a2bde2a14772d9b18027a9048eb2d
tree8779d22aa7ca4bf0a0fdb29f821b6f3edf53574e
parentd8a001f57016eff05977e9699c7aabdf4302c71b
[gdb/testsuite] Clean or check standard_output_file dir in gdb_init

In commit e2adba909e7 ("[gdb/testsuite] Clean up before compilation in
gdb.ada/call-no-debug.exp") I added some code in the test-case to remove some
files at the start of the test-case:
...
remote_file host delete [standard_output_file prog.o]
remote_file host delete [standard_output_file prog.ali]
...

Then in commit b7b77500dc5 ("[gdb/testsuite] Clean standard_output_file dir in
gdb_init") I tried to do this more structurally, by cleaning up the entire
standard_output_file directory, for all test-cases.

This caused a regression when using "make check -j 2", due to the cleanup
removing the active gdb.log, so I reverted the commit.

Try again, this time handling the two cases separately.

If the standard_output_file directory contains an active gdb.log, check that
the directory contains no files other than gdb.log and gdb.sum.  This puts
the reponsibility for the cleanup at the callers in gdb/testsuite/Makefile.in
which use --outdir.

If the standard_output_file directory doesn't contain an active gdb.log, clean
it by removing the entire directory.

An exception is made for performance tests, where cleaning up the
standard_output_file dir is the wrong thing to do, because an invocation with
GDB_PERFTEST_MODE == run is intended to reuse binaries left there by an
earlier invocation with GDB_PERFTEST_MODE == compile.

Tested on x86_64-linux.

Suggested-By: Tom Tromey <tom@tromey.com>
Reviewed-By: Tom Tromey <tom@tromey.com>
Tested-By: Luis Machado <luis.machado@arm.com>
gdb/testsuite/gdb.ada/call-no-debug.exp
gdb/testsuite/lib/gdb.exp