From: Anton Mikanovich <amikan@ilbers.de>
To: isar-users@googlegroups.com
Cc: Roman Pletnev <rpletnev@ilbers.de>, Anton Mikanovich <amikan@ilbers.de>
Subject: [PATCH v10 02/17] start_vm.py: Add output and PID file vm_start.py options
Date: Fri, 30 Jul 2021 11:27:24 +0300 [thread overview]
Message-ID: <20210730082739.15042-3-amikan@ilbers.de> (raw)
In-Reply-To: <20210730082739.15042-1-amikan@ilbers.de>
From: Roman Pletnev <rpletnev@ilbers.de>
This patch adds options -o (output file) and -p (pid file).
Implement virtual machine log output both to the file and stdout.
Signed-off-by: Roman Pletnev <rpletnev@ilbers.de>
Signed-off-by: Anton Mikanovich <amikan@ilbers.de>
---
testsuite/start_vm.py | 18 ++++++++++++++----
testsuite/vm_boot_test/vm_boot_test.py | 5 ++---
2 files changed, 16 insertions(+), 7 deletions(-)
diff --git a/testsuite/start_vm.py b/testsuite/start_vm.py
index c10db67..3736e51 100755
--- a/testsuite/start_vm.py
+++ b/testsuite/start_vm.py
@@ -21,7 +21,7 @@ def get_bitbake_var(output, var):
ret = line.split('"')[1]
return ret
-def format_qemu_cmdline(arch, build, distro):
+def format_qemu_cmdline(arch, build, distro, out, pid):
bb_output = get_bitbake_env(arch, distro).decode()
rootfs_image = ''
@@ -57,6 +57,13 @@ def format_qemu_cmdline(arch, build, distro):
qemu_cpu = get_bitbake_var(bb_output, 'QEMU_CPU')
qemu_disk_args = get_bitbake_var(bb_output, 'QEMU_DISK_ARGS')
+ if out:
+ extra_args.extend(['-chardev','stdio,id=ch0,logfile=' + out])
+ extra_args.extend(['-serial','chardev:ch0'])
+ extra_args.extend(['-monitor','none'])
+ if pid:
+ extra_args.extend(['-pidfile', pid])
+
qemu_disk_args = qemu_disk_args.replace('##ROOTFS_IMAGE##', deploy_dir_image + '/' + rootfs_image).split()
cmd = ['qemu-system-' + qemu_arch, '-m', '1024M']
@@ -72,10 +79,11 @@ def format_qemu_cmdline(arch, build, distro):
return cmd
-def start_qemu(arch, build, distro):
- cmdline = format_qemu_cmdline(arch, build, distro)
+def start_qemu(arch, build, distro, out, pid):
+ cmdline = format_qemu_cmdline(arch, build, distro, out, pid)
cmdline.insert(1, '-nographic')
+ print(cmdline)
p1 = subprocess.call(cmdline)
if __name__ == "__main__":
@@ -83,6 +91,8 @@ if __name__ == "__main__":
parser.add_argument('-a', '--arch', choices=['arm', 'arm64', 'amd64', 'i386'], help='set isar machine architecture.', default='arm')
parser.add_argument('-b', '--build', help='set path to build directory.', default=os.getcwd())
parser.add_argument('-d', '--distro', choices=['jessie', 'stretch'], help='set isar Debian distribution.', default='stretch')
+ parser.add_argument('-o', '--out', help='Route QEMU console output to specified file.')
+ parser.add_argument('-p', '--pid', help='Store QEMU pid to specified file.')
args = parser.parse_args()
- start_qemu(args.arch, args.build, args.distro)
+ start_qemu(args.arch, args.build, args.distro, args.out, args.pid)
diff --git a/testsuite/vm_boot_test/vm_boot_test.py b/testsuite/vm_boot_test/vm_boot_test.py
index d4849c7..96e02f7 100644
--- a/testsuite/vm_boot_test/vm_boot_test.py
+++ b/testsuite/vm_boot_test/vm_boot_test.py
@@ -30,10 +30,9 @@ class VmBootTest(Test):
if os.path.exists(output_file):
os.remove(output_file)
- cmdline = start_vm.format_qemu_cmdline(arch, build_dir, distro)
+ cmdline = start_vm.format_qemu_cmdline(arch, build_dir, distro,
+ output_file, None)
cmdline.insert(1, '-nographic')
- cmdline.append('-serial')
- cmdline.append('file:' + output_file)
self.log.info('QEMU boot line: ' + str(cmdline))
--
2.25.1
next prev parent reply other threads:[~2021-07-30 8:27 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-07-30 8:27 [PATCH v10 00/17] Update Avocado testsuite Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 01/17] start_vm.py: Fix target name handling Anton Mikanovich
2021-07-30 8:27 ` Anton Mikanovich [this message]
2021-07-30 8:27 ` [PATCH v10 03/17] start_vm.py: Add MIPS support Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 04/17] start_vm.py: Fix ubuntu image name Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 05/17] vm_boot_test: Fix log file path in vm_boot_test Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 06/17] vm_boot_test: Remove external varianter Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 07/17] vm_boot_test: Improve QEMU images checking Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 08/17] build_test: Refactoring build tests cases Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 09/17] testsuite: Add Python generations for testsuite in gitignore Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 10/17] testsuite: Fix test suite prepare guide Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 11/17] gitlab-ci: Add Avocado build artifacts Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 12/17] gitlab-ci: Add debug flag Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 13/17] vm_boot_test: Add automatic bitbake init Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 14/17] build_test: Protect ubuntu target with KFAIL Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 15/17] ci_build: Migrate to Avocado Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 16/17] vm_smoke_test: " Anton Mikanovich
2021-07-30 8:27 ` [PATCH v10 17/17] ci_build: Install Avocado if needed Anton Mikanovich
2021-08-12 15:58 ` Henning Schild
2021-09-16 14:11 ` Baurzhan Ismagulov
2021-08-12 16:13 ` [PATCH v10 00/17] Update Avocado testsuite Henning Schild
2021-08-12 16:19 ` Henning Schild
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210730082739.15042-3-amikan@ilbers.de \
--to=amikan@ilbers.de \
--cc=isar-users@googlegroups.com \
--cc=rpletnev@ilbers.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox