diff options
Diffstat (limited to 'meta/classes/testexport.bbclass')
-rw-r--r-- | meta/classes/testexport.bbclass | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/meta/classes/testexport.bbclass b/meta/classes/testexport.bbclass index c86eaac197..8046e29655 100644 --- a/meta/classes/testexport.bbclass +++ b/meta/classes/testexport.bbclass | |||
@@ -16,6 +16,9 @@ | |||
16 | 16 | ||
17 | TEST_LOG_DIR ?= "${WORKDIR}/testexport" | 17 | TEST_LOG_DIR ?= "${WORKDIR}/testexport" |
18 | TEST_EXPORT_DIR ?= "${TMPDIR}/testexport/${PN}" | 18 | TEST_EXPORT_DIR ?= "${TMPDIR}/testexport/${PN}" |
19 | TEST_EXPORT_PACKAGED_DIR ?= "packages/packaged" | ||
20 | TEST_EXPORT_EXTRACTED_DIR ?= "packages/extracted" | ||
21 | |||
19 | TEST_TARGET ?= "simpleremote" | 22 | TEST_TARGET ?= "simpleremote" |
20 | TEST_TARGET_IP ?= "" | 23 | TEST_TARGET_IP ?= "" |
21 | TEST_SERVER_IP ?= "" | 24 | TEST_SERVER_IP ?= "" |
@@ -28,9 +31,9 @@ python do_testexport() { | |||
28 | } | 31 | } |
29 | 32 | ||
30 | addtask testexport | 33 | addtask testexport |
31 | do_testimage[nostamp] = "1" | 34 | do_testexport[nostamp] = "1" |
32 | do_testimage[depends] += "${TEST_EXPORT_DEPENDS}" | 35 | do_testexport[depends] += "${TEST_EXPORT_DEPENDS} ${TESTIMAGEDEPENDS}" |
33 | do_testimage[lockfiles] += "${TEST_EXPORT_LOCK}" | 36 | do_testexport[lockfiles] += "${TEST_EXPORT_LOCK}" |
34 | 37 | ||
35 | def exportTests(d,tc): | 38 | def exportTests(d,tc): |
36 | import json | 39 | import json |
@@ -96,6 +99,9 @@ def exportTests(d,tc): | |||
96 | shutil.copytree(foldername, target_folder) | 99 | shutil.copytree(foldername, target_folder) |
97 | if not isfolder: | 100 | if not isfolder: |
98 | shutil.copy2(mod.path, os.path.join(exportpath, "oeqa/runtime")) | 101 | shutil.copy2(mod.path, os.path.join(exportpath, "oeqa/runtime")) |
102 | json_file = "%s.json" % mod.path.rsplit(".", 1)[0] | ||
103 | if os.path.isfile(json_file): | ||
104 | shutil.copy2(json_file, os.path.join(exportpath, "oeqa/runtime")) | ||
99 | # Get meta layer | 105 | # Get meta layer |
100 | for layer in d.getVar("BBLAYERS", True).split(): | 106 | for layer in d.getVar("BBLAYERS", True).split(): |
101 | if os.path.basename(layer) == "meta": | 107 | if os.path.basename(layer) == "meta": |
@@ -115,6 +121,20 @@ def exportTests(d,tc): | |||
115 | for f in files: | 121 | for f in files: |
116 | shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/runtime/files")) | 122 | shutil.copy2(os.path.join(root, f), os.path.join(exportpath, "oeqa/runtime/files")) |
117 | 123 | ||
124 | # Copy packages needed for runtime testing | ||
125 | export_pkg_dir = os.path.join(d.getVar("TEST_EXPORT_DIR", True), "packages") | ||
126 | test_pkg_dir = d.getVar("TEST_NEEDED_PACKAGES_DIR", True) | ||
127 | for root, subdirs, files in os.walk(test_pkg_dir): | ||
128 | for subdir in subdirs: | ||
129 | tmp_dir = os.path.join(root.replace(test_pkg_dir, "").lstrip("/"), subdir) | ||
130 | new_dir = os.path.join(export_pkg_dir, tmp_dir) | ||
131 | bb.utils.mkdirhier(new_dir) | ||
132 | |||
133 | for f in files: | ||
134 | src_f = os.path.join(root, f) | ||
135 | dst_f = os.path.join(export_pkg_dir, root.replace(test_pkg_dir, "").lstrip("/"), f) | ||
136 | shutil.copy2(src_f, dst_f) | ||
137 | |||
118 | bb.plain("Exported tests to: %s" % exportpath) | 138 | bb.plain("Exported tests to: %s" % exportpath) |
119 | 139 | ||
120 | def testexport_main(d): | 140 | def testexport_main(d): |
@@ -122,9 +142,11 @@ def testexport_main(d): | |||
122 | from oeqa.targetcontrol import get_target_controller | 142 | from oeqa.targetcontrol import get_target_controller |
123 | from oeqa.utils.dump import get_host_dumper | 143 | from oeqa.utils.dump import get_host_dumper |
124 | 144 | ||
145 | test_create_extract_dirs(d) | ||
146 | export_dir = d.getVar("TEST_EXPORT_DIR", True) | ||
125 | bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True)) | 147 | bb.utils.mkdirhier(d.getVar("TEST_LOG_DIR", True)) |
126 | bb.utils.remove(d.getVar("TEST_EXPORT_DIR", True), recurse=True) | 148 | bb.utils.remove(export_dir, recurse=True) |
127 | bb.utils.mkdirhier(d.getVar("TEST_EXPORT_DIR", True)) | 149 | bb.utils.mkdirhier(export_dir) |
128 | 150 | ||
129 | # the robot dance | 151 | # the robot dance |
130 | target = get_target_controller(d) | 152 | target = get_target_controller(d) |
@@ -141,6 +163,7 @@ def testexport_main(d): | |||
141 | import traceback | 163 | import traceback |
142 | bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) | 164 | bb.fatal("Loading tests failed:\n%s" % traceback.format_exc()) |
143 | 165 | ||
166 | tc.extract_packages() | ||
144 | exportTests(d,tc) | 167 | exportTests(d,tc) |
145 | 168 | ||
146 | testexport_main[vardepsexclude] =+ "BB_ORIGENV" | 169 | testexport_main[vardepsexclude] =+ "BB_ORIGENV" |