diff options
author | Phil Wise <phil@advancedtelematic.com> | 2018-03-14 11:44:26 +0100 |
---|---|---|
committer | Phil Wise <phil@advancedtelematic.com> | 2018-03-14 16:00:09 +0100 |
commit | bbce1809a921e627678947e9585ea15223b181d9 (patch) | |
tree | c30b514d0ef05e5e1c915140bb0efa07f9b7057c /lib | |
parent | f1fd04ac20d778bed88727571359b4cf39e481c1 (diff) | |
download | meta-updater-bbce1809a921e627678947e9585ea15223b181d9.tar.gz |
Add secondary-image to meta-updater
This required splitting the aktualizr package into several components, in order
to be able to either install the primary 'aktualzr' or the secondary
'aktualizr-secondary'.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/oeqa/selftest/cases/updater.py | 45 |
1 files changed, 43 insertions, 2 deletions
diff --git a/lib/oeqa/selftest/cases/updater.py b/lib/oeqa/selftest/cases/updater.py index adb4061..a5072e8 100644 --- a/lib/oeqa/selftest/cases/updater.py +++ b/lib/oeqa/selftest/cases/updater.py | |||
@@ -504,14 +504,55 @@ class HsmTests(OESelftestTestCase): | |||
504 | 504 | ||
505 | verifyProvisioned(self, machine) | 505 | verifyProvisioned(self, machine) |
506 | 506 | ||
507 | class SecondaryTests(OESelftestTestCase): | ||
508 | @classmethod | ||
509 | def setUpClass(cls): | ||
510 | super(SecondaryTests, cls).setUpClass() | ||
511 | logger = logging.getLogger("selftest") | ||
512 | logger.info('Running bitbake to build secondary-image') | ||
513 | bitbake('secondary-image') | ||
514 | |||
515 | def setUpLocal(self): | ||
516 | layer = "meta-updater-qemux86-64" | ||
517 | result = runCmd('bitbake-layers show-layers') | ||
518 | if re.search(layer, result.output) is None: | ||
519 | # Assume the directory layout for finding other layers. We could also | ||
520 | # make assumptions by using 'show-layers', but either way, if the | ||
521 | # layers we need aren't where we expect them, we are out of like. | ||
522 | path = os.path.abspath(os.path.dirname(__file__)) | ||
523 | metadir = path + "/../../../../../" | ||
524 | self.meta_qemu = metadir + layer | ||
525 | runCmd('bitbake-layers add-layer "%s"' % self.meta_qemu) | ||
526 | else: | ||
527 | self.meta_qemu = None | ||
528 | self.append_config('MACHINE = "qemux86-64"') | ||
529 | self.append_config('SOTA_CLIENT_PROV = " aktualizr-auto-prov "') | ||
530 | self.qemu, self.s = qemu_launch(machine='qemux86-64', imagename='secondary-image') | ||
531 | |||
532 | def tearDownLocal(self): | ||
533 | qemu_terminate(self.s) | ||
534 | if self.meta_qemu: | ||
535 | runCmd('bitbake-layers remove-layer "%s"' % self.meta_qemu, ignore_status=True) | ||
536 | |||
537 | def qemu_command(self, command): | ||
538 | return qemu_send_command(self.qemu.ssh_port, command) | ||
539 | |||
540 | def test_secondary_present(self): | ||
541 | print('Checking aktualizr-secondary is present') | ||
542 | stdout, stderr, retcode = self.qemu_command('aktualizr-secondary --help') | ||
543 | self.assertEqual(retcode, 0, "Unable to run aktualizr-secondary --help") | ||
544 | self.assertEqual(stderr, b'', 'Error: ' + stderr.decode()) | ||
507 | 545 | ||
508 | def qemu_launch(efi=False, machine=None): | 546 | def qemu_launch(efi=False, machine=None, imagename=None): |
509 | logger = logging.getLogger("selftest") | 547 | logger = logging.getLogger("selftest") |
510 | logger.info('Running bitbake to build core-image-minimal') | 548 | logger.info('Running bitbake to build core-image-minimal') |
511 | bitbake('core-image-minimal') | 549 | bitbake('core-image-minimal') |
512 | # Create empty object. | 550 | # Create empty object. |
513 | args = type('', (), {})() | 551 | args = type('', (), {})() |
514 | args.imagename = 'core-image-minimal' | 552 | if imagename: |
553 | args.imagename = imagename | ||
554 | else: | ||
555 | args.imagename = 'core-image-minimal' | ||
515 | args.mac = None | 556 | args.mac = None |
516 | # Could use DEPLOY_DIR_IMAGE here but it's already in the machine | 557 | # Could use DEPLOY_DIR_IMAGE here but it's already in the machine |
517 | # subdirectory. | 558 | # subdirectory. |