This will help in running ptests like core layer, right now there are
just 3 but I hope to get more contributions now that infra is in place

to run all ptests

bitbake meta-filesystems-image-ptest-all

to run a single recipe ptests

bitbake meta-filesystems-image-ptest-fuse3

Signed-off-by: Khem Raj <raj.k...@gmail.com>
---
 .../ptest-packagelists-meta-filesystems.inc   | 18 +++++++++
 .../meta-filesystems-image-ptest-all.bb       | 25 ++++++++++++
 .../meta-filesystems-image-ptest-fast.bb      |  5 +++
 .../images/meta-filesystems-image-ptest.bb    | 40 +++++++++++++++++++
 4 files changed, 88 insertions(+)
 create mode 100644 
meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc
 create mode 100644 
meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb
 create mode 100644 
meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb
 create mode 100644 
meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb

diff --git 
a/meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc 
b/meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc
new file mode 100644
index 0000000000..f57bbab930
--- /dev/null
+++ b/meta-filesystems/conf/include/ptest-packagelists-meta-filesystems.inc
@@ -0,0 +1,18 @@
+#
+# Lists of the ptest in meta-filesystems, sorted into two sets by the time 
they take
+# Please keep these sorted in alphabetical order
+#
+# A first pass at getting all meta-filesystems recipes which inherit ptest
+# meta_filesystems_ptest_recipes=$(bitbake-layers show-recipes --recipes-only 
--layer meta-filesystems --inherits ptest --bare | sed -e '1,/=== Matching 
recipes: ===/d')
+# ptests which take less than ~30s each
+
+PTESTS_FAST_META_FILESYSTEMS = "\
+    e2tools \
+    fuse3 \
+"
+
+PTESTS_SLOW_META_FILESYSTEMS = "\
+"
+PTESTS_PROBLEMS_META_FILESYSTEMS = "\
+    sshfs-fuse \
+"
diff --git 
a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb
 
b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb
new file mode 100644
index 0000000000..ffbfa1a3f6
--- /dev/null
+++ 
b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-all.bb
@@ -0,0 +1,25 @@
+DESCRIPTION = "Recipe to trigger execution of all meta-filesystems ptest 
images."
+HOMEPAGE = "https://www.openembedded.org/";
+
+LICENSE = "MIT"
+
+inherit features_check nopackages
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require conf/include/ptest-packagelists-meta-filesystems.inc
+
+# Include the full set of ptests
+PTESTS_META_FILESYSTEMS = "${PTESTS_FAST_META_FILESYSTEMS} 
${PTESTS_SLOW_META_FILESYSTEMS} ${PTESTS_PROBLEMS_META_FILESYSTEMS}"
+
+do_testimage[noexec] = "1"
+do_testimage[depends] = "${@' 
'.join(['meta-filesystems-image-ptest-'+x+':do_testimage' for x in 
d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
+
+do_build[depends] = "${@' 
'.join(['meta-filesystems-image-ptest-'+x+':do_build' for x in 
d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
+
+# normally image.bbclass would do this
+EXCLUDE_FROM_WORLD = "1"
+
+python () {
+    if bb.utils.contains('IMAGE_CLASSES', 'testimage', True, False, d):
+        bb.build.addtask("do_testimage", "", "", d)
+}
diff --git 
a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb
 
b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb
new file mode 100644
index 0000000000..0eb5344d9e
--- /dev/null
+++ 
b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest-fast.bb
@@ -0,0 +1,5 @@
+require meta-filesystems-image-ptest-all.bb
+
+DESCRIPTION = "Recipe to trigger execution of all fast meta-filesystems ptest 
images."
+
+PTESTS_META_OE = "${PTESTS_FAST_META_FILESYSTEMS}"
diff --git 
a/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb 
b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb
new file mode 100644
index 0000000000..90d6a92c1b
--- /dev/null
+++ 
b/meta-filesystems/recipes-filesystems/images/meta-filesystems-image-ptest.bb
@@ -0,0 +1,40 @@
+inherit features_check
+REQUIRED_DISTRO_FEATURES = "ptest"
+
+require recipes-core/images/core-image-minimal.bb
+require conf/include/ptest-packagelists-meta-filesystems.inc
+
+SUMMARY = "meta-filesystems ptest test image"
+
+DESCRIPTION += "Also including the ${MCNAME} ptest package."
+HOMEPAGE = "https://www.openembedded.org/";
+
+PTESTS_META_FILESYSTEMS = "${PTESTS_SLOW_META_FILESYSTEMS} 
${PTESTS_FAST_META_FILESYSTEMS} ${PTESTS_PROBLEMS_META_FILESYSTEMS}"
+
+IMAGE_INSTALL:append = " ${MCNAME}-ptest openssh"
+
+BBCLASSEXTEND = "${@' '.join(['mcextend:'+x for x in 
d.getVar('PTESTS_META_FILESYSTEMS').split()])}"
+
+# The image can be sufficiently large (~1.8GB) that we need to be careful that 
it fits in a live
+# image (which has a 4GB limit), so nullify the overhead factor (1.3x out of 
the
+# box) and explicitly add up to 1500MB.
+IMAGE_OVERHEAD_FACTOR = "1.0"
+IMAGE_ROOTFS_EXTRA_SPACE = "324288"
+# If a particular ptest needs more space, it can be customized:
+#IMAGE_ROOTFS_EXTRA_SPACE:virtclass-mcextend-<pn> = "1024288"
+
+# ptests need more memory than standard to avoid the OOM killer
+QB_MEM = "-m 1024"
+# If a particular ptest needs more memroy, it can be customized:
+#QB_MEM:virtclass-mcextend-<pn> = "-m 4096"
+
+TEST_SUITES = "ping ssh parselogs ptest"
+
+# Sadly at the moment the full set of ptests is not robust enough and 
sporadically fails in random places
+PTEST_EXPECT_FAILURE = "1"
+
+python () {
+    if not d.getVar("MCNAME"):
+        raise bb.parse.SkipRecipe("No class extension set")
+}
+
-- 
2.43.2

-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#108997): 
https://lists.openembedded.org/g/openembedded-devel/message/108997
Mute This Topic: https://lists.openembedded.org/mt/104516897/21656
Group Owner: openembedded-devel+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-devel/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to