qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Cleber Rosa <crosa@redhat.com>
To: Wainer dos Santos Moschetta <wainersm@redhat.com>
Cc: "Beraldo Leal" <bleal@redhat.com>,
	qemu-devel@nongnu.org, "Fabien Chouteau" <chouteau@adacore.com>,
	"KONRAD Frederic" <frederic.konrad@adacore.com>,
	"Hervé Poussineau" <hpoussin@reactos.org>,
	"Willian Rampazzo" <wrampazz@redhat.com>,
	qemu-ppc@nongnu.org,
	"Aleksandar Rikalo" <aleksandar.rikalo@rt-rk.com>,
	"Philippe Mathieu-Daudé" <philmd@redhat.com>,
	"Aurelien Jarno" <aurelien@aurel32.net>,
	"Eduardo Habkost" <ehabkost@redhat.com>
Subject: Re: [PATCH v7 5/8] Acceptance tests: keep a stable reference to the QEMU build dir
Date: Fri, 15 Nov 2019 16:36:32 -0500	[thread overview]
Message-ID: <20191115213632.GG19559@localhost.localdomain> (raw)
In-Reply-To: <5a8c7d1a-a7b7-2b7c-2ac6-fe79d7dcd1e8@redhat.com>

On Thu, Nov 07, 2019 at 05:22:24PM -0200, Wainer dos Santos Moschetta wrote:
> 
> On 11/4/19 1:13 PM, Cleber Rosa wrote:
> > This is related to the the differences in in-tree and out-of-tree
> > builds in QEMU.  For simplification, <BLD> means my build directory.
> > 
> > Currently, by running a `make check-acceptance` one gets (in
> > tests/acceptance/avocado_qemu/__init__.py):
> > 
> >     SRC_ROOT_DIR: <BLD>/tests/acceptance/avocado_qemu/../../..
> > 
> > This in itself is problematic, because after the parent directories
> > are applied, one may be left not with a pointer to the build directory
> > as intended, but with the location of the source tree (assuming they
> > differ). Built binaries, such as qemu-img, are of course not there and
> > can't be found.
> > 
> > Given that a Python '__file__' will contain the absolute path to the
> > file backing the module, say:
> > 
> >     __file__: <BLD>/tests/acceptance/avocado_qemu/__init__.py
> > 
> >                    |  4  |     3    |      2     |     1     |
> > 
> > A solution is to not "evaluate" the third parent dir (marked as 4
> > here) because that ends up following the "tests" directory symlink to
> > the source tree.  In fact, there's no need to keep or evaluate any of
> > the parent directories, we can just drop the rightmost 4 components,
> > and we'll keep a stable reference to the build directory (with no
> > symlink being followed).  This works for either a dedicated build
> > directory or also a combined source and build tree.
> > 
> > Signed-off-by: Cleber Rosa <crosa@redhat.com>
> > ---
> >   tests/acceptance/avocado_qemu/__init__.py | 2 +-
> >   1 file changed, 1 insertion(+), 1 deletion(-)
> > 
> > diff --git a/tests/acceptance/avocado_qemu/__init__.py b/tests/acceptance/avocado_qemu/__init__.py
> > index 6618ea67c1..17ce583c87 100644
> > --- a/tests/acceptance/avocado_qemu/__init__.py
> > +++ b/tests/acceptance/avocado_qemu/__init__.py
> > @@ -16,7 +16,7 @@ import tempfile
> >   import avocado
> > -SRC_ROOT_DIR = os.path.join(os.path.dirname(__file__), '..', '..', '..')
> > +SRC_ROOT_DIR = os.path.dirname(os.path.dirname(os.path.dirname(os.path.dirname(__file__))))
> 
> In this case, wouldn't make sense to rename the constant from SRC_ROOT_DIR
> to BUILD_ROOT_DIR?
> 
> This patch looks good to me besides that.
> 
> - Wainer
>

So, based on your review, I went back and forward with this.  I'm
going to propose something different on v8, basically distinguishing
between source and build directories.  I'm keeping this patch as is on
v8 though, just for the sake of making the indivdual changes easier to
track.

