aboutsummaryrefslogtreecommitdiffstats
path: root/meta-zephyr-core/classes/zephyrtest.bbclass
blob: 248fd15c82d45904f06ff58317ae9e753f2e79d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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