summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPatrick Vacek <patrickvacek@gmail.com>2018-02-15 12:05:55 +0100
committerPatrick Vacek <patrickvacek@gmail.com>2018-02-20 11:01:34 +0100
commit9e4918cff53c6154b5bcee2e28deca08280aff75 (patch)
treee80f99edba5a0aeb4f76865bc07c52c424d0dc98
parent7bcbb8046672ff66ca7aa0bdf48460d1a11000c3 (diff)
downloadmeta-updater-9e4918cff53c6154b5bcee2e28deca08280aff75.tar.gz
Add test_cert_provider_local_output.
Improve some organization and logging.
-rw-r--r--lib/oeqa/selftest/updater.py71
1 files changed, 55 insertions, 16 deletions
diff --git a/lib/oeqa/selftest/updater.py b/lib/oeqa/selftest/updater.py
index 9a3efee..83febb1 100644
--- a/lib/oeqa/selftest/updater.py
+++ b/lib/oeqa/selftest/updater.py
@@ -60,6 +60,8 @@ class GeneralTests(oeSelfTest):
60 self.assertNotEqual(result, -1, 'Feature "systemd" not set at DISTRO_FEATURES') 60 self.assertNotEqual(result, -1, 'Feature "systemd" not set at DISTRO_FEATURES')
61 61
62 def test_credentials(self): 62 def test_credentials(self):
63 logger = logging.getLogger("selftest")
64 logger.info('Running bitbake to build core-image-minimal')
63 self.write_config('SOTA_CLIENT_PROV = " aktualizr-auto-prov "') 65 self.write_config('SOTA_CLIENT_PROV = " aktualizr-auto-prov "')
64 bitbake('core-image-minimal') 66 bitbake('core-image-minimal')
65 credentials = get_bb_var('SOTA_PACKED_CREDENTIALS') 67 credentials = get_bb_var('SOTA_PACKED_CREDENTIALS')
@@ -79,22 +81,6 @@ class GeneralTests(oeSelfTest):
79 result = runCmd('which java', ignore_status=True) 81 result = runCmd('which java', ignore_status=True)
80 self.assertEqual(result.status, 0, "Java not found.") 82 self.assertEqual(result.status, 0, "Java not found.")
81 83
82 def test_implicit_writer_help(self):
83 bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir', 'libdir'], 'aktualizr-native')
84 l = bb_vars['libdir']
85 p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/aktualizr_implicit_writer"
86 self.assertTrue(os.path.isfile(p), msg = "No aktualizr_implicit_writer found (%s)" % p)
87 result = runCmd('LD_LIBRARY_PATH=%s %s --help' % (l, p), ignore_status=True)
88 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
89
90 def test_cert_provider_help(self):
91 bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir', 'libdir'], 'aktualizr-native')
92 l = bb_vars['libdir']
93 p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/aktualizr_cert_provider"
94 self.assertTrue(os.path.isfile(p), msg = "No aktualizr_cert_provider found (%s)" % p)
95 result = runCmd('LD_LIBRARY_PATH=%s %s --help' % (l, p), ignore_status=True)
96 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
97
98 def test_add_package(self): 84 def test_add_package(self):
99 print('') 85 print('')
100 deploydir = get_bb_var('DEPLOY_DIR_IMAGE') 86 deploydir = get_bb_var('DEPLOY_DIR_IMAGE')
@@ -126,6 +112,59 @@ class GeneralTests(oeSelfTest):
126 self.assertNotEqual(size1, size2, "Image sizes are identical; image was not rebuilt.") 112 self.assertNotEqual(size1, size2, "Image sizes are identical; image was not rebuilt.")
127 113
128 114
115class AktualizrToolsTests(oeSelfTest):
116
117 @classmethod
118 def setUpClass(cls):
119 logger = logging.getLogger("selftest")
120 logger.info('Running bitbake to build aktualizr-native tools')
121 bitbake('aktualizr-native')
122
123 def test_implicit_writer_help(self):
124 bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir', 'libdir'], 'aktualizr-native')
125 l = bb_vars['libdir']
126 p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/aktualizr_implicit_writer"
127 self.assertTrue(os.path.isfile(p), msg = "No aktualizr_implicit_writer found (%s)" % p)
128 result = runCmd('LD_LIBRARY_PATH=%s %s --help' % (l, p), ignore_status=True)
129 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
130
131 def test_cert_provider_help(self):
132 bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir', 'libdir'], 'aktualizr-native')
133 l = bb_vars['libdir']
134 p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/aktualizr_cert_provider"
135 self.assertTrue(os.path.isfile(p), msg = "No aktualizr_cert_provider found (%s)" % p)
136 result = runCmd('LD_LIBRARY_PATH=%s %s --help' % (l, p), ignore_status=True)
137 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
138
139 def test_cert_provider_local_output(self):
140 logger = logging.getLogger("selftest")
141 logger.info('Running bitbake to build aktualizr-implicit-prov')
142 bitbake('aktualizr-implicit-prov')
143 bb_vars = get_bb_vars(['SYSROOT_DESTDIR', 'bindir', 'libdir',
144 'SOTA_PACKED_CREDENTIALS', 'T'], 'aktualizr-native')
145 l = bb_vars['libdir']
146 p = bb_vars['SYSROOT_DESTDIR'] + bb_vars['bindir'] + "/aktualizr_cert_provider"
147 creds = bb_vars['SOTA_PACKED_CREDENTIALS']
148 temp_dir = bb_vars['T']
149 bb_vars_prov = get_bb_vars(['STAGING_DIR_NATIVE', 'libdir'], 'aktualizr-implicit-prov')
150 config = bb_vars_prov['STAGING_DIR_NATIVE'] + bb_vars_prov['libdir'] + '/sota/sota_implicit_prov.toml'
151 self.assertTrue(os.path.isfile(p), msg = "No aktualizr_cert_provider found (%s)" % p)
152 command = 'LD_LIBRARY_PATH=' + l + ' ' + p + ' -c ' + creds + ' -r -l ' + temp_dir + ' -g ' + config
153 # logger.info('Checking output of: ' + command)
154 result = runCmd(command, ignore_status=True)
155 self.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output)
156 # Might be nice if these names weren't hardcoded.
157 cert_path = temp_dir + '/client.pem'
158 self.assertTrue(os.path.isfile(cert_path), "Client certificate not found at %s." % cert_path)
159 self.assertTrue(os.path.getsize(cert_path) > 0, "Client certificate at %s is empty." % cert_path)
160 pkey_path = temp_dir + '/pkey.pem'
161 self.assertTrue(os.path.isfile(pkey_path), "Private key not found at %s." % pkey_path)
162 self.assertTrue(os.path.getsize(pkey_path) > 0, "Private key at %s is empty." % pkey_path)
163 ca_path = temp_dir + '/root.crt'
164 self.assertTrue(os.path.isfile(ca_path), "Client certificate not found at %s." % ca_path)
165 self.assertTrue(os.path.getsize(ca_path) > 0, "Client certificate at %s is empty." % ca_path)
166
167
129class QemuTests(oeSelfTest): 168class QemuTests(oeSelfTest):
130 169
131 @classmethod 170 @classmethod