From 22539ccd7cf4d2f8b991844291f69a70a4d85bbd Mon Sep 17 00:00:00 2001 From: Mike Sul Date: Thu, 23 May 2019 15:38:42 +0300 Subject: OTA-2541: IP Secondary tests (oe-selftest) Signed-off-by: Mike Sul Signed-off-by: Patrick Vacek --- lib/oeqa/selftest/cases/testutils.py | 53 ++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 23 deletions(-) (limited to 'lib/oeqa/selftest/cases/testutils.py') diff --git a/lib/oeqa/selftest/cases/testutils.py b/lib/oeqa/selftest/cases/testutils.py index 2ad99ad..f8b1904 100644 --- a/lib/oeqa/selftest/cases/testutils.py +++ b/lib/oeqa/selftest/cases/testutils.py @@ -7,49 +7,57 @@ from time import sleep from oeqa.utils.commands import runCmd, bitbake, get_bb_var, get_bb_vars from qemucommand import QemuCommand +logger = logging.getLogger("selftest") -def qemu_launch(efi=False, machine=None, imagename=None): - logger = logging.getLogger("selftest") - if imagename is None: - imagename = 'core-image-minimal' - logger.info('Running bitbake to build {}'.format(imagename)) - bitbake(imagename) + +def qemu_launch(efi=False, machine=None, imagename='core-image-minimal', **kwargs): + qemu_bake_image(imagename) + return qemu_boot_image(efi=efi, machine=machine, imagename=imagename, **kwargs) + + +def qemu_terminate(s): + try: + s.terminate() + s.wait(timeout=10) + except KeyboardInterrupt: + pass + + +def qemu_boot_image(imagename, **kwargs): # Create empty object. args = type('', (), {})() args.imagename = imagename - args.mac = None + args.mac = kwargs.get('mac', None) # Could use DEPLOY_DIR_IMAGE here but it's already in the machine # subdirectory. args.dir = 'tmp/deploy/images' - args.efi = efi - args.machine = machine + args.efi = kwargs.get('efi', False) + args.machine = kwargs.get('machine', None) qemu_use_kvm = get_bb_var("QEMU_USE_KVM") if qemu_use_kvm and \ - (qemu_use_kvm == 'True' and 'x86' in machine or + (qemu_use_kvm == 'True' and 'x86' in args.machine or get_bb_var('MACHINE') in qemu_use_kvm.split()): args.kvm = True else: args.kvm = None # Autodetect - args.no_gui = True - args.gdb = False - args.pcap = None - args.overlay = None - args.dry_run = False - args.secondary_network = False + args.no_gui = kwargs.get('no_gui', True) + args.gdb = kwargs.get('gdb', False) + args.pcap = kwargs.get('pcap', None) + args.overlay = kwargs.get('overlay', None) + args.dry_run = kwargs.get('dry_run', False) + args.secondary_network = kwargs.get('secondary_network', False) qemu = QemuCommand(args) cmdline = qemu.command_line() print('Booting image with run-qemu-ota...') s = subprocess.Popen(cmdline) - sleep(10) + sleep(kwargs.get('wait_for_boot_time', 10)) return qemu, s -def qemu_terminate(s): - try: - s.terminate() - except KeyboardInterrupt: - pass +def qemu_bake_image(imagename): + logger.info('Running bitbake to build {}'.format(imagename)) + bitbake(imagename) def qemu_send_command(port, command, timeout=60): @@ -122,7 +130,6 @@ def verifyProvisioned(testInst, machine): m = p.search(stdout.decode()) testInst.assertTrue(m, 'Device ID could not be read: ' + stderr.decode() + stdout.decode()) testInst.assertGreater(m.lastindex, 0, 'Device ID could not be read: ' + stderr.decode() + stdout.decode()) - logger = logging.getLogger("selftest") logger.info('Device successfully provisioned with ID: ' + m.group(1)) # vim:set ts=4 sw=4 sts=4 expandtab: -- cgit v1.2.3-54-g00ecf