This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] Remove extra output directory level for Ada tests
- From: Simon Marchi <simon dot marchi at ericsson dot com>
- To: <gdb-patches at sourceware dot org>
- Cc: Joel Brobecker <brobecker at adacore dot com>
- Date: Wed, 6 Jul 2016 10:06:46 -0400
- Subject: Re: [PATCH] Remove extra output directory level for Ada tests
- Authentication-results: sourceware.org; auth=none
- References: <20160705143928.12314-1-simon.marchi@ericsson.com>
On 16-07-05 10:39 AM, Simon Marchi wrote:
> The output of Ada tests create a layout where the test name
> ("formatted_ref" in this example) appears twice:
>
> outputs
> └── gdb.ada
> └── formatted_ref
> └── formatted_ref
> ├── b~formatted_ref.adb
> ├── b~formatted_ref.ads
> ├── b~formatted_ref.ali
> ├── b~formatted_ref.o
> ├── defs.ali
> ├── defs.o
> ├── formatted_ref
> ├── formatted_ref.ali
> └── formatted_ref.o
>
> This causes a problem when testing with the native-gdbserver board, when
> the binary has the same name as the test. When gdb_remote_download is
> called to upload the compiled binary, the implementation for
> native-gdbserver copies it in the standard output directory (in
> outputs/gdb.ada/formatted_ref). However, there is already a directory
> named formatted_ref in there, so the copy fails and gdbserver isn't able
> to load the binary.
>
> This patch bypasses the problem by removing the extra directory level.
> The compiled binary will already be in its final location in the
> standard output directory, so the copy will effectively be a no-op.
>
> gdb/testsuite/ChangeLog:
>
> * lib/ada.exp: Remove extra directory level in build directory.
> * gdb.ada/cond_lang.exp: Likewise.
> * gdb.ada/exec_changed.exp: Likewise.
> * gdb.ada/lang_switch.exp: Likewise.
> ---
> gdb/testsuite/gdb.ada/cond_lang.exp | 4 ++--
> gdb/testsuite/gdb.ada/exec_changed.exp | 7 +++----
> gdb/testsuite/gdb.ada/lang_switch.exp | 4 ++--
> gdb/testsuite/lib/ada.exp | 7 +++----
> 4 files changed, 10 insertions(+), 12 deletions(-)
>
> diff --git a/gdb/testsuite/gdb.ada/cond_lang.exp b/gdb/testsuite/gdb.ada/cond_lang.exp
> index e08fada..997b37a 100644
> --- a/gdb/testsuite/gdb.ada/cond_lang.exp
> +++ b/gdb/testsuite/gdb.ada/cond_lang.exp
> @@ -17,8 +17,8 @@ load_lib "ada.exp"
>
> standard_ada_testfile a
>
> -set cfile "${testdir}/foo"
> -set csrcfile ${srcdir}/${subdir}/${cfile}.c
> +set cfile "foo"
> +set csrcfile ${srcdir}/${subdir}/${testdir}/${cfile}.c
> set cobject [standard_output_file ${cfile}.o]
>
> gdb_compile "${csrcfile}" "${cobject}" object [list debug]
> diff --git a/gdb/testsuite/gdb.ada/exec_changed.exp b/gdb/testsuite/gdb.ada/exec_changed.exp
> index 6cc6408..a574cd5 100644
> --- a/gdb/testsuite/gdb.ada/exec_changed.exp
> +++ b/gdb/testsuite/gdb.ada/exec_changed.exp
> @@ -32,9 +32,8 @@ if {[gdb_compile_ada "${srcfile}" "${binfile}$EXEEXT" executable {debug}] != ""}
> }
>
> # Build the second test program
> -set testfile2 "${testdir}/second"
> -set srcfile2 ${srcdir}/${subdir}/${testfile2}.adb
> -set binfile2 [standard_output_file ${testfile2}$EXEEXT]
> +set srcfile2 ${srcdir}/${subdir}/${testdir}/second.adb
> +set binfile2 [standard_output_file second$EXEEXT]
>
> if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable {debug}] != ""} {
> return -1
> @@ -42,7 +41,7 @@ if {[gdb_compile_ada "${srcfile2}" "${binfile2}" executable {debug}] != ""} {
>
> # Start with a fresh gdb.
>
> -set common_binfile [standard_output_file ${testdir}/common$EXEEXT]
> +set common_binfile [standard_output_file common$EXEEXT]
>
> gdb_start
> gdb_reinitialize_dir $srcdir/$subdir
> diff --git a/gdb/testsuite/gdb.ada/lang_switch.exp b/gdb/testsuite/gdb.ada/lang_switch.exp
> index 8045358..661829b 100644
> --- a/gdb/testsuite/gdb.ada/lang_switch.exp
> +++ b/gdb/testsuite/gdb.ada/lang_switch.exp
> @@ -16,8 +16,8 @@
> load_lib "ada.exp"
>
> standard_ada_testfile lang_switch
> -set cfile "${testdir}/foo"
> -set csrcfile ${srcdir}/${subdir}/${cfile}.c
> +set cfile "foo"
> +set csrcfile ${srcdir}/${subdir}/${testdir}/${cfile}.c
> set cobject [standard_output_file ${cfile}.o]
>
> gdb_compile "${csrcfile}" "${cobject}" object [list debug]
> diff --git a/gdb/testsuite/lib/ada.exp b/gdb/testsuite/lib/ada.exp
> index 01f3008..a9d1758 100644
> --- a/gdb/testsuite/lib/ada.exp
> +++ b/gdb/testsuite/lib/ada.exp
> @@ -73,9 +73,8 @@ proc standard_ada_testfile {base_file {dir ""}} {
> } else {
> set testdir $dir
> }
> - set testfile $testdir/$base_file
> - set srcfile $srcdir/$subdir/$testfile.adb
> - set binfile [standard_output_file $testfile]
>
> - file mkdir [standard_output_file $testdir]
> + set testfile $base_file
> + set srcfile $srcdir/$subdir/$testdir/$testfile.adb
> + set binfile [standard_output_file $testfile]
> }
>
Pushed (approved by Joel in [1]).
[1] https://sourceware.org/ml/gdb-patches/2016-07/msg00098.html