Thanks,
- Cleber.

> >   sys.path.append(os.path.join(SRC_ROOT_DIR, 'python'))
> >   from qemu.machine import QEMUMachine



  parent reply	other threads:[~2019-11-15 21:37 UTC|newest]

Thread overview: 39+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-11-04 15:13 [PATCH v7 0/8] Acceptance test: Add "boot_linux" acceptance test Cleber Rosa
2019-11-04 15:13 ` [PATCH v7 1/8] Acceptance test x86_cpu_model_versions: use default vm Cleber Rosa
2019-11-04 18:22   ` Philippe Mathieu-Daudé
2019-11-04 15:13 ` [PATCH v7 2/8] Acceptance tests: introduce utility method for tags unique vals Cleber Rosa
2019-11-08 13:14   ` Philippe Mathieu-Daudé
2019-11-11 21:44     ` Cleber Rosa
2019-11-04 15:13 ` [PATCH v7 3/8] Acceptance tests: use avocado tags for machine type Cleber Rosa
2019-11-08 13:20   ` Philippe Mathieu-Daudé
2019-11-11 21:49     ` Cleber Rosa
2019-11-12 18:15       ` Philippe Mathieu-Daudé
2019-11-12  1:59     ` Cleber Rosa
2019-11-12 18:15       ` Philippe Mathieu-Daudé
2019-11-04 15:13 ` [PATCH v7 4/8] Acceptance tests: use relative location for tests Cleber Rosa
2019-11-04 18:26   ` Philippe Mathieu-Daudé
2019-11-11 22:11     ` Cleber Rosa
2019-11-12 18:17       ` Philippe Mathieu-Daudé
2019-11-07 18:52   ` Wainer dos Santos Moschetta
2019-11-04 15:13 ` [PATCH v7 5/8] Acceptance tests: keep a stable reference to the QEMU build dir Cleber Rosa
2019-11-07 19:22   ` Wainer dos Santos Moschetta
2019-11-11 22:38     ` Cleber Rosa
2019-11-15 21:36     ` Cleber Rosa [this message]
2019-11-04 15:13 ` [PATCH v7 6/8] Acceptance tests: add the build directory to the system PATH Cleber Rosa
2019-11-07 19:46   ` Wainer dos Santos Moschetta
2019-11-11 22:49     ` Cleber Rosa
2019-11-12 14:00       ` Wainer dos Santos Moschetta
2019-11-15 23:17         ` Cleber Rosa
2019-11-08 13:13   ` Philippe Mathieu-Daudé
2019-11-15 23:19     ` Cleber Rosa
2019-11-04 15:13 ` [PATCH v7 7/8] Acceptance tests: depend on qemu-img Cleber Rosa
2019-11-07 20:31   ` Wainer dos Santos Moschetta
2019-11-15 23:45     ` Cleber Rosa
2019-11-04 15:13 ` [PATCH v7 8/8] Acceptance test: add "boot_linux" tests Cleber Rosa
2019-11-08 19:42   ` Wainer dos Santos Moschetta
2019-11-15 23:47     ` Cleber Rosa
2019-11-12 18:20   ` Philippe Mathieu-Daudé
2019-11-15 23:48     ` Cleber Rosa
2019-12-03 19:19   ` Alex Bennée
2019-11-04 19:54 ` [PATCH v7 0/8] Acceptance test: Add "boot_linux" acceptance test no-reply
2019-11-07 18:38 ` Wainer dos Santos Moschetta

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=20191115213632.GG19559@localhost.localdomain \
    --to=crosa@redhat.com \
    --cc=aleksandar.rikalo@rt-rk.com \
    --cc=aurelien@aurel32.net \
    --cc=bleal@redhat.com \
    --cc=chouteau@adacore.com \
    --cc=ehabkost@redhat.com \
    --cc=frederic.konrad@adacore.com \
    --cc=hpoussin@reactos.org \
    --cc=philmd@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=qemu-ppc@nongnu.org \
    --cc=wainersm@redhat.com \
    --cc=wrampazz@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;
as well as URLs for NNTP newsgroup(s).