diff options
| -rw-r--r-- | lib/oeqa/selftest/cases/testutils.py | 28 | ||||
| -rw-r--r-- | lib/oeqa/selftest/cases/updater_minnowboard.py | 13 | ||||
| -rw-r--r-- | lib/oeqa/selftest/cases/updater_qemux86_64.py | 54 |
3 files changed, 33 insertions, 62 deletions
diff --git a/lib/oeqa/selftest/cases/testutils.py b/lib/oeqa/selftest/cases/testutils.py index d381d7d..90ba653 100644 --- a/lib/oeqa/selftest/cases/testutils.py +++ b/lib/oeqa/selftest/cases/testutils.py | |||
| @@ -81,16 +81,42 @@ def akt_native_run(testInst, cmd, **kwargs): | |||
| 81 | testInst.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output) | 81 | testInst.assertEqual(result.status, 0, "Status not equal to 0. output: %s" % result.output) |
| 82 | 82 | ||
| 83 | 83 | ||
| 84 | def verifyNotProvisioned(testInst, machine): | ||
| 85 | print('Checking output of aktualizr-info:') | ||
| 86 | ran_ok = False | ||
| 87 | for delay in [5, 5, 5, 5, 10, 10, 10, 10]: | ||
| 88 | stdout, stderr, retcode = testInst.qemu_command('aktualizr-info') | ||
| 89 | if retcode == 0 and stderr == b'': | ||
| 90 | ran_ok = True | ||
| 91 | break | ||
| 92 | sleep(delay) | ||
| 93 | testInst.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) | ||
| 94 | |||
| 95 | # Verify that device has NOT yet provisioned. | ||
| 96 | testInst.assertIn(b'Couldn\'t load device ID', stdout, | ||
| 97 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 98 | testInst.assertIn(b'Couldn\'t load ECU serials', stdout, | ||
| 99 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 100 | testInst.assertIn(b'Provisioned on server: no', stdout, | ||
| 101 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 102 | testInst.assertIn(b'Fetched metadata: no', stdout, | ||
| 103 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 104 | |||
| 105 | |||
| 84 | def verifyProvisioned(testInst, machine): | 106 | def verifyProvisioned(testInst, machine): |
| 85 | # Verify that device HAS provisioned. | 107 | # Verify that device HAS provisioned. |
| 108 | ran_ok = False | ||
| 86 | for delay in [5, 5, 5, 5, 10, 10, 10, 10]: | 109 | for delay in [5, 5, 5, 5, 10, 10, 10, 10]: |
| 87 | stdout, stderr, retcode = testInst.qemu_command('aktualizr-info') | 110 | stdout, stderr, retcode = testInst.qemu_command('aktualizr-info') |
| 88 | if retcode == 0 and stderr == b'' and stdout.decode().find('Fetched metadata: yes') >= 0: | 111 | if retcode == 0 and stderr == b'' and stdout.decode().find('Fetched metadata: yes') >= 0: |
| 112 | ran_ok = True | ||
| 89 | break | 113 | break |
| 90 | sleep(delay) | 114 | sleep(delay) |
| 115 | testInst.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) | ||
| 116 | |||
| 91 | testInst.assertIn(b'Device ID: ', stdout, 'Provisioning failed: ' + stderr.decode() + stdout.decode()) | 117 | testInst.assertIn(b'Device ID: ', stdout, 'Provisioning failed: ' + stderr.decode() + stdout.decode()) |
| 92 | testInst.assertIn(b'Primary ecu hardware ID: ' + machine.encode(), stdout, | 118 | testInst.assertIn(b'Primary ecu hardware ID: ' + machine.encode(), stdout, |
| 93 | 'Provisioning failed: ' + stderr.decode() + stdout.decode()) | 119 | 'Provisioning failed: ' + stderr.decode() + stdout.decode()) |
| 94 | testInst.assertIn(b'Fetched metadata: yes', stdout, 'Provisioning failed: ' + stderr.decode() + stdout.decode()) | 120 | testInst.assertIn(b'Fetched metadata: yes', stdout, 'Provisioning failed: ' + stderr.decode() + stdout.decode()) |
| 95 | p = re.compile(r'Device ID: ([a-z0-9-]*)\n') | 121 | p = re.compile(r'Device ID: ([a-z0-9-]*)\n') |
| 96 | m = p.search(stdout.decode()) | 122 | m = p.search(stdout.decode()) |
diff --git a/lib/oeqa/selftest/cases/updater_minnowboard.py b/lib/oeqa/selftest/cases/updater_minnowboard.py index 97b2a86..f5df584 100644 --- a/lib/oeqa/selftest/cases/updater_minnowboard.py +++ b/lib/oeqa/selftest/cases/updater_minnowboard.py | |||
| @@ -1,9 +1,8 @@ | |||
| 1 | import os | 1 | import os |
| 2 | import re | 2 | import re |
| 3 | from time import sleep | ||
| 4 | 3 | ||
| 5 | from oeqa.selftest.case import OESelftestTestCase | 4 | from oeqa.selftest.case import OESelftestTestCase |
| 6 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var | 5 | from oeqa.utils.commands import runCmd, get_bb_var |
| 7 | from testutils import qemu_launch, qemu_send_command, qemu_terminate, verifyProvisioned | 6 | from testutils import qemu_launch, qemu_send_command, qemu_terminate, verifyProvisioned |
| 8 | 7 | ||
| 9 | 8 | ||
| @@ -55,16 +54,6 @@ class MinnowTests(OESelftestTestCase): | |||
| 55 | self.assertEqual(value, machine, | 54 | self.assertEqual(value, machine, |
| 56 | 'MACHINE does not match hostname: ' + machine + ', ' + value + | 55 | 'MACHINE does not match hostname: ' + machine + ', ' + value + |
| 57 | '\nIs TianoCore ovmf installed on your host machine?') | 56 | '\nIs TianoCore ovmf installed on your host machine?') |
| 58 | print(value) | ||
| 59 | print('Checking output of aktualizr-info:') | ||
| 60 | ran_ok = False | ||
| 61 | for delay in [1, 2, 5, 10, 15]: | ||
| 62 | stdout, stderr, retcode = self.qemu_command('aktualizr-info') | ||
| 63 | if retcode == 0 and stderr == b'': | ||
| 64 | ran_ok = True | ||
| 65 | break | ||
| 66 | sleep(delay) | ||
| 67 | self.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) | ||
| 68 | 57 | ||
| 69 | verifyProvisioned(self, machine) | 58 | verifyProvisioned(self, machine) |
| 70 | 59 | ||
diff --git a/lib/oeqa/selftest/cases/updater_qemux86_64.py b/lib/oeqa/selftest/cases/updater_qemux86_64.py index 0fac159..bef6cdc 100644 --- a/lib/oeqa/selftest/cases/updater_qemux86_64.py +++ b/lib/oeqa/selftest/cases/updater_qemux86_64.py | |||
| @@ -8,7 +8,7 @@ from time import sleep | |||
| 8 | from oeqa.selftest.case import OESelftestTestCase | 8 | from oeqa.selftest.case import OESelftestTestCase |
| 9 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars | 9 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars |
| 10 | from testutils import qemu_launch, qemu_send_command, qemu_terminate, \ | 10 | from testutils import qemu_launch, qemu_send_command, qemu_terminate, \ |
| 11 | akt_native_run, verifyProvisioned | 11 | akt_native_run, verifyNotProvisioned, verifyProvisioned |
| 12 | 12 | ||
| 13 | 13 | ||
| 14 | class GeneralTests(OESelftestTestCase): | 14 | class GeneralTests(OESelftestTestCase): |
| @@ -106,16 +106,6 @@ class AutoProvTests(OESelftestTestCase): | |||
| 106 | value = stdout.decode()[:-1] | 106 | value = stdout.decode()[:-1] |
| 107 | self.assertEqual(value, machine, | 107 | self.assertEqual(value, machine, |
| 108 | 'MACHINE does not match hostname: ' + machine + ', ' + value) | 108 | 'MACHINE does not match hostname: ' + machine + ', ' + value) |
| 109 | print(value) | ||
| 110 | print('Checking output of aktualizr-info:') | ||
| 111 | ran_ok = False | ||
| 112 | for delay in [1, 2, 5, 10, 15]: | ||
| 113 | stdout, stderr, retcode = self.qemu_command('aktualizr-info') | ||
| 114 | if retcode == 0 and stderr == b'': | ||
| 115 | ran_ok = True | ||
| 116 | break | ||
| 117 | sleep(delay) | ||
| 118 | self.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) | ||
| 119 | 109 | ||
| 120 | verifyProvisioned(self, machine) | 110 | verifyProvisioned(self, machine) |
| 121 | 111 | ||
| @@ -204,25 +194,8 @@ class ImplProvTests(OESelftestTestCase): | |||
| 204 | value = stdout.decode()[:-1] | 194 | value = stdout.decode()[:-1] |
| 205 | self.assertEqual(value, machine, | 195 | self.assertEqual(value, machine, |
| 206 | 'MACHINE does not match hostname: ' + machine + ', ' + value) | 196 | 'MACHINE does not match hostname: ' + machine + ', ' + value) |
| 207 | print(value) | 197 | |
| 208 | print('Checking output of aktualizr-info:') | 198 | verifyNotProvisioned(self, machine) |
| 209 | ran_ok = False | ||
| 210 | for delay in [1, 2, 5, 10, 15]: | ||
| 211 | stdout, stderr, retcode = self.qemu_command('aktualizr-info') | ||
| 212 | if retcode == 0 and stderr == b'': | ||
| 213 | ran_ok = True | ||
| 214 | break | ||
| 215 | sleep(delay) | ||
| 216 | self.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) | ||
| 217 | # Verify that device has NOT yet provisioned. | ||
| 218 | self.assertIn(b'Couldn\'t load device ID', stdout, | ||
| 219 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 220 | self.assertIn(b'Couldn\'t load ECU serials', stdout, | ||
| 221 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 222 | self.assertIn(b'Provisioned on server: no', stdout, | ||
| 223 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 224 | self.assertIn(b'Fetched metadata: no', stdout, | ||
| 225 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 226 | 199 | ||
| 227 | # Run aktualizr-cert-provider. | 200 | # Run aktualizr-cert-provider. |
| 228 | bb_vars = get_bb_vars(['SOTA_PACKED_CREDENTIALS'], 'aktualizr-native') | 201 | bb_vars = get_bb_vars(['SOTA_PACKED_CREDENTIALS'], 'aktualizr-native') |
| @@ -279,25 +252,8 @@ class HsmTests(OESelftestTestCase): | |||
| 279 | value = stdout.decode()[:-1] | 252 | value = stdout.decode()[:-1] |
| 280 | self.assertEqual(value, machine, | 253 | self.assertEqual(value, machine, |
| 281 | 'MACHINE does not match hostname: ' + machine + ', ' + value) | 254 | 'MACHINE does not match hostname: ' + machine + ', ' + value) |
| 282 | print(value) | 255 | |
| 283 | print('Checking output of aktualizr-info:') | 256 | verifyNotProvisioned(self, machine) |
| 284 | ran_ok = False | ||
| 285 | for delay in [1, 2, 5, 10, 15]: | ||
| 286 | stdout, stderr, retcode = self.qemu_command('aktualizr-info') | ||
| 287 | if retcode == 0 and stderr == b'': | ||
| 288 | ran_ok = True | ||
| 289 | break | ||
| 290 | sleep(delay) | ||
| 291 | self.assertTrue(ran_ok, 'aktualizr-info failed: ' + stderr.decode() + stdout.decode()) | ||
| 292 | # Verify that device has NOT yet provisioned. | ||
| 293 | self.assertIn(b'Couldn\'t load device ID', stdout, | ||
| 294 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 295 | self.assertIn(b'Couldn\'t load ECU serials', stdout, | ||
| 296 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 297 | self.assertIn(b'Provisioned on server: no', stdout, | ||
| 298 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 299 | self.assertIn(b'Fetched metadata: no', stdout, | ||
| 300 | 'Device already provisioned!? ' + stderr.decode() + stdout.decode()) | ||
| 301 | 257 | ||
| 302 | # Verify that HSM is not yet initialized. | 258 | # Verify that HSM is not yet initialized. |
| 303 | pkcs11_command = 'pkcs11-tool --module=/usr/lib/softhsm/libsofthsm2.so -O' | 259 | pkcs11_command = 'pkcs11-tool --module=/usr/lib/softhsm/libsofthsm2.so -O' |
