Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Simon Marchi <simon.marchi@ericsson.com>
To: Joel Brobecker <brobecker@adacore.com>, Pedro Alves <palves@redhat.com>
Cc: <gdb-patches@sourceware.org>
Subject: Re: [PATCH] Always organize test artifacts in a directory hierarchy
Date: Mon, 01 Feb 2016 22:41:00 -0000	[thread overview]
Message-ID: <56AFDF1F.1040702@ericsson.com> (raw)
In-Reply-To: <56A6926F.6040503@ericsson.com>

On 16-01-25 04:23 PM, Simon Marchi wrote:
> On 16-01-17 01:31 AM, Joel Brobecker wrote:
>>>> So it doesn't seem necessary.
>>>
>>> Works for me.  The patch LGTM.  Maybe wait a few more days to
>>> give others a chance to chime in though.
>>
>> LGTM too; and, for the record, I am very happy about this change.
>>
> 
> Hi Joel (and others),
> 
> I was doing some more testing, and found out that this patch breaks testing
> Ada when building in-tree.  I would merge the following patch just before
> the original one.
> 
> How does it look?
> 
> 
> From d69875543609365fdf70f09b30862834b790599a Mon Sep 17 00:00:00 2001
> From: Simon Marchi <simon.marchi@ericsson.com>
> Date: Mon, 25 Jan 2016 14:01:25 -0500
> Subject: [PATCH] Fix in-tree, parallel running of Ada tests
> 
> While testing the following patch,
> 
>   [PATCH] Always organize test artifacts in a directory hierarchy
>   https://sourceware.org/ml/gdb-patches/2016-01/msg00133.html
> 
> I noticed that it broke Ada testing.  This lead me to think that
> parallel testing when building in-tree didn't work previously in Ada.
> It is confirmed by this test:
> 
> $ make check TESTS="gdb.ada/fun_addr.exp" -j 2
> ...
> Running ./gdb.ada/fun_addr.exp ...
> FAIL: gdb.ada/fun_addr.exp: compilation foo.adb
> ...
> 
> This patch fixes in-tree parallel testing for Ada, and consequently
> serial and parallel testing when the aforementioned patch is applied.
> 
> The problem originates from the fact that Ada support code cd's to the
> builddir before compiling.  In itself it's not a problem, it allows to
> place intermediate auto-generated files in that directory.  The Ada
> compilation refers to the source file, which is in another directory,
> only by its base name (e.g. foo.adb).  In serial mode, that worked
> because builddir was the same as the source directory (e.g.
> gdb.ada/fun_addr/).  In an out-of-tree build, it works because the
> source directory is added as an include directory (note: this is not the
> same $srcdir as autoconf's):
> 
>   set srcdir [file dirname $source]
>   additional_flags=-I$srcdir
> 
> which becomes:
> 
>   additional_flags=-I/home/emaisin/build/binutils-gdb/gdb/testsuite/gdb.ada/fun_addr
> 
> However, when building in-tree, srcdir is relative: ./gdb.ada/fun_addr.
> When using parallel or always-in-outputs-directory mode, we are cd'ed in
> the outputs directory.  So -I$srcdir is relative to the current
> directory, which is wrong.
> 
> To fix it, I made the TCL variable srcdir (set in site.exp, from which
> everything else is derived) always absolute.  It is done by assigning
> autoconf's abs_srcdir instead of autoconf's srcdir.  This way -I$srcdir
> will always be good, regardless of where we cd'ed to.  A small apparent
> change is that when running tests, DejaGnu will say:
> 
>   Running /tmp/binutils-gdb/gdb/testsuite/gdb.ada/fun_addr.exp ...
> 
> instead of
> 
>   Running ./gdb.ada/fun_addr.exp ...
> 
> I hope it's not too much of an annoyance.  I think that it should make
> the testsuite a tiny bit more robust against other bugs of the same
> class.
> 
> Regtested in & out of tree, only with native target.
> ---
>  gdb/testsuite/Makefile.in | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/gdb/testsuite/Makefile.in b/gdb/testsuite/Makefile.in
> index 7c251d3..38c3052 100644
> --- a/gdb/testsuite/Makefile.in
> +++ b/gdb/testsuite/Makefile.in
> @@ -21,6 +21,7 @@ srcdir = @srcdir@
>  prefix = @prefix@
>  exec_prefix = @exec_prefix@
>  abs_builddir = @abs_builddir@
> +abs_srcdir = @abs_srcdir@
> 
>  target_alias = @target_noncanonical@
>  program_transform_name = @program_transform_name@
> @@ -119,7 +120,7 @@ $(abs_builddir)/site.exp site.exp: ./config.status Makefile
>  	@echo "set target_alias $(target_alias)" >> ./tmp0
>  	@echo "set target_triplet ${target_canonical}" >> ./tmp0
>  	@echo "set build_triplet ${build_canonical}" >> ./tmp0
> -	@echo "set srcdir ${srcdir}" >> ./tmp0
> +	@echo "set srcdir ${abs_srcdir}" >> ./tmp0
>  	@echo "set tool gdb" >> ./tmp0
>  	@echo 'source $${srcdir}/lib/append_gdb_boards_dir.exp' >> ./tmp0
>  	@echo "## All variables above are generated by configure. Do Not Edit ##" >> ./tmp0
> 

Ping.


  parent reply	other threads:[~2016-02-01 22:41 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-01-08 15:52 Simon Marchi
2016-01-12 13:00 ` Pedro Alves
     [not found]   ` <56952A6C.8070507@ericsson.com>
2016-01-13 11:11     ` Pedro Alves
2016-01-17  6:37       ` Joel Brobecker
2016-01-20 23:29         ` Simon Marchi
2016-01-25 21:24         ` Simon Marchi
2016-01-25 21:54           ` Simon Marchi
2016-02-01 22:41           ` Simon Marchi [this message]
2016-02-07  7:10             ` Joel Brobecker
2016-02-08 19:01               ` Simon Marchi
2016-02-08 19:26         ` Simon Marchi
2016-02-11 21:22           ` [testsuite 7.11] Regression for i386-biarch-core.exp and others [Re: [PATCH] Always organize test artifacts in a directory hierarchy] Jan Kratochvil
2016-02-12 18:34             ` Simon Marchi
2016-02-12 18:41               ` Pedro Alves
2016-02-12 18:56                 ` Simon Marchi
2016-02-12 21:54                   ` Simon Marchi
2016-02-12 23:01                     ` Pedro Alves
2016-02-15 16:17                       ` Simon Marchi
2016-02-12 18:47               ` Jan Kratochvil
2016-02-12 19:38                 ` Simon Marchi
2016-02-15 17:58                 ` [testsuite obv+7.11] Fix more testcases with standard_output_file [Re: [testsuite 7.11] Regression for i386-biarch-core.exp and others] Jan Kratochvil

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=56AFDF1F.1040702@ericsson.com \
    --to=simon.marchi@ericsson.com \
    --cc=brobecker@adacore.com \
    --cc=gdb-patches@sourceware.org \
    --cc=palves@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox