diff options
-rw-r--r-- | meta/lib/oeqa/selftest/cases/prservice.py | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/meta/lib/oeqa/selftest/cases/prservice.py b/meta/lib/oeqa/selftest/cases/prservice.py index 9fe3b80a31..8da3739c57 100644 --- a/meta/lib/oeqa/selftest/cases/prservice.py +++ b/meta/lib/oeqa/selftest/cases/prservice.py | |||
@@ -14,6 +14,8 @@ from oeqa.selftest.case import OESelftestTestCase | |||
14 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var | 14 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var |
15 | from oeqa.utils.network import get_free_port | 15 | from oeqa.utils.network import get_free_port |
16 | 16 | ||
17 | import bb.utils | ||
18 | |||
17 | class BitbakePrTests(OESelftestTestCase): | 19 | class BitbakePrTests(OESelftestTestCase): |
18 | 20 | ||
19 | @classmethod | 21 | @classmethod |
@@ -21,6 +23,16 @@ class BitbakePrTests(OESelftestTestCase): | |||
21 | super(BitbakePrTests, cls).setUpClass() | 23 | super(BitbakePrTests, cls).setUpClass() |
22 | cls.pkgdata_dir = get_bb_var('PKGDATA_DIR') | 24 | cls.pkgdata_dir = get_bb_var('PKGDATA_DIR') |
23 | 25 | ||
26 | cls.exported_db_path = os.path.join(cls.builddir, 'export.inc') | ||
27 | cls.current_db_path = os.path.join(get_bb_var('PERSISTENT_DIR'), 'prserv.sqlite3') | ||
28 | |||
29 | def cleanup(self): | ||
30 | # Ensure any memory resident bitbake is stopped | ||
31 | bitbake("-m") | ||
32 | # Remove any existing export file or prserv database | ||
33 | bb.utils.remove(self.exported_db_path) | ||
34 | bb.utils.remove(self.current_db_path + "*") | ||
35 | |||
24 | def get_pr_version(self, package_name): | 36 | def get_pr_version(self, package_name): |
25 | package_data_file = os.path.join(self.pkgdata_dir, 'runtime', package_name) | 37 | package_data_file = os.path.join(self.pkgdata_dir, 'runtime', package_name) |
26 | package_data = ftools.read_file(package_data_file) | 38 | package_data = ftools.read_file(package_data_file) |
@@ -49,6 +61,7 @@ class BitbakePrTests(OESelftestTestCase): | |||
49 | self.assertEqual(res.status, 0, msg=res.output) | 61 | self.assertEqual(res.status, 0, msg=res.output) |
50 | 62 | ||
51 | def config_pr_tests(self, package_name, package_type='rpm', pr_socket='localhost:0'): | 63 | def config_pr_tests(self, package_name, package_type='rpm', pr_socket='localhost:0'): |
64 | self.cleanup() | ||
52 | config_package_data = 'PACKAGE_CLASSES = "package_%s"' % package_type | 65 | config_package_data = 'PACKAGE_CLASSES = "package_%s"' % package_type |
53 | self.write_config(config_package_data) | 66 | self.write_config(config_package_data) |
54 | config_server_data = 'PRSERV_HOST = "%s"' % pr_socket | 67 | config_server_data = 'PRSERV_HOST = "%s"' % pr_socket |
@@ -68,24 +81,24 @@ class BitbakePrTests(OESelftestTestCase): | |||
68 | self.assertTrue(pr_2 - pr_1 == 1, "New PR %s did not increment as expected (from %s), difference should be 1" % (pr_2, pr_1)) | 81 | self.assertTrue(pr_2 - pr_1 == 1, "New PR %s did not increment as expected (from %s), difference should be 1" % (pr_2, pr_1)) |
69 | self.assertTrue(stamp_1 != stamp_2, "Different pkg rev. but same stamp: %s" % stamp_1) | 82 | self.assertTrue(stamp_1 != stamp_2, "Different pkg rev. but same stamp: %s" % stamp_1) |
70 | 83 | ||
84 | self.cleanup() | ||
85 | |||
71 | def run_test_pr_export_import(self, package_name, replace_current_db=True): | 86 | def run_test_pr_export_import(self, package_name, replace_current_db=True): |
72 | self.config_pr_tests(package_name) | 87 | self.config_pr_tests(package_name) |
73 | 88 | ||
74 | self.increment_package_pr(package_name) | 89 | self.increment_package_pr(package_name) |
75 | pr_1 = self.get_pr_version(package_name) | 90 | pr_1 = self.get_pr_version(package_name) |
76 | 91 | ||
77 | exported_db_path = os.path.join(self.builddir, 'export.inc') | 92 | export_result = runCmd("bitbake-prserv-tool export %s" % self.exported_db_path, ignore_status=True) |
78 | export_result = runCmd("bitbake-prserv-tool export %s" % exported_db_path, ignore_status=True) | ||
79 | self.assertEqual(export_result.status, 0, msg="PR Service database export failed: %s" % export_result.output) | 93 | self.assertEqual(export_result.status, 0, msg="PR Service database export failed: %s" % export_result.output) |
80 | self.assertTrue(os.path.exists(exported_db_path), msg="%s didn't exist, tool output %s" % (exported_db_path, export_result.output)) | 94 | self.assertTrue(os.path.exists(self.exported_db_path), msg="%s didn't exist, tool output %s" % (self.exported_db_path, export_result.output)) |
81 | 95 | ||
82 | if replace_current_db: | 96 | if replace_current_db: |
83 | current_db_path = os.path.join(get_bb_var('PERSISTENT_DIR'), 'prserv.sqlite3') | 97 | self.assertTrue(os.path.exists(self.current_db_path), msg="Path to current PR Service database is invalid: %s" % self.current_db_path) |
84 | self.assertTrue(os.path.exists(current_db_path), msg="Path to current PR Service database is invalid: %s" % current_db_path) | 98 | os.remove(self.current_db_path) |
85 | os.remove(current_db_path) | ||
86 | 99 | ||
87 | import_result = runCmd("bitbake-prserv-tool import %s" % exported_db_path, ignore_status=True) | 100 | import_result = runCmd("bitbake-prserv-tool import %s" % self.exported_db_path, ignore_status=True) |
88 | os.remove(exported_db_path) | 101 | #os.remove(self.exported_db_path) |
89 | self.assertEqual(import_result.status, 0, msg="PR Service database import failed: %s" % import_result.output) | 102 | self.assertEqual(import_result.status, 0, msg="PR Service database import failed: %s" % import_result.output) |
90 | 103 | ||
91 | self.increment_package_pr(package_name) | 104 | self.increment_package_pr(package_name) |
@@ -93,6 +106,8 @@ class BitbakePrTests(OESelftestTestCase): | |||
93 | 106 | ||
94 | self.assertTrue(pr_2 - pr_1 == 1, "New PR %s did not increment as expected (from %s), difference should be 1" % (pr_2, pr_1)) | 107 | self.assertTrue(pr_2 - pr_1 == 1, "New PR %s did not increment as expected (from %s), difference should be 1" % (pr_2, pr_1)) |
95 | 108 | ||
109 | self.cleanup() | ||
110 | |||
96 | def test_import_export_replace_db(self): | 111 | def test_import_export_replace_db(self): |
97 | self.run_test_pr_export_import('m4') | 112 | self.run_test_pr_export_import('m4') |
98 | 113 | ||