diff options
author | Patrick Vacek <patrickvacek@gmail.com> | 2017-11-07 17:34:13 +0100 |
---|---|---|
committer | Patrick Vacek <patrickvacek@gmail.com> | 2017-11-13 17:18:48 +0100 |
commit | 9d5ad230a7558ae9adea42ea69d633d489c6dec0 (patch) | |
tree | d9ea3ac3b86e98e826c833bb60aff84bcaa9d927 /lib | |
parent | 95e2f81a149142b67076a3132e1b00d9f64bd031 (diff) | |
download | meta-updater-9d5ad230a7558ae9adea42ea69d633d489c6dec0.tar.gz |
Rough draft of a run-qemu-ota test.
Not very useful yet. Could be made into a function for the purpose of
running arbitrary commands via SSH, for example. However, I had plenty
of trouble even getting this far.
Note that I created a softlink to qemucommand to get around the Python
path issues in oe-selftest. I'm not sure if there's a better way to
handle that, since manipulating the path is seemingly impossible.
Diffstat (limited to 'lib')
l--------- | lib/oeqa/selftest/qemucommand.py | 1 | ||||
-rw-r--r-- | lib/oeqa/selftest/updater.py | 33 |
2 files changed, 34 insertions, 0 deletions
diff --git a/lib/oeqa/selftest/qemucommand.py b/lib/oeqa/selftest/qemucommand.py new file mode 120000 index 0000000..bc06dde --- /dev/null +++ b/lib/oeqa/selftest/qemucommand.py | |||
@@ -0,0 +1 @@ | |||
../../../scripts/qemucommand.py \ No newline at end of file | |||
diff --git a/lib/oeqa/selftest/updater.py b/lib/oeqa/selftest/updater.py index e9048fd..4cdd1a2 100644 --- a/lib/oeqa/selftest/updater.py +++ b/lib/oeqa/selftest/updater.py | |||
@@ -4,6 +4,9 @@ import logging | |||
4 | 4 | ||
5 | from oeqa.selftest.base import oeSelfTest | 5 | from oeqa.selftest.base import oeSelfTest |
6 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var | 6 | from oeqa.utils.commands import runCmd, bitbake, get_bb_var |
7 | import subprocess | ||
8 | from oeqa.selftest.qemucommand import QemuCommand | ||
9 | import time | ||
7 | 10 | ||
8 | class UpdaterTests(oeSelfTest): | 11 | class UpdaterTests(oeSelfTest): |
9 | 12 | ||
@@ -39,3 +42,33 @@ class UpdaterTests(oeSelfTest): | |||
39 | def test_hsm(self): | 42 | def test_hsm(self): |
40 | self.write_config('SOTA_CLIENT_FEATURES="hsm hsm-test"') | 43 | self.write_config('SOTA_CLIENT_FEATURES="hsm hsm-test"') |
41 | bitbake('core-image-minimal') | 44 | bitbake('core-image-minimal') |
45 | |||
46 | def test_qemu(self): | ||
47 | print('') | ||
48 | # Create empty object. | ||
49 | args = type('', (), {})() | ||
50 | args.imagename = 'core-image-minimal' | ||
51 | args.mac = None | ||
52 | args.dir = 'tmp/deploy/images' | ||
53 | args.efi = False | ||
54 | args.machine = None | ||
55 | args.no_kvm = False | ||
56 | args.no_gui = True | ||
57 | args.gdb = False | ||
58 | args.pcap = None | ||
59 | args.overlay = None | ||
60 | args.dry_run = False | ||
61 | |||
62 | qemu_command = QemuCommand(args) | ||
63 | cmdline = qemu_command.command_line() | ||
64 | print('Booting image with run-qemu-ota...') | ||
65 | s = subprocess.Popen(cmdline) | ||
66 | time.sleep(10) | ||
67 | print('Machine name (hostname) of device is:') | ||
68 | ssh_cmd = ['ssh', '-q', '-o', 'UserKnownHostsFile=/dev/null', '-o', 'StrictHostKeyChecking=no', 'root@localhost', '-p', str(qemu_command.ssh_port), 'hostname'] | ||
69 | s2 = subprocess.Popen(ssh_cmd) | ||
70 | time.sleep(5) | ||
71 | try: | ||
72 | s.terminate() | ||
73 | except KeyboardInterrupt: | ||
74 | pass | ||