[PATCH][gdb/testsuite] Clean up stale exec in gdb_compile_pascal

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH][gdb/testsuite] Clean up stale exec in gdb_compile_pascal

Tom de Vries
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  <[hidden email]>

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

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

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 } {
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH][gdb/testsuite] Clean up stale exec in gdb_compile_pascal

Tom Tromey-2
>>>>> "Tom" == Tom de Vries <[hidden email]> writes:

Tom> 2019-08-16  Tom de Vries  <[hidden email]>

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