Files
meta-zephyr/meta-zephyr-core/classes/zephyrtest.bbclass
Peter Hoyes 6cf57189bf zephyr-core/zephyr-kernel: Refactor zephyr-image and zephyr-sample
At the moment:
 * zephyr-image.inc depends on zephyr-sample.inc, which doesn't really
   make sense.
 * zephyr-image.inc inherits testimage, even though it may not be
   required.
 * Out-of-tree Zephyr apps have to include zephyr-sample.inc in order to
   deploy the binaries, which is confusingly named if your application
   isn't a "sample".

Do some minor refactoring to untangle the above. Now:
 * zephyr-sample.inc depends on zephyr-image.inc
 * zephyrtest.bbclass inherits testimage.
 * Out-of-tree Zephyr apps can include zephyr-image.inc

Additionally, remove QEMU_BIN_PATH, as recent Zephyr versions now pick
up the QEMU binary automatically from PATH.

Signed-off-by: Peter Hoyes <Peter.Hoyes@arm.com>
Signed-off-by: Jon Mason <jon.mason@arm.com>
Signed-off-by: Naveen Saini <naveen.kumar.saini@intel.com>
2022-10-04 10:23:08 +08:00

54 lines
1.7 KiB
Plaintext

inherit rootfs-postcommands testimage
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", "${ZEPHYR_BASE}/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_testimage after do_deploy