[gdb/testsuite] Clean up stale exec in gdb_compile_pascal

Message ID 20190816162618.GA19652@delia
State New, archived
Headers

Commit Message

Tom de Vries Aug. 16, 2019, 4:26 p.m. UTC
  Hi,

When running a pascal test with the stabs target board:
...
$ test=gdb.pascal/case-insensitive-symbols.exp
$ cd build/gdb/testsuite
$ make check RUNTESTFLAGS="$test --target_board=stabs"
...
we get:
...
nr of untested testcases         1
nr of unsupported tests          1
...
due to:
...
Error: Illegal parameter: -gstabs+^M
Error: /usr/bin/ppcx64 returned an error exitcode^M
...

OTOH, when running the same pascal test without the stabs target board:
...
$ make check RUNTESTFLAGS="$test"
...
we get:
...
nr of expected passes            20
...

But when subsequently again running with the stabs target board:
...
$ make check RUNTESTFLAGS="$test --target_board=stabs"
...
we now get:
...
nr of expected passes            20
...

The problem is that gdb_compile_pascal determines success based on existence
of the exec after compilation:
...
    if ![file exists $destfile] {
        unsupported "Pascal compilation failed: $result"
        return "Pascal compilation failed."
    }
...
without removing the exec before compilation, which allows a stale exec to
make it seem as if compilation has succeeded.

Fix this by removing the stale exec before compilation.

OK for trunk?

Thanks,
- Tom

[gdb/testsuite] Clean up stale exec in gdb_compile_pascal

gdb/testsuite/ChangeLog:

2019-08-16  Tom de Vries  <tdevries@suse.de>

	* lib/pascal.exp (gdb_compile_pascal): Remove $destfile before
	compilation.

---
 gdb/testsuite/lib/pascal.exp | 2 ++
 1 file changed, 2 insertions(+)
  

Comments

Tom Tromey Aug. 20, 2019, 3:07 p.m. UTC | #1
>>>>> "Tom" == Tom de Vries <tdevries@suse.de> writes:

Tom> 2019-08-16  Tom de Vries  <tdevries@suse.de>

Tom> 	* lib/pascal.exp (gdb_compile_pascal): Remove $destfile before
Tom> 	compilation.

This code is already a little weird, because gpc_compile uses
"remote_exec host", but then the code checks for file existence on the
machine where dejagnu is being run.

However, your patch doesn't make this any worse, so it is ok.
Thanks.

Tom
  

Patch

diff --git a/gdb/testsuite/lib/pascal.exp b/gdb/testsuite/lib/pascal.exp
index 796c2a781e..dcdbb8d1f9 100644
--- a/gdb/testsuite/lib/pascal.exp
+++ b/gdb/testsuite/lib/pascal.exp
@@ -153,6 +153,8 @@  proc gdb_compile_pascal {source destfile type options} {
 	pascal_init
     }
 
+    file delete $destfile
+
     if { $pascal_compiler_is_fpc == 1 } {
         set result [fpc_compile $source $destfile $type $options]
     } elseif { $pascal_compiler_is_gpc == 1 } {