Message ID | 20250702072516.1075450-4-mikko.rapeli@linaro.org |
---|---|
State | New |
Headers | show |
Series | [v3,1/5] oeqa runtime: set self.runner and handle None | expand |
On Wed, 2025-07-02 at 10:25 +0300, Mikko Rapeli via lists.openembedded.org wrote: > testexport.tar.gz is image specific. Thus add same image name > suffix to the tar ball name. For example genericarm64 machine > core-image-minimal image tar ball changes name from > testexport.tar.gz to testexport-core-image-minimal-genericarm64.tar.gz > > This way testexport from multiple images can exists in the same > directory. > > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> > --- > meta/classes-recipe/testexport.bbclass | 8 ++++++-- > 1 file changed, 6 insertions(+), 2 deletions(-) > > diff --git a/meta/classes-recipe/testexport.bbclass b/meta/classes-recipe/testexport.bbclass > index 843d777e3bb9..3005fc0dfa52 100644 > --- a/meta/classes-recipe/testexport.bbclass > +++ b/meta/classes-recipe/testexport.bbclass > @@ -136,8 +136,12 @@ def copy_needed_files(d, tc): > if dir == '__pycache__': > shutil.rmtree(os.path.join(subdir, dir)) > > + image_basename = d.getVar('IMAGE_BASENAME') > + image_machine_suffix = d.getVar('IMAGE_MACHINE_SUFFIX') > + > # Create tar file for common parts of testexport > - testexport_create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR")) > + testexport_create_tarball(d, "testexport-%s%s.tar.gz" % > + (image_basename, image_machine_suffix), d.getVar("TEST_EXPORT_DIR")) > > # Copy packages needed for runtime testing > test_paths = get_runtime_paths(d) > @@ -149,7 +153,7 @@ def copy_needed_files(d, tc): > export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR"), "packages") > oe.path.copytree(test_pkg_dir, export_pkg_dir) > # Create tar file for packages needed by the DUT > - testexport_create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir) > + testexport_create_tarball(d, "testexport_packages%s.tar.gz" % image_machine_suffix, export_pkg_dir) > > # Copy SDK > if d.getVar("TEST_EXPORT_SDK_ENABLED") == "1": Since most of the machine and image specific elements of this have been removed, does it not make sense just to have one testexport tarball generated by an external script? The testdata json file is already exported separately. I've held off this patch for that reason, making it machine specific seems a backwards step? Cheers, Richard
Hi, On Mon, Jul 14, 2025 at 01:08:42PM +0100, Richard Purdie wrote: > On Wed, 2025-07-02 at 10:25 +0300, Mikko Rapeli via lists.openembedded.org wrote: > > testexport.tar.gz is image specific. Thus add same image name > > suffix to the tar ball name. For example genericarm64 machine > > core-image-minimal image tar ball changes name from > > testexport.tar.gz to testexport-core-image-minimal-genericarm64.tar.gz > > > > This way testexport from multiple images can exists in the same > > directory. > > > > Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> > > --- > > �meta/classes-recipe/testexport.bbclass | 8 ++++++-- > > �1 file changed, 6 insertions(+), 2 deletions(-) > > > > diff --git a/meta/classes-recipe/testexport.bbclass b/meta/classes-recipe/testexport.bbclass > > index 843d777e3bb9..3005fc0dfa52 100644 > > --- a/meta/classes-recipe/testexport.bbclass > > +++ b/meta/classes-recipe/testexport.bbclass > > @@ -136,8 +136,12 @@ def copy_needed_files(d, tc): > > ������������ if dir == '__pycache__': > > ���������������� shutil.rmtree(os.path.join(subdir, dir)) > > � > > +��� image_basename = d.getVar('IMAGE_BASENAME') > > +��� image_machine_suffix = d.getVar('IMAGE_MACHINE_SUFFIX') > > + > > ���� # Create tar file for common parts of testexport > > -��� testexport_create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR")) > > +��� testexport_create_tarball(d, "testexport-%s%s.tar.gz" % > > +������� (image_basename, image_machine_suffix), d.getVar("TEST_EXPORT_DIR")) > > � > > ���� # Copy packages needed for runtime testing > > ���� test_paths = get_runtime_paths(d) > > @@ -149,7 +153,7 @@ def copy_needed_files(d, tc): > > �������� export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR"), "packages") > > �������� oe.path.copytree(test_pkg_dir, export_pkg_dir) > > �������� # Create tar file for packages needed by the DUT > > -������� testexport_create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir) > > +������� testexport_create_tarball(d, "testexport_packages%s.tar.gz" % image_machine_suffix, export_pkg_dir) > > � > > ���� # Copy SDK > > ���� if d.getVar("TEST_EXPORT_SDK_ENABLED") == "1": > > Since most of the machine and image specific elements of this have been > removed, does it not make sense just to have one testexport tarball > generated by an external script? > > The testdata json file is already exported separately. > > I've held off this patch for that reason, making it machine specific > seems a backwards step? Currently the image specific testdata json is inside the testexport tar ball as core-image-sato/data/testdata.json. Same file is available after build in tmp/deploy/images/genericarm64/core-image-sato-genericarm64.rootfs.testdata.json so I could switch the exported tests over to that. I'll try to set this up with a different patch. Thanks for the feedback! The new approach needs some standardisation between what is in build output and what is in the test environment. There is a similar issue with opkg/ipk runtime test and the need for just a few files around 80kb from the ipk archive, not the full archive which is possibly gigabytes in size. I've now set these up with a separate script outside of poky. It would be nice if these small scripts could live in poky, possibly scripts/contrib/ ? I could capture the image specific testdata.json file in the same way too, for example a single tar ball. Cheers, -Mikko
diff --git a/meta/classes-recipe/testexport.bbclass b/meta/classes-recipe/testexport.bbclass index 843d777e3bb9..3005fc0dfa52 100644 --- a/meta/classes-recipe/testexport.bbclass +++ b/meta/classes-recipe/testexport.bbclass @@ -136,8 +136,12 @@ def copy_needed_files(d, tc): if dir == '__pycache__': shutil.rmtree(os.path.join(subdir, dir)) + image_basename = d.getVar('IMAGE_BASENAME') + image_machine_suffix = d.getVar('IMAGE_MACHINE_SUFFIX') + # Create tar file for common parts of testexport - testexport_create_tarball(d, "testexport.tar.gz", d.getVar("TEST_EXPORT_DIR")) + testexport_create_tarball(d, "testexport-%s%s.tar.gz" % + (image_basename, image_machine_suffix), d.getVar("TEST_EXPORT_DIR")) # Copy packages needed for runtime testing test_paths = get_runtime_paths(d) @@ -149,7 +153,7 @@ def copy_needed_files(d, tc): export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR"), "packages") oe.path.copytree(test_pkg_dir, export_pkg_dir) # Create tar file for packages needed by the DUT - testexport_create_tarball(d, "testexport_packages_%s.tar.gz" % d.getVar("MACHINE"), export_pkg_dir) + testexport_create_tarball(d, "testexport_packages%s.tar.gz" % image_machine_suffix, export_pkg_dir) # Copy SDK if d.getVar("TEST_EXPORT_SDK_ENABLED") == "1":
testexport.tar.gz is image specific. Thus add same image name suffix to the tar ball name. For example genericarm64 machine core-image-minimal image tar ball changes name from testexport.tar.gz to testexport-core-image-minimal-genericarm64.tar.gz This way testexport from multiple images can exists in the same directory. Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org> --- meta/classes-recipe/testexport.bbclass | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)