diff mbox series

avocado: Fix BUILD_DIR if it's equal to SOURCE_DIR

Message ID 20220702185604.46643-1-peter@pjd.dev
State New
Headers show
Series avocado: Fix BUILD_DIR if it's equal to SOURCE_DIR | expand

Commit Message

Peter Delevoryas July 2, 2022, 6:56 p.m. UTC
I like to build QEMU from the root source directory, rather than cd'ing
into the build directory. This code may as well include a search path
for that, so that you can run avocado tests individually without
specifying "-p qemu_bin=build/qemu-system-arm" manually.

Signed-off-by: Peter Delevoryas <peter@pjd.dev>
---
 tests/avocado/avocado_qemu/__init__.py | 17 +++++++++--------
 1 file changed, 9 insertions(+), 8 deletions(-)

Comments

Peter Delevoryas July 7, 2022, 12:55 a.m. UTC | #1
On Sat, Jul 02, 2022 at 11:56:04AM -0700, Peter Delevoryas wrote:
> I like to build QEMU from the root source directory, rather than cd'ing
> into the build directory. This code may as well include a search path
> for that, so that you can run avocado tests individually without
> specifying "-p qemu_bin=build/qemu-system-arm" manually.

Pinging this thread since I didn't get a response.

> 
> Signed-off-by: Peter Delevoryas <peter@pjd.dev>
> ---
>  tests/avocado/avocado_qemu/__init__.py | 17 +++++++++--------
>  1 file changed, 9 insertions(+), 8 deletions(-)
> 
> diff --git a/tests/avocado/avocado_qemu/__init__.py b/tests/avocado/avocado_qemu/__init__.py
> index b656a70c55..ed4853c805 100644
> --- a/tests/avocado/avocado_qemu/__init__.py
> +++ b/tests/avocado/avocado_qemu/__init__.py
> @@ -120,14 +120,15 @@ def pick_default_qemu_bin(bin_prefix='qemu-system-', arch=None):
>      # qemu binary path does not match arch for powerpc, handle it
>      if 'ppc64le' in arch:
>          arch = 'ppc64'
> -    qemu_bin_relative_path = os.path.join(".", bin_prefix + arch)
> -    if is_readable_executable_file(qemu_bin_relative_path):
> -        return qemu_bin_relative_path
> -
> -    qemu_bin_from_bld_dir_path = os.path.join(BUILD_DIR,
> -                                              qemu_bin_relative_path)
> -    if is_readable_executable_file(qemu_bin_from_bld_dir_path):
> -        return qemu_bin_from_bld_dir_path
> +    qemu_bin_name = bin_prefix + arch
> +    qemu_bin_paths = [
> +        os.path.join(".", qemu_bin_name),
> +        os.path.join(BUILD_DIR, qemu_bin_name),
> +        os.path.join(BUILD_DIR, "build", qemu_bin_name),

Thinking about how to write this last line again, maybe it should actually
be "os.path.join(SOURCE_DIR, "build", qemu_bin_name)"?

> +    ]
> +    for path in qemu_bin_paths:
> +        if is_readable_executable_file(path):
> +            return path
>      return None
>  
>  
> -- 
> 2.37.0
> 
>
Peter Delevoryas July 12, 2022, 10:23 p.m. UTC | #2
On Tue, Jul 12, 2022 at 11:53:14PM +0200, Philippe Mathieu-Daudé wrote:
> On 2/7/22 20:56, Peter Delevoryas wrote:
> > I like to build QEMU from the root source directory, rather than cd'ing
> > into the build directory. This code may as well include a search path
> > for that, so that you can run avocado tests individually without
> > specifying "-p qemu_bin=build/qemu-system-arm" manually.
> > 
> > Signed-off-by: Peter Delevoryas <peter@pjd.dev>
> > ---
> >   tests/avocado/avocado_qemu/__init__.py | 17 +++++++++--------
> >   1 file changed, 9 insertions(+), 8 deletions(-)
> > 
> > diff --git a/tests/avocado/avocado_qemu/__init__.py b/tests/avocado/avocado_qemu/__init__.py
> > index b656a70c55..ed4853c805 100644
> > --- a/tests/avocado/avocado_qemu/__init__.py
> > +++ b/tests/avocado/avocado_qemu/__init__.py
> > @@ -120,14 +120,15 @@ def pick_default_qemu_bin(bin_prefix='qemu-system-', arch=None):
> >       # qemu binary path does not match arch for powerpc, handle it
> >       if 'ppc64le' in arch:
> >           arch = 'ppc64'
> > -    qemu_bin_relative_path = os.path.join(".", bin_prefix + arch)
> > -    if is_readable_executable_file(qemu_bin_relative_path):
> > -        return qemu_bin_relative_path
> > -
> > -    qemu_bin_from_bld_dir_path = os.path.join(BUILD_DIR,
> > -                                              qemu_bin_relative_path)
> > -    if is_readable_executable_file(qemu_bin_from_bld_dir_path):
> > -        return qemu_bin_from_bld_dir_path
> > +    qemu_bin_name = bin_prefix + arch
> > +    qemu_bin_paths = [
> > +        os.path.join(".", qemu_bin_name),
> > +        os.path.join(BUILD_DIR, qemu_bin_name),
> > +        os.path.join(BUILD_DIR, "build", qemu_bin_name),
> 
> I suppose you are building as pseudo-in-tree (see commit dedad02720:
> "configure: add support for pseudo-"in source tree" builds"). OK.

That's right, thanks for adding the reference in the commit message.

> 
> > +    ]
> > +    for path in qemu_bin_paths:
> > +        if is_readable_executable_file(path):
> > +            return path
> >       return None
> 
> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Thanks!!
Peter

> 
> And queued.
diff mbox series

Patch

diff --git a/tests/avocado/avocado_qemu/__init__.py b/tests/avocado/avocado_qemu/__init__.py
index b656a70c55..ed4853c805 100644
--- a/tests/avocado/avocado_qemu/__init__.py
+++ b/tests/avocado/avocado_qemu/__init__.py
@@ -120,14 +120,15 @@  def pick_default_qemu_bin(bin_prefix='qemu-system-', arch=None):
     # qemu binary path does not match arch for powerpc, handle it
     if 'ppc64le' in arch:
         arch = 'ppc64'
-    qemu_bin_relative_path = os.path.join(".", bin_prefix + arch)
-    if is_readable_executable_file(qemu_bin_relative_path):
-        return qemu_bin_relative_path
-
-    qemu_bin_from_bld_dir_path = os.path.join(BUILD_DIR,
-                                              qemu_bin_relative_path)
-    if is_readable_executable_file(qemu_bin_from_bld_dir_path):
-        return qemu_bin_from_bld_dir_path
+    qemu_bin_name = bin_prefix + arch
+    qemu_bin_paths = [
+        os.path.join(".", qemu_bin_name),
+        os.path.join(BUILD_DIR, qemu_bin_name),
+        os.path.join(BUILD_DIR, "build", qemu_bin_name),
+    ]
+    for path in qemu_bin_paths:
+        if is_readable_executable_file(path):
+            return path
     return None