----- Forwarded message from Satheesh Rajendran <sathn...@linux.vnet.ibm.com> -----
Date: Mon, 29 Jul 2019 11:22:50 +0530 From: Satheesh Rajendran <sathn...@linux.vnet.ibm.com> To: Greg Kurz <gr...@kaod.org> Cc: sathn...@linux.vnet.ibm.com, qemu-...@nongnu.org, qemu-devel@nongnu.org, c...@kaod.org Subject: Re: [Qemu-ppc] [Qemu-devel][PATCH 1/2] tests.acceptance.avocado_qemu: Add support for powerpc User-Agent: Mutt/1.12.0 (2019-05-25) On Fri, Jul 26, 2019 at 01:49:00PM +0200, Greg Kurz wrote: > On Fri, 26 Jul 2019 12:48:09 +0530 > sathn...@linux.vnet.ibm.com wrote: > > > From: Satheesh Rajendran <sathn...@linux.vnet.ibm.com> > > > > Current acceptance test will not run in powerpc Little endian > > environment due the arch name does not match the qemu binary path, > > let's handle it. > > > > They do not match because "arch" as returned by uname() is > something different from the "target" in QEMU. This usually > matches, except with bi-endian architectures like ppc64. > Uname "arch" may be ppc64 or ppc64le but "target" is always > ppc64. Yes, instead I would reword the commit message to sound like that. Thanks! > > > Signed-off-by: Satheesh Rajendran <sathn...@linux.vnet.ibm.com> > > --- > > tests/acceptance/avocado_qemu/__init__.py | 4 ++++ > > 1 file changed, 4 insertions(+) > > > > diff --git a/tests/acceptance/avocado_qemu/__init__.py > > b/tests/acceptance/avocado_qemu/__init__.py > > index aee5d820ed..a05f0bb530 100644 > > --- a/tests/acceptance/avocado_qemu/__init__.py > > +++ b/tests/acceptance/avocado_qemu/__init__.py > > @@ -19,6 +19,7 @@ sys.path.append(os.path.join(SRC_ROOT_DIR, 'python')) > > > > from qemu.machine import QEMUMachine > > > > + > > empty line damage > Sure, I did as pylint complained about, probably can be sent as seperate commit. > > def is_readable_executable_file(path): > > return os.path.isfile(path) and os.access(path, os.R_OK | os.X_OK) > > > > @@ -39,6 +40,9 @@ def pick_default_qemu_bin(arch=None): > > """ > > if arch is None: > > arch = os.uname()[4] > > + # qemu binary path does not match arch for powerpc, handle it > > + if 'ppc64le' in arch: > > + arch = 'ppc64' > > We also have other bi-endian targets (arm and aarch64). I'm not > sure teaching pick_default_qemu_bin() about all of them is the > way to go. > It is good for the tests where have explicit arch mentioned but it will not work for platform generic tests like below one for example, avocado run version.py JOB ID : ef3d99cf0232d38e5eb34c1552a8ab44ac77c45c JOB LOG : /home/sath/tests/results/job-2019-07-29T01.45-ef3d99c/job.log (1/1) version.py:Version.test_qmp_human_info_version: CANCEL: No QEMU binary defined or found in the source tree (0.00 s) RESULTS : PASS 0 | ERROR 0 | FAIL 0 | SKIP 0 | WARN 0 | INTERRUPT 0 | CANCEL 1 JOB TIME : 0.35 s and more over we can preserve arch:ppc64 to run Big Endian guest image. > What about passing the right target in the first place ? > > ie, this in patch 2: > > + def test_ppc64le_pseries(self): > + """ > + :avocado: tags=arch:ppc64 > > > qemu_bin_relative_path = os.path.join("%s-softmmu" % arch, > > "qemu-system-%s" % arch) > > if is_readable_executable_file(qemu_bin_relative_path): > > ----- End forwarded message -----