diff options
14 files changed, 56 insertions, 30 deletions
diff --git a/meta/classes/imagetest-qemu.bbclass b/meta/classes/imagetest-qemu.bbclass index feab868476..5742644e02 100644 --- a/meta/classes/imagetest-qemu.bbclass +++ b/meta/classes/imagetest-qemu.bbclass | |||
| @@ -8,7 +8,6 @@ do_qemuimagetest[depends] += "qemu-native:do_populate_sysroot" | |||
| 8 | TEST_DIR ?= "${WORKDIR}/qemuimagetest" | 8 | TEST_DIR ?= "${WORKDIR}/qemuimagetest" |
| 9 | TEST_LOG ?= "${LOG_DIR}/qemuimagetests" | 9 | TEST_LOG ?= "${LOG_DIR}/qemuimagetests" |
| 10 | TEST_RESULT ?= "${TEST_DIR}/result" | 10 | TEST_RESULT ?= "${TEST_DIR}/result" |
| 11 | TEST_LIST ?= "${TEST_DIR}/list" | ||
| 12 | TEST_TMP ?= "${TEST_DIR}/tmp" | 11 | TEST_TMP ?= "${TEST_DIR}/tmp" |
| 13 | TEST_SCEN ?= "sanity" | 12 | TEST_SCEN ?= "sanity" |
| 14 | 13 | ||
| @@ -21,15 +20,14 @@ python do_qemuimagetest() { | |||
| 21 | Test Controller for Poky Testing. | 20 | Test Controller for Poky Testing. |
| 22 | """ | 21 | """ |
| 23 | 22 | ||
| 24 | casestr = re.compile(r'(?P<scen>\w+\b)\s*(?P<case>\w+$)') | 23 | casestr = re.compile(r'(?P<scen>\w+\b):(?P<case>\w+$)') |
| 25 | resultstr = re.compile(r'\s*(?P<case>\w+)\s*(?P<pass>\d+)\s*(?P<fail>\d+)\s*(?P<noresult>\d+)') | 24 | resultstr = re.compile(r'\s*(?P<case>\w+)\s*(?P<pass>\d+)\s*(?P<fail>\d+)\s*(?P<noresult>\d+)') |
| 25 | machine = bb.data.getVar('MACHINE', d, 1) | ||
| 26 | pname = bb.data.getVar('PN', d, 1) | ||
| 26 | 27 | ||
| 27 | """funtion to run each case under scenario""" | 28 | """funtion to run each case under scenario""" |
| 28 | def runtest(scen, case, fulltestpath): | 29 | def runtest(scen, case, fulltestpath): |
| 29 | resultpath = bb.data.getVar('TEST_RESULT', d, 1) | 30 | resultpath = bb.data.getVar('TEST_RESULT', d, 1) |
| 30 | machine = bb.data.getVar('MACHINE', d, 1) | ||
| 31 | pname = bb.data.getVar('PN', d, 1) | ||
| 32 | |||
| 33 | testpath = bb.data.getVar('TEST_DIR', d, 1) | 31 | testpath = bb.data.getVar('TEST_DIR', d, 1) |
| 34 | 32 | ||
| 35 | """initialize log file for testcase""" | 33 | """initialize log file for testcase""" |
| @@ -54,31 +52,39 @@ python do_qemuimagetest() { | |||
| 54 | os.system("%s | tee -a %s" % (fulltestpath, caselog)) | 52 | os.system("%s | tee -a %s" % (fulltestpath, caselog)) |
| 55 | 53 | ||
| 56 | """Generate testcase list in runtime""" | 54 | """Generate testcase list in runtime""" |
| 57 | def generate_list(testfile, testlist): | 55 | def generate_list(testlist): |
| 58 | list = [] | 56 | list = [] |
| 59 | if len(testlist) == 0: | 57 | if len(testlist) == 0: |
| 60 | raise bb.build.FuncFailed("No testcase defined in TEST_SCEN") | 58 | raise bb.build.FuncFailed("No testcase defined in TEST_SCEN") |
| 61 | 59 | ||
| 62 | """remove old testcase list file""" | 60 | """check testcase folder and add case list according to TEST_SCEN""" |
| 63 | if os.path.exists(testfile): | ||
| 64 | os.remove(testfile) | ||
| 65 | os.system("touch %s" % testfile) | ||
| 66 | |||
| 67 | """check testcase folder and add case to TEST_LIST""" | ||
| 68 | for item in testlist.split(" "): | 61 | for item in testlist.split(" "): |
| 69 | found = False | 62 | n = casestr.match(item) |
| 70 | for dir in bb.data.getVar("QEMUIMAGETESTS", d, True).split(): | 63 | if n: |
| 71 | casepath = os.path.join(dir, item) | 64 | item = n.group('scen') |
| 72 | if not os.path.isdir(casepath): | 65 | casefile = n.group('case') |
| 73 | continue | 66 | for dir in bb.data.getVar("QEMUIMAGETESTS", d, True).split(): |
| 74 | files = os.listdir(casepath) | 67 | fulltestcase = os.path.join(dir, item, casefile) |
| 75 | for casefile in files: | 68 | if not os.path.isfile(fulltestcase): |
| 76 | fulltestcase = "%s/%s" % (casepath, casefile) | 69 | raise bb.build.FuncFailed("Testcase %s not found" % fulltestcase) |
| 77 | if os.path.isfile(fulltestcase): | 70 | list.append((item, casefile, fulltestcase)) |
| 78 | list.append((item, casefile, fulltestcase)) | 71 | else: |
| 79 | found = True | 72 | for dir in bb.data.getVar("QEMUIMAGETESTS", d, True).split(): |
| 80 | if not found: | 73 | scenlist = os.path.join(dir, "scenario", machine, pname) |
| 81 | raise bb.build.FuncFailed("Testcase folder not found for test %s" % item) | 74 | if not os.path.isfile(scenlist): |
| 75 | raise bb.build.FuncFailed("No scenario list file named %s found" % scenlist) | ||
| 76 | |||
| 77 | f = open(scenlist, "r") | ||
| 78 | for line in f: | ||
| 79 | if item != line.split()[0]: | ||
| 80 | continue | ||
| 81 | else: | ||
| 82 | casefile = line.split()[1] | ||
| 83 | |||
| 84 | fulltestcase = os.path.join(dir, item, casefile) | ||
| 85 | if not os.path.isfile(fulltestcase): | ||
| 86 | raise bb.build.FuncFailed("Testcase %s not found" % fulltestcase) | ||
| 87 | list.append((item, casefile, fulltestcase)) | ||
| 82 | return list | 88 | return list |
| 83 | 89 | ||
| 84 | """check testcase folder and create test log folder""" | 90 | """check testcase folder and create test log folder""" |
| @@ -109,9 +115,8 @@ python do_qemuimagetest() { | |||
| 109 | f.close() | 115 | f.close() |
| 110 | 116 | ||
| 111 | """generate pre-defined testcase list""" | 117 | """generate pre-defined testcase list""" |
| 112 | testfile = bb.data.getVar('TEST_LIST', d, 1) | ||
| 113 | testlist = bb.data.getVar('TEST_SCEN', d, 1) | 118 | testlist = bb.data.getVar('TEST_SCEN', d, 1) |
| 114 | fulllist = generate_list(testfile, testlist) | 119 | fulllist = generate_list(testlist) |
| 115 | 120 | ||
| 116 | """Begin testing""" | 121 | """Begin testing""" |
| 117 | for test in fulllist: | 122 | for test in fulllist: |
diff --git a/meta/conf/local.conf.sample b/meta/conf/local.conf.sample index 66acaa49a7..a06c7555c9 100644 --- a/meta/conf/local.conf.sample +++ b/meta/conf/local.conf.sample | |||
| @@ -146,6 +146,7 @@ ENABLE_BINARY_LOCALE_GENERATION = "1" | |||
| 146 | # testing in qemu after do_rootfs. | 146 | # testing in qemu after do_rootfs. |
| 147 | #IMAGETEST = "qemu" | 147 | #IMAGETEST = "qemu" |
| 148 | 148 | ||
| 149 | # By default testing will run the sanitytest suite. If you want to run other tests | 149 | # By default test cases in sanity suite will be ran. If you want to run other |
| 150 | # (e.g. bat), list them here | 150 | # test suite or specific test case(e.g. bat or boot test case under sanity suite), |
| 151 | #TEST_SCEN = "sanitytest bat" | 151 | # list them like following. |
| 152 | #TEST_SCEN = "sanity bat sanity:boot" | ||
diff --git a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-minimal b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-minimal new file mode 100644 index 0000000000..0fcc7bba84 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-minimal | |||
| @@ -0,0 +1 @@ | |||
| sanity boot | |||
diff --git a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sato | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemuarm/poky-image-sdk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemumips/poky-image-minimal b/scripts/qemuimage-tests/scenario/qemumips/poky-image-minimal new file mode 100644 index 0000000000..0fcc7bba84 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemumips/poky-image-minimal | |||
| @@ -0,0 +1 @@ | |||
| sanity boot | |||
diff --git a/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sato | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemumips/poky-image-sdk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-minimal b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-minimal new file mode 100644 index 0000000000..0fcc7bba84 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-minimal | |||
| @@ -0,0 +1 @@ | |||
| sanity boot | |||
diff --git a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sato | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemuppc/poky-image-sdk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemux86/poky-image-minimal b/scripts/qemuimage-tests/scenario/qemux86/poky-image-minimal new file mode 100644 index 0000000000..0fcc7bba84 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemux86/poky-image-minimal | |||
| @@ -0,0 +1 @@ | |||
| sanity boot | |||
diff --git a/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sato | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
diff --git a/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk new file mode 100644 index 0000000000..95a091b741 --- /dev/null +++ b/scripts/qemuimage-tests/scenario/qemux86/poky-image-sdk | |||
| @@ -0,0 +1,2 @@ | |||
| 1 | sanity boot | ||
| 2 | sanity ssh | ||
