diff options
Diffstat (limited to 'meta-zephyr-core/classes/zephyrtest.bbclass')
-rw-r--r-- | meta-zephyr-core/classes/zephyrtest.bbclass | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/meta-zephyr-core/classes/zephyrtest.bbclass b/meta-zephyr-core/classes/zephyrtest.bbclass new file mode 100644 index 0000000..248fd15 --- /dev/null +++ b/meta-zephyr-core/classes/zephyrtest.bbclass @@ -0,0 +1,53 @@ +inherit rootfs-postcommands + +python zephyrtest_virtclass_handler () { + variant = e.data.getVar("BBEXTENDVARIANT", True) + + # ipk doesn't like underscores in pacakges names. So just use dashes + # for PN and the image name. + variant_dashes = variant.replace('_', '-') + + pn = variant_dashes + pn_underscores = e.data.getVar("PN") + "-" + variant + + e.data.setVar("PN", pn) + e.data.setVar("ZEPHYR_IMAGENAME", pn + ".elf") + + # Most tests for Zephyr 1.6 are in the "legacy" folder + e.data.setVar("ZEPHYR_SRC_DIR", "tests/kernel/" + variant) + e.data.setVar("ZEPHYR_MAKE_OUTPUT", "zephyr.elf") + + # Allow to build using both foo-some_test form as well as foo-some-test + e.data.setVar("PROVIDES", e.data.getVar("PROVIDES") + pn_underscores) +} + +addhandler zephyrtest_virtclass_handler +zephyrtest_virtclass_handler[eventmask] = "bb.event.RecipePreFinalise" + +IMAGE_LINK_NAME = "${PN}-image-${MACHINE}" + +# Generate test data json file +python do_testdata_write() { + bb.build.exec_func("write_image_test_data", d) + + # While at it, create dummy manifest files so testimage does not + # complain... + + fname = os.path.join(d.getVar('DEPLOY_DIR_IMAGE'), (d.getVar('IMAGE_LINK_NAME') + ".manifest")) + open(fname, 'w').close() +} + +CLEANFUNCS += "testdata_clean" + +python testdata_clean() { + import glob + + files = glob.glob(d.getVar('DEPLOY_DIR_IMAGE')+'/'+ d.getVar('PN') + '*.testdata.json') + for f in files: + os.remove(f) + fname = os.path.join(d.getVar('DEPLOY_DIR_IMAGE'), (d.getVar('IMAGE_LINK_NAME') + ".manifest")) + if os.path.exists(fname): + os.remove(fname) +} + +addtask do_testdata_write before do_build after do_deploy |