summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--meta/lib/oeqa/selftest/case.py76
-rwxr-xr-xscripts/oe-selftest54
2 files changed, 66 insertions, 64 deletions
diff --git a/meta/lib/oeqa/selftest/case.py b/meta/lib/oeqa/selftest/case.py
index 95a8769bef..ca95b7e8b5 100644
--- a/meta/lib/oeqa/selftest/case.py
+++ b/meta/lib/oeqa/selftest/case.py
@@ -14,17 +14,17 @@ from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_test_layer
14from oeqa.core.case import OETestCase 14from oeqa.core.case import OETestCase
15 15
16class OESelftestTestCase(OETestCase): 16class OESelftestTestCase(OETestCase):
17 builddir = os.environ.get("BUILDDIR") or ""
18 localconf_path = os.path.join(builddir, "conf/local.conf")
19 localconf_backup = os.path.join(builddir, "conf/local.bk")
20 testinc_path = os.path.join(builddir, "conf/selftest.inc")
21 local_bblayers_path = os.path.join(builddir, "conf/bblayers.conf")
22 local_bblayers_backup = os.path.join(builddir, "conf/bblayers.bk")
23 testinc_bblayers_path = os.path.join(builddir, "conf/bblayers.inc")
24 machineinc_path = os.path.join(builddir, "conf/machine.inc")
25 testlayer_path = get_test_layer()
26
17 def __init__(self, methodName="runTest"): 27 def __init__(self, methodName="runTest"):
18 self.builddir = os.environ.get("BUILDDIR")
19 self.localconf_path = os.path.join(self.builddir, "conf/local.conf")
20 self.localconf_backup = os.path.join(self.builddir, "conf/local.bk")
21 self.testinc_path = os.path.join(self.builddir, "conf/selftest.inc")
22 self.local_bblayers_path = os.path.join(self.builddir, "conf/bblayers.conf")
23 self.local_bblayers_backup = os.path.join(self.builddir,
24 "conf/bblayers.bk")
25 self.testinc_bblayers_path = os.path.join(self.builddir, "conf/bblayers.inc")
26 self.machineinc_path = os.path.join(self.builddir, "conf/machine.inc")
27 self.testlayer_path = get_test_layer()
28 self._extra_tear_down_commands = [] 28 self._extra_tear_down_commands = []
29 self._track_for_cleanup = [ 29 self._track_for_cleanup = [
30 self.testinc_path, self.testinc_bblayers_path, 30 self.testinc_path, self.testinc_bblayers_path,
@@ -33,6 +33,62 @@ class OESelftestTestCase(OETestCase):
33 33
34 super(OESelftestTestCase, self).__init__(methodName) 34 super(OESelftestTestCase, self).__init__(methodName)
35 35
36 @classmethod
37 def setUpClass(cls):
38 super(OESelftestTestCase, cls).setUpClass()
39 cls.add_include()
40
41 @classmethod
42 def tearDownClass(cls):
43 cls.remove_include()
44 cls.remove_inc_files()
45 super(OESelftestTestCase, cls).tearDownClass()
46
47 @classmethod
48 def add_include(cls):
49 if "#include added by oe-selftest" \
50 not in ftools.read_file(os.path.join(cls.builddir, "conf/local.conf")):
51 cls.logger.info("Adding: \"include selftest.inc\" in %s" % os.path.join(cls.builddir, "conf/local.conf"))
52 ftools.append_file(os.path.join(cls.builddir, "conf/local.conf"), \
53 "\n#include added by oe-selftest\ninclude machine.inc\ninclude selftest.inc")
54
55 if "#include added by oe-selftest" \
56 not in ftools.read_file(os.path.join(cls.builddir, "conf/bblayers.conf")):
57 cls.logger.info("Adding: \"include bblayers.inc\" in bblayers.conf")
58 ftools.append_file(os.path.join(cls.builddir, "conf/bblayers.conf"), \
59 "\n#include added by oe-selftest\ninclude bblayers.inc")
60
61 @classmethod
62 def remove_include(cls):
63 if "#include added by oe-selftest.py" \
64 in ftools.read_file(os.path.join(cls.builddir, "conf/local.conf")):
65 cls.logger.info("Removing the include from local.conf")
66 ftools.remove_from_file(os.path.join(cls.builddir, "conf/local.conf"), \
67 "\n#include added by oe-selftest.py\ninclude machine.inc\ninclude selftest.inc")
68
69 if "#include added by oe-selftest.py" \
70 in ftools.read_file(os.path.join(cls.builddir, "conf/bblayers.conf")):
71 cls.logger.info("Removing the include from bblayers.conf")
72 ftools.remove_from_file(os.path.join(cls.builddir, "conf/bblayers.conf"), \
73 "\n#include added by oe-selftest.py\ninclude bblayers.inc")
74
75 @classmethod
76 def remove_inc_files(cls):
77 try:
78 os.remove(os.path.join(cls.builddir, "conf/selftest.inc"))
79 for root, _, files in os.walk(get_test_layer()):
80 for f in files:
81 if f == 'test_recipe.inc':
82 os.remove(os.path.join(root, f))
83 except OSError as e:
84 pass
85
86 for incl_file in ['conf/bblayers.inc', 'conf/machine.inc']:
87 try:
88 os.remove(os.path.join(cls.builddir, incl_file))
89 except:
90 pass
91
36 def setUp(self): 92 def setUp(self):
37 super(OESelftestTestCase, self).setUp() 93 super(OESelftestTestCase, self).setUp()
38 os.chdir(self.builddir) 94 os.chdir(self.builddir)
diff --git a/scripts/oe-selftest b/scripts/oe-selftest
index 52366b1c8d..490915759f 100755
--- a/scripts/oe-selftest
+++ b/scripts/oe-selftest
@@ -159,56 +159,6 @@ def preflight_check():
159 159
160 return True 160 return True
161 161
162def add_include():
163 global builddir
164 if "#include added by oe-selftest.py" \
165 not in ftools.read_file(os.path.join(builddir, "conf/local.conf")):
166 log.info("Adding: \"include selftest.inc\" in local.conf")
167 ftools.append_file(os.path.join(builddir, "conf/local.conf"), \
168 "\n#include added by oe-selftest.py\ninclude machine.inc\ninclude selftest.inc")
169
170 if "#include added by oe-selftest.py" \
171 not in ftools.read_file(os.path.join(builddir, "conf/bblayers.conf")):
172 log.info("Adding: \"include bblayers.inc\" in bblayers.conf")
173 ftools.append_file(os.path.join(builddir, "conf/bblayers.conf"), \
174 "\n#include added by oe-selftest.py\ninclude bblayers.inc")
175
176def remove_include():
177 global builddir
178 if builddir is None:
179 return
180 if "#include added by oe-selftest.py" \
181 in ftools.read_file(os.path.join(builddir, "conf/local.conf")):
182 log.info("Removing the include from local.conf")
183 ftools.remove_from_file(os.path.join(builddir, "conf/local.conf"), \
184 "\n#include added by oe-selftest.py\ninclude machine.inc\ninclude selftest.inc")
185
186 if "#include added by oe-selftest.py" \
187 in ftools.read_file(os.path.join(builddir, "conf/bblayers.conf")):
188 log.info("Removing the include from bblayers.conf")
189 ftools.remove_from_file(os.path.join(builddir, "conf/bblayers.conf"), \
190 "\n#include added by oe-selftest.py\ninclude bblayers.inc")
191
192def remove_inc_files():
193 global builddir
194 if builddir is None:
195 return
196 try:
197 os.remove(os.path.join(builddir, "conf/selftest.inc"))
198 for root, _, files in os.walk(get_test_layer()):
199 for f in files:
200 if f == 'test_recipe.inc':
201 os.remove(os.path.join(root, f))
202 except OSError as e:
203 pass
204
205 for incl_file in ['conf/bblayers.inc', 'conf/machine.inc']:
206 try:
207 os.remove(os.path.join(builddir, incl_file))
208 except:
209 pass
210
211
212def get_tests_modules(include_hidden=False): 162def get_tests_modules(include_hidden=False):
213 modules_list = list() 163 modules_list = list()
214 for modules_path in oeqa.selftest.__path__: 164 for modules_path in oeqa.selftest.__path__:
@@ -583,7 +533,6 @@ def main():
583 log.error("Failed to import %s" % test) 533 log.error("Failed to import %s" % test)
584 log.error(e) 534 log.error(e)
585 return 1 535 return 1
586 add_include()
587 536
588 if args.machine: 537 if args.machine:
589 # Custom machine sets only weak default values (??=) for MACHINE in machine.inc 538 # Custom machine sets only weak default values (??=) for MACHINE in machine.inc
@@ -808,7 +757,4 @@ if __name__ == "__main__":
808 ret = 1 757 ret = 1
809 import traceback 758 import traceback
810 traceback.print_exc() 759 traceback.print_exc()
811 finally:
812 remove_include()
813 remove_inc_files()
814 sys.exit(ret) 760 sys.exit(ret)