* [PULL 00/14] Testing and misc patches
@ 2022-07-05 10:38 Thomas Huth
2022-07-05 16:43 ` Richard Henderson
0 siblings, 1 reply; 18+ messages in thread
From: Thomas Huth @ 2022-07-05 10:38 UTC (permalink / raw)
To: qemu-devel, Richard Henderson
Hi Richard!
The following changes since commit dfe2382f0641f537fdd33399d579215077c8f68c:
Merge tag 'kraxel-20220704-pull-request' of https://gitlab.com/kraxel/qemu into staging (2022-07-04 14:57:21 +0530)
are available in the Git repository at:
https://gitlab.com/thuth/qemu.git tags/pull-request-2022-07-05
for you to fetch changes up to 7a890b756620223f35f8056baddf0406526ae025:
include/qemu/host-utils: Remove unused code in the *_overflow wrappers (2022-07-05 10:15:49 +0200)
----------------------------------------------------------------
* Fix memory leak in test-cutils
* Fix edk2/opensbi jobs to not run automatically by accident
* Improve timings in the migration qtest
* Remove libvixl disassembler
* Add ukrainian translation
* Require a recent version of libpng
----------------------------------------------------------------
Andrij Mizyk (1):
po: add ukrainian translation
Daniel P. Berrangé (7):
gitlab: normalize indentation in edk2/opensbi rules
gitlab: tweak comments in edk2/opensbi jobs
gitlab: honour QEMU_CI variable in edk2/opensbi jobs
tests: wait max 120 seconds for migration test status changes
tests: wait for migration completion before looking for STOP event
tests: increase migration test converge downtime to 30 seconds
tests: use consistent bandwidth/downtime limits in migration tests
Marc-André Lureau (1):
tests: fix test-cutils leaks
Philippe Mathieu-Daudé (1):
tests/fp: Do not build softfloat3 tests if TCG is disabled
Richard Henderson (1):
gitlab-ci: Extend timeout for ubuntu-20.04-s390x-all to 75m
Thomas Huth (3):
disas: Remove libvixl disassembler
meson.build: Require a recent version of libpng
include/qemu/host-utils: Remove unused code in the *_overflow wrappers
meson.build | 6 +-
disas/libvixl/vixl/a64/assembler-a64.h | 4624 -----------------
disas/libvixl/vixl/a64/constants-a64.h | 2116 --------
disas/libvixl/vixl/a64/cpu-a64.h | 83 -
disas/libvixl/vixl/a64/decoder-a64.h | 275 -
disas/libvixl/vixl/a64/disasm-a64.h | 177 -
disas/libvixl/vixl/a64/instructions-a64.h | 757 ---
disas/libvixl/vixl/code-buffer.h | 113 -
disas/libvixl/vixl/compiler-intrinsics.h | 155 -
disas/libvixl/vixl/globals.h | 155 -
disas/libvixl/vixl/invalset.h | 775 ---
disas/libvixl/vixl/platform.h | 39 -
disas/libvixl/vixl/utils.h | 286 -
include/exec/poison.h | 2 -
include/qemu/host-utils.h | 65 -
disas.c | 3 -
target/arm/cpu.c | 7 -
tests/qtest/migration-helpers.c | 14 +
tests/qtest/migration-test.c | 59 +-
tests/unit/test-cutils.c | 42 +-
.../custom-runners/ubuntu-20.04-s390x.yml | 1 +
.gitlab-ci.d/edk2.yml | 133 +-
.gitlab-ci.d/opensbi.yml | 134 +-
MAINTAINERS | 4 -
disas/arm-a64.cc | 101 -
disas/libvixl/LICENCE | 30 -
disas/libvixl/README | 11 -
disas/libvixl/meson.build | 7 -
disas/libvixl/vixl/a64/decoder-a64.cc | 877 ----
disas/libvixl/vixl/a64/disasm-a64.cc | 3495 -------------
disas/libvixl/vixl/a64/instructions-a64.cc | 622 ---
disas/libvixl/vixl/compiler-intrinsics.cc | 144 -
disas/libvixl/vixl/utils.cc | 142 -
disas/meson.build | 5 -
po/LINGUAS | 1 +
po/uk.po | 75 +
scripts/clean-header-guards.pl | 4 +-
scripts/clean-includes | 2 +-
scripts/coverity-scan/COMPONENTS.md | 3 -
tests/fp/meson.build | 3 +
40 files changed, 314 insertions(+), 15233 deletions(-)
delete mode 100644 disas/libvixl/vixl/a64/assembler-a64.h
delete mode 100644 disas/libvixl/vixl/a64/constants-a64.h
delete mode 100644 disas/libvixl/vixl/a64/cpu-a64.h
delete mode 100644 disas/libvixl/vixl/a64/decoder-a64.h
delete mode 100644 disas/libvixl/vixl/a64/disasm-a64.h
delete mode 100644 disas/libvixl/vixl/a64/instructions-a64.h
delete mode 100644 disas/libvixl/vixl/code-buffer.h
delete mode 100644 disas/libvixl/vixl/compiler-intrinsics.h
delete mode 100644 disas/libvixl/vixl/globals.h
delete mode 100644 disas/libvixl/vixl/invalset.h
delete mode 100644 disas/libvixl/vixl/platform.h
delete mode 100644 disas/libvixl/vixl/utils.h
delete mode 100644 disas/arm-a64.cc
delete mode 100644 disas/libvixl/LICENCE
delete mode 100644 disas/libvixl/README
delete mode 100644 disas/libvixl/meson.build
delete mode 100644 disas/libvixl/vixl/a64/decoder-a64.cc
delete mode 100644 disas/libvixl/vixl/a64/disasm-a64.cc
delete mode 100644 disas/libvixl/vixl/a64/instructions-a64.cc
delete mode 100644 disas/libvixl/vixl/compiler-intrinsics.cc
delete mode 100644 disas/libvixl/vixl/utils.cc
create mode 100644 po/uk.po
--
2.31.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: [PULL 00/14] Testing and misc patches
2022-07-05 10:38 Thomas Huth
@ 2022-07-05 16:43 ` Richard Henderson
0 siblings, 0 replies; 18+ messages in thread
From: Richard Henderson @ 2022-07-05 16:43 UTC (permalink / raw)
To: Thomas Huth, qemu-devel
On 7/5/22 16:08, Thomas Huth wrote:
> Hi Richard!
>
> The following changes since commit dfe2382f0641f537fdd33399d579215077c8f68c:
>
> Merge tag 'kraxel-20220704-pull-request' of https://gitlab.com/kraxel/qemu into staging (2022-07-04 14:57:21 +0530)
>
> are available in the Git repository at:
>
> https://gitlab.com/thuth/qemu.git tags/pull-request-2022-07-05
>
> for you to fetch changes up to 7a890b756620223f35f8056baddf0406526ae025:
>
> include/qemu/host-utils: Remove unused code in the *_overflow wrappers (2022-07-05 10:15:49 +0200)
>
> ----------------------------------------------------------------
> * Fix memory leak in test-cutils
> * Fix edk2/opensbi jobs to not run automatically by accident
> * Improve timings in the migration qtest
> * Remove libvixl disassembler
> * Add ukrainian translation
> * Require a recent version of libpng
Applied, thanks. Please update https://wiki.qemu.org/ChangeLog/7.1 as appropriate.
r~
>
> ----------------------------------------------------------------
>
> Andrij Mizyk (1):
> po: add ukrainian translation
>
> Daniel P. Berrangé (7):
> gitlab: normalize indentation in edk2/opensbi rules
> gitlab: tweak comments in edk2/opensbi jobs
> gitlab: honour QEMU_CI variable in edk2/opensbi jobs
> tests: wait max 120 seconds for migration test status changes
> tests: wait for migration completion before looking for STOP event
> tests: increase migration test converge downtime to 30 seconds
> tests: use consistent bandwidth/downtime limits in migration tests
>
> Marc-André Lureau (1):
> tests: fix test-cutils leaks
>
> Philippe Mathieu-Daudé (1):
> tests/fp: Do not build softfloat3 tests if TCG is disabled
>
> Richard Henderson (1):
> gitlab-ci: Extend timeout for ubuntu-20.04-s390x-all to 75m
>
> Thomas Huth (3):
> disas: Remove libvixl disassembler
> meson.build: Require a recent version of libpng
> include/qemu/host-utils: Remove unused code in the *_overflow wrappers
>
> meson.build | 6 +-
> disas/libvixl/vixl/a64/assembler-a64.h | 4624 -----------------
> disas/libvixl/vixl/a64/constants-a64.h | 2116 --------
> disas/libvixl/vixl/a64/cpu-a64.h | 83 -
> disas/libvixl/vixl/a64/decoder-a64.h | 275 -
> disas/libvixl/vixl/a64/disasm-a64.h | 177 -
> disas/libvixl/vixl/a64/instructions-a64.h | 757 ---
> disas/libvixl/vixl/code-buffer.h | 113 -
> disas/libvixl/vixl/compiler-intrinsics.h | 155 -
> disas/libvixl/vixl/globals.h | 155 -
> disas/libvixl/vixl/invalset.h | 775 ---
> disas/libvixl/vixl/platform.h | 39 -
> disas/libvixl/vixl/utils.h | 286 -
> include/exec/poison.h | 2 -
> include/qemu/host-utils.h | 65 -
> disas.c | 3 -
> target/arm/cpu.c | 7 -
> tests/qtest/migration-helpers.c | 14 +
> tests/qtest/migration-test.c | 59 +-
> tests/unit/test-cutils.c | 42 +-
> .../custom-runners/ubuntu-20.04-s390x.yml | 1 +
> .gitlab-ci.d/edk2.yml | 133 +-
> .gitlab-ci.d/opensbi.yml | 134 +-
> MAINTAINERS | 4 -
> disas/arm-a64.cc | 101 -
> disas/libvixl/LICENCE | 30 -
> disas/libvixl/README | 11 -
> disas/libvixl/meson.build | 7 -
> disas/libvixl/vixl/a64/decoder-a64.cc | 877 ----
> disas/libvixl/vixl/a64/disasm-a64.cc | 3495 -------------
> disas/libvixl/vixl/a64/instructions-a64.cc | 622 ---
> disas/libvixl/vixl/compiler-intrinsics.cc | 144 -
> disas/libvixl/vixl/utils.cc | 142 -
> disas/meson.build | 5 -
> po/LINGUAS | 1 +
> po/uk.po | 75 +
> scripts/clean-header-guards.pl | 4 +-
> scripts/clean-includes | 2 +-
> scripts/coverity-scan/COMPONENTS.md | 3 -
> tests/fp/meson.build | 3 +
> 40 files changed, 314 insertions(+), 15233 deletions(-)
> delete mode 100644 disas/libvixl/vixl/a64/assembler-a64.h
> delete mode 100644 disas/libvixl/vixl/a64/constants-a64.h
> delete mode 100644 disas/libvixl/vixl/a64/cpu-a64.h
> delete mode 100644 disas/libvixl/vixl/a64/decoder-a64.h
> delete mode 100644 disas/libvixl/vixl/a64/disasm-a64.h
> delete mode 100644 disas/libvixl/vixl/a64/instructions-a64.h
> delete mode 100644 disas/libvixl/vixl/code-buffer.h
> delete mode 100644 disas/libvixl/vixl/compiler-intrinsics.h
> delete mode 100644 disas/libvixl/vixl/globals.h
> delete mode 100644 disas/libvixl/vixl/invalset.h
> delete mode 100644 disas/libvixl/vixl/platform.h
> delete mode 100644 disas/libvixl/vixl/utils.h
> delete mode 100644 disas/arm-a64.cc
> delete mode 100644 disas/libvixl/LICENCE
> delete mode 100644 disas/libvixl/README
> delete mode 100644 disas/libvixl/meson.build
> delete mode 100644 disas/libvixl/vixl/a64/decoder-a64.cc
> delete mode 100644 disas/libvixl/vixl/a64/disasm-a64.cc
> delete mode 100644 disas/libvixl/vixl/a64/instructions-a64.cc
> delete mode 100644 disas/libvixl/vixl/compiler-intrinsics.cc
> delete mode 100644 disas/libvixl/vixl/utils.cc
> create mode 100644 po/uk.po
>
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 00/14] Testing and misc patches
@ 2022-07-19 7:03 Thomas Huth
2022-07-19 7:03 ` [PULL 01/14] qga: treat get-guest-fsinfo as "best effort" Thomas Huth
` (14 more replies)
0 siblings, 15 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:03 UTC (permalink / raw)
To: qemu-devel; +Cc: Richard Henderson, Peter Maydell
Hi!
The following changes since commit 782378973121addeb11b13fd12a6ac2e69faa33f:
Merge tag 'pull-target-arm-20220718' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2022-07-18 16:29:32 +0100)
are available in the Git repository at:
https://gitlab.com/thuth/qemu.git tags/pull-request-2022-07-19
for you to fetch changes up to 9b0ecfaba5920ddf8601d7b31746a428aa3779c6:
python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct type (2022-07-18 20:28:06 +0200)
----------------------------------------------------------------
* Clean up tests/vm (remove obsolte VMs, upgrade Ubuntu 18.04 to 20.04 etc.)
* Fix broken build on Haiku
* Replace the term 'whitelist' in some files with a better one
* Some other minor test related fixes
----------------------------------------------------------------
John Snow (9):
qga: treat get-guest-fsinfo as "best effort"
tests/vm: use 'cp' instead of 'ln' for temporary vm images
tests/vm: switch CentOS 8 to CentOS 8 Stream
tests/vm: switch centos.aarch64 to CentOS 8 Stream
tests/vm: upgrade Ubuntu 18.04 VM to 20.04
tests/vm: remove ubuntu.i386 VM test
tests/vm: remove duplicate 'centos' VM test
tests/vm: add 1GB extra memory per core
tests/vm: Remove docker cross-compile test from CentOS VM
Philippe Mathieu-Daudé (1):
tests/unit: Replace g_memdup() by g_memdup2()
Song Gao (1):
qtest/machine-none: Add LoongArch support
Thomas Huth (3):
Replace 'whitelist' with 'allow'
util: Fix broken build on Haiku
python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct
type
docs/devel/submitting-a-patch.rst | 2 +-
docs/tools/qemu-nbd.rst | 2 +-
qga/commands-posix.c | 10 +-
tests/qtest/machine-none-test.c | 1 +
tests/unit/ptimer-test.c | 22 ++--
tests/unit/test-iov.c | 26 ++---
util/cutils.c | 4 +
util/oslib-posix.c | 4 -
python/qemu/qmp/legacy.py | 2 +-
scripts/vmstate-static-checker.py | 2 +-
tests/vm/Makefile.include | 5 +-
tests/vm/basevm.py | 5 +
tests/vm/centos | 9 +-
tests/vm/centos.aarch64 | 174 +++++-------------------------
tests/vm/ubuntu.aarch64 | 10 +-
tests/vm/ubuntu.i386 | 40 -------
16 files changed, 84 insertions(+), 234 deletions(-)
delete mode 100755 tests/vm/ubuntu.i386
--
2.31.1
^ permalink raw reply [flat|nested] 18+ messages in thread
* [PULL 01/14] qga: treat get-guest-fsinfo as "best effort"
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
@ 2022-07-19 7:03 ` Thomas Huth
2022-07-19 7:04 ` [PULL 02/14] tests/vm: use 'cp' instead of 'ln' for temporary vm images Thomas Huth
` (13 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:03 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Marc-André Lureau
From: John Snow <jsnow@redhat.com>
In some container environments, there may be references to block devices
witnessable from a container through /proc/self/mountinfo that reference
devices we simply don't have access to in the container, and cannot
provide information about.
Instead of failing the entire fsinfo command, return stub information
for these failed lookups.
This allows test-qga to pass under docker tests, which are in turn used
by the CentOS VM tests.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Message-Id: <20220708153503.18864-2-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
qga/commands-posix.c | 10 +++++++++-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/qga/commands-posix.c b/qga/commands-posix.c
index f18530d85f..954efed01b 100644
--- a/qga/commands-posix.c
+++ b/qga/commands-posix.c
@@ -1207,7 +1207,15 @@ static void build_guest_fsinfo_for_device(char const *devpath,
syspath = realpath(devpath, NULL);
if (!syspath) {
- error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+ if (errno != ENOENT) {
+ error_setg_errno(errp, errno, "realpath(\"%s\")", devpath);
+ return;
+ }
+
+ /* ENOENT: This devpath may not exist because of container config */
+ if (!fs->name) {
+ fs->name = g_path_get_basename(devpath);
+ }
return;
}
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 02/14] tests/vm: use 'cp' instead of 'ln' for temporary vm images
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
2022-07-19 7:03 ` [PULL 01/14] qga: treat get-guest-fsinfo as "best effort" Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 03/14] tests/vm: switch CentOS 8 to CentOS 8 Stream Thomas Huth
` (12 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
If the initial setup fails, you've permanently altered the state of the
downloaded image in an unknowable way. Use 'cp' like our other test
setup scripts do.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-3-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/centos | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/vm/centos b/tests/vm/centos
index 5c7bc1c1a9..be4f6ff2f1 100755
--- a/tests/vm/centos
+++ b/tests/vm/centos
@@ -34,7 +34,7 @@ class CentosVM(basevm.BaseVM):
def build_image(self, img):
cimg = self._download_with_cache("https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.3.2011-20201204.2.x86_64.qcow2")
img_tmp = img + ".tmp"
- subprocess.check_call(["ln", "-f", cimg, img_tmp])
+ subprocess.check_call(['cp', '-f', cimg, img_tmp])
self.exec_qemu_img("resize", img_tmp, "50G")
self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
self.wait_ssh()
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 03/14] tests/vm: switch CentOS 8 to CentOS 8 Stream
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
2022-07-19 7:03 ` [PULL 01/14] qga: treat get-guest-fsinfo as "best effort" Thomas Huth
2022-07-19 7:04 ` [PULL 02/14] tests/vm: use 'cp' instead of 'ln' for temporary vm images Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 04/14] tests/vm: switch centos.aarch64 " Thomas Huth
` (11 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
The old CentOS image didn't work anymore because it was already EOL at
the beginning of 2022.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-4-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/centos | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests/vm/centos b/tests/vm/centos
index be4f6ff2f1..3a527c47b3 100755
--- a/tests/vm/centos
+++ b/tests/vm/centos
@@ -1,8 +1,8 @@
#!/usr/bin/env python3
#
-# CentOS image
+# CentOS 8 Stream image
#
-# Copyright 2018 Red Hat Inc.
+# Copyright 2018, 2022 Red Hat Inc.
#
# Authors:
# Fam Zheng <famz@redhat.com>
@@ -32,7 +32,7 @@ class CentosVM(basevm.BaseVM):
"""
def build_image(self, img):
- cimg = self._download_with_cache("https://cloud.centos.org/centos/8/x86_64/images/CentOS-8-GenericCloud-8.3.2011-20201204.2.x86_64.qcow2")
+ cimg = self._download_with_cache("https://cloud.centos.org/centos/8-stream/x86_64/images/CentOS-Stream-GenericCloud-8-20220125.1.x86_64.qcow2")
img_tmp = img + ".tmp"
subprocess.check_call(['cp', '-f', cimg, img_tmp])
self.exec_qemu_img("resize", img_tmp, "50G")
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 04/14] tests/vm: switch centos.aarch64 to CentOS 8 Stream
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (2 preceding siblings ...)
2022-07-19 7:04 ` [PULL 03/14] tests/vm: switch CentOS 8 to CentOS 8 Stream Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 05/14] tests/vm: upgrade Ubuntu 18.04 VM to 20.04 Thomas Huth
` (10 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
Switch this test over to using a cloud image like the base CentOS8 VM
test, which helps make this script a bit simpler too.
Note: At time of writing, this test seems pretty flaky when run without
KVM support for aarch64. Certain unit tests like migration-test,
virtio-net-failover, test-hmp and qom-test seem quite prone to fail
under TCG. Still, this is an improvement in that at least pure build
tests are functional.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-5-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/centos.aarch64 | 174 ++++++----------------------------------
1 file changed, 24 insertions(+), 150 deletions(-)
diff --git a/tests/vm/centos.aarch64 b/tests/vm/centos.aarch64
index 96c450f8be..2de7ef6992 100755
--- a/tests/vm/centos.aarch64
+++ b/tests/vm/centos.aarch64
@@ -20,150 +20,38 @@ import time
import traceback
import aarch64vm
+
DEFAULT_CONFIG = {
'cpu' : "max",
'machine' : "virt,gic-version=max",
- 'install_cmds' : "yum install -y make ninja-build git python3 gcc gcc-c++ flex bison, "\
- "yum install -y glib2-devel perl pixman-devel zlib-devel, "\
- "alternatives --set python /usr/bin/python3, "\
- "sudo dnf config-manager "\
- "--add-repo=https://download.docker.com/linux/centos/docker-ce.repo,"\
- "sudo dnf install --nobest -y docker-ce.aarch64,"\
- "systemctl enable docker",
+ 'install_cmds' : (
+ "dnf config-manager --set-enabled powertools, "
+ "dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo, "
+ "dnf install -y make ninja-build git python38 gcc gcc-c++ flex bison "\
+ "glib2-devel perl pixman-devel zlib-devel docker-ce.aarch64, "
+ "systemctl enable docker, "
+ ),
# We increase beyond the default time since during boot
# it can take some time (many seconds) to log into the VM.
'ssh_timeout' : 60,
}
+
class CentosAarch64VM(basevm.BaseVM):
- name = "centos.aarch64"
+ name = "centos8.aarch64"
arch = "aarch64"
- login_prompt = "localhost login:"
- prompt = '[root@localhost ~]#'
- image_name = "CentOS-8-aarch64-1905-dvd1.iso"
- image_link = "http://mirrors.usc.edu/pub/linux/distributions/centos/8.0.1905/isos/aarch64/"
+ image_name = "CentOS-Stream-GenericCloud-8-20220125.1.aarch64.qcow2"
+ image_link = "https://cloud.centos.org/centos/8-stream/aarch64/images/"
image_link += image_name
BUILD_SCRIPT = """
set -e;
cd $(mktemp -d);
- sudo chmod a+r /dev/vdb;
- tar --checkpoint=.10 -xf /dev/vdb;
+ export SRC_ARCHIVE=/dev/vdb;
+ sudo chmod a+r $SRC_ARCHIVE;
+ tar -xf $SRC_ARCHIVE;
./configure {configure_opts};
make --output-sync {target} -j{jobs} {verbose};
"""
- def set_key_perm(self):
- """Set permissions properly on certain files to allow
- ssh access."""
- self.console_wait_send(self.prompt,
- "/usr/sbin/restorecon -R -v /root/.ssh\n")
- self.console_wait_send(self.prompt,
- "/usr/sbin/restorecon -R -v "\
- "/home/{}/.ssh\n".format(self._config["guest_user"]))
-
- def create_kickstart(self):
- """Generate the kickstart file used to generate the centos image."""
- # Start with the template for the kickstart.
- ks_file = self._source_path + "/tests/vm/centos-8-aarch64.ks"
- subprocess.check_call("cp {} ./ks.cfg".format(ks_file), shell=True)
- # Append the ssh keys to the kickstart file
- # as the post processing phase of installation.
- with open("ks.cfg", "a") as f:
- # Add in the root pw and guest user.
- rootpw = "rootpw --plaintext {}\n"
- f.write(rootpw.format(self._config["root_pass"]))
- add_user = "user --groups=wheel --name={} "\
- "--password={} --plaintext\n"
- f.write(add_user.format(self._config["guest_user"],
- self._config["guest_pass"]))
- # Add the ssh keys.
- f.write("%post --log=/root/ks-post.log\n")
- f.write("mkdir -p /root/.ssh\n")
- addkey = 'echo "{}" >> /root/.ssh/authorized_keys\n'
- addkey_cmd = addkey.format(self._config["ssh_pub_key"])
- f.write(addkey_cmd)
- f.write('mkdir -p /home/{}/.ssh\n'.format(self._config["guest_user"]))
- addkey = 'echo "{}" >> /home/{}/.ssh/authorized_keys\n'
- addkey_cmd = addkey.format(self._config["ssh_pub_key"],
- self._config["guest_user"])
- f.write(addkey_cmd)
- f.write("%end\n")
- # Take our kickstart file and create an .iso from it.
- # The .iso will be provided to qemu as we boot
- # from the install dvd.
- # Anaconda will recognize the label "OEMDRV" and will
- # start the automated installation.
- gen_iso_img = 'genisoimage -output ks.iso -volid "OEMDRV" ks.cfg'
- subprocess.check_call(gen_iso_img, shell=True)
-
- def wait_for_shutdown(self):
- """We wait for qemu to shutdown the VM and exit.
- While this happens we display the console view
- for easier debugging."""
- # The image creation is essentially done,
- # so whether or not the wait is successful we want to
- # wait for qemu to exit (the self.wait()) before we return.
- try:
- self.console_wait("reboot: Power down")
- except Exception as e:
- sys.stderr.write("Exception hit\n")
- if isinstance(e, SystemExit) and e.code == 0:
- return 0
- traceback.print_exc()
- finally:
- self.wait()
-
- def build_base_image(self, dest_img):
- """Run through the centos installer to create
- a base image with name dest_img."""
- # We create the temp image, and only rename
- # to destination when we are done.
- img = dest_img + ".tmp"
- # Create an empty image.
- # We will provide this as the install destination.
- qemu_img_create = "qemu-img create {} 50G".format(img)
- subprocess.check_call(qemu_img_create, shell=True)
-
- # Create our kickstart file to be fed to the installer.
- self.create_kickstart()
- # Boot the install dvd with the params as our ks.iso
- os_img = self._download_with_cache(self.image_link)
- dvd_iso = "centos-8-dvd.iso"
- subprocess.check_call(["cp", "-f", os_img, dvd_iso])
- extra_args = "-cdrom ks.iso"
- extra_args += " -drive file={},if=none,id=drive1,cache=writeback"
- extra_args += " -device virtio-blk,drive=drive1,bootindex=1"
- extra_args = extra_args.format(dvd_iso).split(" ")
- self.boot(img, extra_args=extra_args)
- self.console_wait_send("change the selection", "\n")
- # We seem to need to hit esc (chr(27)) twice to abort the
- # media check, which takes a long time.
- # Waiting a bit seems to be more reliable before hitting esc.
- self.console_wait("Checking")
- time.sleep(5)
- self.console_wait_send("Checking", chr(27))
- time.sleep(5)
- self.console_wait_send("Checking", chr(27))
- print("Found Checking")
- # Give sufficient time for the installer to create the image.
- self.console_init(timeout=7200)
- self.wait_for_shutdown()
- os.rename(img, dest_img)
- print("Done with base image build: {}".format(dest_img))
-
- def check_create_base_img(self, img_base, img_dest):
- """Create a base image using the installer.
- We will use the base image if it exists.
- This helps cut down on install time in case we
- need to restart image creation,
- since the base image creation can take a long time."""
- if not os.path.exists(img_base):
- print("Generate new base image: {}".format(img_base))
- self.build_base_image(img_base);
- else:
- print("Use existing base image: {}".format(img_base))
- # Save a copy of the base image and copy it to dest.
- # which we will use going forward.
- subprocess.check_call(["cp", img_base, img_dest])
def boot(self, img, extra_args=None):
aarch64vm.create_flash_images(self._tmpdir, self._efi_aarch64)
@@ -185,42 +73,28 @@ class CentosAarch64VM(basevm.BaseVM):
super(CentosAarch64VM, self).boot(img, extra_args=extra_args)
def build_image(self, img):
+ cimg = self._download_with_cache(self.image_link)
img_tmp = img + ".tmp"
- self.check_create_base_img(img + ".base", img_tmp)
-
- # Boot the new image for the first time to finish installation.
- self.boot(img_tmp)
- self.console_init()
- self.console_wait_send(self.login_prompt, "root\n")
- self.console_wait_send("Password:",
- "{}\n".format(self._config["root_pass"]))
-
- self.set_key_perm()
- self.console_wait_send(self.prompt, "rpm -q centos-release\n")
- enable_adapter = "sed -i 's/ONBOOT=no/ONBOOT=yes/g'" \
- " /etc/sysconfig/network-scripts/ifcfg-enp0s1\n"
- self.console_wait_send(self.prompt, enable_adapter)
- self.console_wait_send(self.prompt, "ifup enp0s1\n")
- self.console_wait_send(self.prompt,
- 'echo "qemu ALL=(ALL) NOPASSWD:ALL" | '\
- 'sudo tee /etc/sudoers.d/qemu\n')
- self.console_wait(self.prompt)
-
- # Rest of the commands we issue through ssh.
+ subprocess.run(['cp', '-f', cimg, img_tmp])
+ self.exec_qemu_img("resize", img_tmp, "50G")
+ self.boot(img_tmp, extra_args = ["-cdrom", self.gen_cloud_init_iso()])
self.wait_ssh(wait_root=True)
+ self.ssh_root_check("touch /etc/cloud/cloud-init.disabled")
# If the user chooses *not* to do the second phase,
# then we will jump right to the graceful shutdown
if self._config['install_cmds'] != "":
install_cmds = self._config['install_cmds'].split(',')
for cmd in install_cmds:
- self.ssh_root(cmd)
+ self.ssh_root_check(cmd)
+
self.ssh_root("poweroff")
- self.wait_for_shutdown()
+ self.wait()
os.rename(img_tmp, img)
print("image creation complete: {}".format(img))
return 0
+
if __name__ == "__main__":
defaults = aarch64vm.get_config_defaults(CentosAarch64VM, DEFAULT_CONFIG)
sys.exit(basevm.main(CentosAarch64VM, defaults))
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 05/14] tests/vm: upgrade Ubuntu 18.04 VM to 20.04
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (3 preceding siblings ...)
2022-07-19 7:04 ` [PULL 04/14] tests/vm: switch centos.aarch64 " Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 06/14] tests/vm: remove ubuntu.i386 VM test Thomas Huth
` (9 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
18.04 has fallen out of our support window, so move ubuntu.aarch64
forward to ubuntu 20.04, which is now our oldest supported Ubuntu
release.
Notes:
This checksum changes periodically; use a fixed point image with a known
checksum so that the image isn't re-downloaded on every single
invocation. (The checksum for the 18.04 image was already incorrect at
the time of writing.)
Just like the centos.aarch64 test, this test currently seems very
flaky when run as a TCG test.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-6-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/ubuntu.aarch64 | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/tests/vm/ubuntu.aarch64 b/tests/vm/ubuntu.aarch64
index b291945a7e..666947393b 100755
--- a/tests/vm/ubuntu.aarch64
+++ b/tests/vm/ubuntu.aarch64
@@ -32,9 +32,13 @@ DEFAULT_CONFIG = {
class UbuntuAarch64VM(ubuntuvm.UbuntuVM):
name = "ubuntu.aarch64"
arch = "aarch64"
- image_name = "ubuntu-18.04-server-cloudimg-arm64.img"
- image_link = "https://cloud-images.ubuntu.com/releases/18.04/release/" + image_name
- image_sha256="0fdcba761965735a8a903d8b88df8e47f156f48715c00508e4315c506d7d3cb1"
+ # NOTE: The Ubuntu 20.04 cloud images are periodically updated. The
+ # fixed image chosen below is the latest release at time of
+ # writing. Using a rolling latest instead would mean that the SHA
+ # would be incorrect at an indeterminate point in the future.
+ image_name = "focal-server-cloudimg-arm64.img"
+ image_link = "https://cloud-images.ubuntu.com/focal/20220615/" + image_name
+ image_sha256="95a027336e197debe88c92ff2e554598e23c409139e1e750b71b3b820b514832"
BUILD_SCRIPT = """
set -e;
cd $(mktemp -d);
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 06/14] tests/vm: remove ubuntu.i386 VM test
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (4 preceding siblings ...)
2022-07-19 7:04 ` [PULL 05/14] tests/vm: upgrade Ubuntu 18.04 VM to 20.04 Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 07/14] tests/vm: remove duplicate 'centos' " Thomas Huth
` (8 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
Ubuntu 18.04 is out of our support window, and Ubuntu 20.04 does not
support i386 anymore. The debian project does, but they do not provide
any cloud images for it, a new expect-style script would have to be
written.
Since we have i386 cross-compiler tests hosted on GitLab CI, we don't
need to support this VM test anymore.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-7-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/Makefile.include | 3 +--
tests/vm/ubuntu.i386 | 40 ---------------------------------------
2 files changed, 1 insertion(+), 42 deletions(-)
delete mode 100755 tests/vm/ubuntu.i386
diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index 5f5b1fbfe6..a94f0ebf7f 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -17,7 +17,7 @@ EFI_AARCH64 = $(wildcard $(BUILD_DIR)/pc-bios/edk2-aarch64-code.fd)
X86_IMAGES := freebsd netbsd openbsd centos fedora haiku.x86_64
ifneq ($(GENISOIMAGE),)
-X86_IMAGES += ubuntu.i386 centos
+X86_IMAGES += centos
ifneq ($(EFI_AARCH64),)
ARM64_IMAGES += ubuntu.aarch64 centos.aarch64
endif
@@ -48,7 +48,6 @@ vm-help vm-test:
@echo " vm-build-fedora - Build QEMU in Fedora VM"
ifneq ($(GENISOIMAGE),)
@echo " vm-build-centos - Build QEMU in CentOS VM, with Docker"
- @echo " vm-build-ubuntu.i386 - Build QEMU in ubuntu i386 VM"
ifneq ($(EFI_AARCH64),)
@echo " vm-build-ubuntu.aarch64 - Build QEMU in ubuntu aarch64 VM"
@echo " vm-build-centos.aarch64 - Build QEMU in CentOS aarch64 VM"
diff --git a/tests/vm/ubuntu.i386 b/tests/vm/ubuntu.i386
deleted file mode 100755
index 47681b6f87..0000000000
--- a/tests/vm/ubuntu.i386
+++ /dev/null
@@ -1,40 +0,0 @@
-#!/usr/bin/env python3
-#
-# Ubuntu i386 image
-#
-# Copyright 2017 Red Hat Inc.
-#
-# Authors:
-# Fam Zheng <famz@redhat.com>
-#
-# This code is licensed under the GPL version 2 or later. See
-# the COPYING file in the top-level directory.
-#
-
-import sys
-import basevm
-import ubuntuvm
-
-DEFAULT_CONFIG = {
- 'install_cmds' : "apt-get update,"\
- "apt-get build-dep -y qemu,"\
- "apt-get install -y libfdt-dev language-pack-en ninja-build",
-}
-
-class UbuntuX86VM(ubuntuvm.UbuntuVM):
- name = "ubuntu.i386"
- arch = "i386"
- image_link="https://cloud-images.ubuntu.com/releases/bionic/"\
- "release-20191114/ubuntu-18.04-server-cloudimg-i386.img"
- image_sha256="28969840626d1ea80bb249c08eef1a4533e8904aa51a327b40f37ac4b4ff04ef"
- BUILD_SCRIPT = """
- set -e;
- cd $(mktemp -d);
- sudo chmod a+r /dev/vdb;
- tar -xf /dev/vdb;
- ./configure {configure_opts};
- make --output-sync {target} -j{jobs} {verbose};
- """
-
-if __name__ == "__main__":
- sys.exit(basevm.main(UbuntuX86VM, DEFAULT_CONFIG))
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 07/14] tests/vm: remove duplicate 'centos' VM test
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (5 preceding siblings ...)
2022-07-19 7:04 ` [PULL 06/14] tests/vm: remove ubuntu.i386 VM test Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 08/14] tests/vm: add 1GB extra memory per core Thomas Huth
` (7 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
This is listed twice by accident; we require genisoimage to run the
test, so remove the unconditional entry.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-8-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/Makefile.include | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/vm/Makefile.include b/tests/vm/Makefile.include
index a94f0ebf7f..8d2a164552 100644
--- a/tests/vm/Makefile.include
+++ b/tests/vm/Makefile.include
@@ -15,7 +15,7 @@ endif
EFI_AARCH64 = $(wildcard $(BUILD_DIR)/pc-bios/edk2-aarch64-code.fd)
-X86_IMAGES := freebsd netbsd openbsd centos fedora haiku.x86_64
+X86_IMAGES := freebsd netbsd openbsd fedora haiku.x86_64
ifneq ($(GENISOIMAGE),)
X86_IMAGES += centos
ifneq ($(EFI_AARCH64),)
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 08/14] tests/vm: add 1GB extra memory per core
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (6 preceding siblings ...)
2022-07-19 7:04 ` [PULL 07/14] tests/vm: remove duplicate 'centos' " Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 09/14] tests/vm: Remove docker cross-compile test from CentOS VM Thomas Huth
` (6 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
If you try to run a 16 or 32 threaded test, you're going to run out of
memory very quickly with qom-test and a few others. Bump the memory
limit to try to scale with larger-core machines.
Granted, this means that a 16 core processor is going to ask for 16GB,
but you *probably* meet that requirement if you have such a machine.
512MB per core didn't seem to be enough to avoid ENOMEM and SIGABRTs in
the test cases in practice on a six core machine; so I bumped it up to
1GB which seemed to help.
Add this magic in early to the configuration process so that the
config file, if provided, can still override it.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Acked-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-9-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/basevm.py | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index d7d0413df3..4fd9af10b7 100644
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -99,6 +99,11 @@ def __init__(self, args, config=None):
self._source_path = args.source_path
# Allow input config to override defaults.
self._config = DEFAULT_CONFIG.copy()
+
+ # 1GB per core, minimum of 4. This is only a default.
+ mem = max(4, args.jobs)
+ self._config['memory'] = f"{mem}G"
+
if config != None:
self._config.update(config)
self.validate_ssh_keys()
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 09/14] tests/vm: Remove docker cross-compile test from CentOS VM
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (7 preceding siblings ...)
2022-07-19 7:04 ` [PULL 08/14] tests/vm: add 1GB extra memory per core Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 10/14] qtest/machine-none: Add LoongArch support Thomas Huth
` (5 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel
Cc: Richard Henderson, Peter Maydell, John Snow,
Daniel P . Berrangé
From: John Snow <jsnow@redhat.com>
The fedora container has since been split apart, so there's no suitable
nearby target that would support "test-mingw" as it requires both x32
and x64 support -- so either fedora-cross-win32 nor fedora-cross-win64
would be truly suitable.
Just remove this test as superfluous with our current CI infrastructure.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220708153503.18864-10-jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/vm/centos | 1 -
1 file changed, 1 deletion(-)
diff --git a/tests/vm/centos b/tests/vm/centos
index 3a527c47b3..097a9ca14d 100755
--- a/tests/vm/centos
+++ b/tests/vm/centos
@@ -28,7 +28,6 @@ class CentosVM(basevm.BaseVM):
tar -xf $SRC_ARCHIVE;
make docker-test-block@centos8 {verbose} J={jobs} NETWORK=1;
make docker-test-quick@centos8 {verbose} J={jobs} NETWORK=1;
- make docker-test-mingw@fedora {verbose} J={jobs} NETWORK=1;
"""
def build_image(self, img):
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 10/14] qtest/machine-none: Add LoongArch support
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (8 preceding siblings ...)
2022-07-19 7:04 ` [PULL 09/14] tests/vm: Remove docker cross-compile test from CentOS VM Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 11/14] tests/unit: Replace g_memdup() by g_memdup2() Thomas Huth
` (4 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel; +Cc: Richard Henderson, Peter Maydell, Song Gao
From: Song Gao <gaosong@loongson.cn>
Update the cpu_maps[] to support the LoongArch target.
Signed-off-by: Song Gao <gaosong@loongson.cn>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220713020258.601424-1-gaosong@loongson.cn>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/qtest/machine-none-test.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/qtest/machine-none-test.c b/tests/qtest/machine-none-test.c
index d0f8cd9902..f92fab479f 100644
--- a/tests/qtest/machine-none-test.c
+++ b/tests/qtest/machine-none-test.c
@@ -54,6 +54,7 @@ static struct arch2cpu cpus_map[] = {
{ "riscv64", "rv64" },
{ "riscv32", "rv32" },
{ "rx", "rx62n" },
+ { "loongarch64", "la464"},
};
static const char *get_cpu_model_by_arch(const char *arch)
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 11/14] tests/unit: Replace g_memdup() by g_memdup2()
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (9 preceding siblings ...)
2022-07-19 7:04 ` [PULL 10/14] qtest/machine-none: Add LoongArch support Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 12/14] Replace 'whitelist' with 'allow' Thomas Huth
` (3 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel; +Cc: Richard Henderson, Peter Maydell, Philippe Mathieu-Daudé
From: Philippe Mathieu-Daudé <philmd@redhat.com>
Per https://discourse.gnome.org/t/port-your-module-from-g-memdup-to-g-memdup2-now/5538
The old API took the size of the memory to duplicate as a guint,
whereas most memory functions take memory sizes as a gsize. This
made it easy to accidentally pass a gsize to g_memdup(). For large
values, that would lead to a silent truncation of the size from 64
to 32 bits, and result in a heap area being returned which is
significantly smaller than what the caller expects. This can likely
be exploited in various modules to cause a heap buffer overflow.
Replace g_memdup() by the safer g_memdup2() wrapper.
Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
Message-Id: <20210903174510.751630-24-philmd@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
tests/unit/ptimer-test.c | 22 +++++++++++-----------
tests/unit/test-iov.c | 26 +++++++++++++-------------
2 files changed, 24 insertions(+), 24 deletions(-)
diff --git a/tests/unit/ptimer-test.c b/tests/unit/ptimer-test.c
index a80ef5aff4..04b5f4e3d0 100644
--- a/tests/unit/ptimer-test.c
+++ b/tests/unit/ptimer-test.c
@@ -798,64 +798,64 @@ static void add_ptimer_tests(uint8_t policy)
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/set_count policy=%s", policy_name),
- g_memdup(&policy, 1), check_set_count, g_free);
+ g_memdup2(&policy, 1), check_set_count, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/set_limit policy=%s", policy_name),
- g_memdup(&policy, 1), check_set_limit, g_free);
+ g_memdup2(&policy, 1), check_set_limit, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/oneshot policy=%s", policy_name),
- g_memdup(&policy, 1), check_oneshot, g_free);
+ g_memdup2(&policy, 1), check_oneshot, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/periodic policy=%s", policy_name),
- g_memdup(&policy, 1), check_periodic, g_free);
+ g_memdup2(&policy, 1), check_periodic, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/on_the_fly_mode_change policy=%s",
policy_name),
- g_memdup(&policy, 1), check_on_the_fly_mode_change, g_free);
+ g_memdup2(&policy, 1), check_on_the_fly_mode_change, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/on_the_fly_period_change policy=%s",
policy_name),
- g_memdup(&policy, 1), check_on_the_fly_period_change, g_free);
+ g_memdup2(&policy, 1), check_on_the_fly_period_change, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/on_the_fly_freq_change policy=%s",
policy_name),
- g_memdup(&policy, 1), check_on_the_fly_freq_change, g_free);
+ g_memdup2(&policy, 1), check_on_the_fly_freq_change, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/run_with_period_0 policy=%s",
policy_name),
- g_memdup(&policy, 1), check_run_with_period_0, g_free);
+ g_memdup2(&policy, 1), check_run_with_period_0, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/run_with_delta_0 policy=%s",
policy_name),
- g_memdup(&policy, 1), check_run_with_delta_0, g_free);
+ g_memdup2(&policy, 1), check_run_with_delta_0, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/periodic_with_load_0 policy=%s",
policy_name),
- g_memdup(&policy, 1), check_periodic_with_load_0, g_free);
+ g_memdup2(&policy, 1), check_periodic_with_load_0, g_free);
g_free(tmp);
g_test_add_data_func_full(
tmp = g_strdup_printf("/ptimer/oneshot_with_load_0 policy=%s",
policy_name),
- g_memdup(&policy, 1), check_oneshot_with_load_0, g_free);
+ g_memdup2(&policy, 1), check_oneshot_with_load_0, g_free);
g_free(tmp);
}
diff --git a/tests/unit/test-iov.c b/tests/unit/test-iov.c
index 93bda00f0e..6f7623d310 100644
--- a/tests/unit/test-iov.c
+++ b/tests/unit/test-iov.c
@@ -172,7 +172,7 @@ static void test_io(void)
}
iov_from_buf(iov, niov, 0, buf, sz);
- siov = g_memdup(iov, sizeof(*iov) * niov);
+ siov = g_memdup2(iov, sizeof(*iov) * niov);
if (socketpair(PF_UNIX, SOCK_STREAM, 0, sv) < 0) {
perror("socketpair");
@@ -349,7 +349,7 @@ static void test_discard_front_undo(void)
/* Discard zero bytes */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_tmp = iov;
iov_cnt_tmp = iov_cnt;
iov_discard_front_undoable(&iov_tmp, &iov_cnt_tmp, 0, &undo);
@@ -360,7 +360,7 @@ static void test_discard_front_undo(void)
/* Discard more bytes than vector size */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_tmp = iov;
iov_cnt_tmp = iov_cnt;
size = iov_size(iov, iov_cnt);
@@ -372,7 +372,7 @@ static void test_discard_front_undo(void)
/* Discard entire vector */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_tmp = iov;
iov_cnt_tmp = iov_cnt;
size = iov_size(iov, iov_cnt);
@@ -384,7 +384,7 @@ static void test_discard_front_undo(void)
/* Discard within first element */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_tmp = iov;
iov_cnt_tmp = iov_cnt;
size = g_test_rand_int_range(1, iov->iov_len);
@@ -396,7 +396,7 @@ static void test_discard_front_undo(void)
/* Discard entire first element */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_tmp = iov;
iov_cnt_tmp = iov_cnt;
iov_discard_front_undoable(&iov_tmp, &iov_cnt_tmp, iov->iov_len, &undo);
@@ -407,7 +407,7 @@ static void test_discard_front_undo(void)
/* Discard within second element */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_tmp = iov;
iov_cnt_tmp = iov_cnt;
size = iov->iov_len + g_test_rand_int_range(1, iov[1].iov_len);
@@ -498,7 +498,7 @@ static void test_discard_back_undo(void)
/* Discard zero bytes */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_cnt_tmp = iov_cnt;
iov_discard_back_undoable(iov, &iov_cnt_tmp, 0, &undo);
iov_discard_undo(&undo);
@@ -508,7 +508,7 @@ static void test_discard_back_undo(void)
/* Discard more bytes than vector size */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_cnt_tmp = iov_cnt;
size = iov_size(iov, iov_cnt);
iov_discard_back_undoable(iov, &iov_cnt_tmp, size + 1, &undo);
@@ -519,7 +519,7 @@ static void test_discard_back_undo(void)
/* Discard entire vector */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_cnt_tmp = iov_cnt;
size = iov_size(iov, iov_cnt);
iov_discard_back_undoable(iov, &iov_cnt_tmp, size, &undo);
@@ -530,7 +530,7 @@ static void test_discard_back_undo(void)
/* Discard within last element */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_cnt_tmp = iov_cnt;
size = g_test_rand_int_range(1, iov[iov_cnt - 1].iov_len);
iov_discard_back_undoable(iov, &iov_cnt_tmp, size, &undo);
@@ -541,7 +541,7 @@ static void test_discard_back_undo(void)
/* Discard entire last element */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_cnt_tmp = iov_cnt;
size = iov[iov_cnt - 1].iov_len;
iov_discard_back_undoable(iov, &iov_cnt_tmp, size, &undo);
@@ -552,7 +552,7 @@ static void test_discard_back_undo(void)
/* Discard within second-to-last element */
iov_random(&iov, &iov_cnt);
- iov_orig = g_memdup(iov, sizeof(iov[0]) * iov_cnt);
+ iov_orig = g_memdup2(iov, sizeof(iov[0]) * iov_cnt);
iov_cnt_tmp = iov_cnt;
size = iov[iov_cnt - 1].iov_len +
g_test_rand_int_range(1, iov[iov_cnt - 2].iov_len);
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 12/14] Replace 'whitelist' with 'allow'
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (10 preceding siblings ...)
2022-07-19 7:04 ` [PULL 11/14] tests/unit: Replace g_memdup() by g_memdup2() Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 13/14] util: Fix broken build on Haiku Thomas Huth
` (2 subsequent siblings)
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel; +Cc: Richard Henderson, Peter Maydell, John Snow, Alex Bennée
Let's use more inclusive language here and avoid terms
that are frowned upon nowadays.
Message-Id: <20220711095300.60462-1-thuth@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Reviewed-by: Alex Bennée <alex.bennee@linaro.org>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
docs/devel/submitting-a-patch.rst | 2 +-
docs/tools/qemu-nbd.rst | 2 +-
scripts/vmstate-static-checker.py | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/docs/devel/submitting-a-patch.rst b/docs/devel/submitting-a-patch.rst
index 09a8d12c2c..fec33ce148 100644
--- a/docs/devel/submitting-a-patch.rst
+++ b/docs/devel/submitting-a-patch.rst
@@ -39,7 +39,7 @@ ideas from other posts. If you do subscribe, be prepared for a high
volume of email, often over one thousand messages in a week. The list is
moderated; first-time posts from an email address (whether or not you
subscribed) may be subject to some delay while waiting for a moderator
-to whitelist your address.
+to allow your address.
The larger your contribution is, or if you plan on becoming a long-term
contributor, then the more important the rest of this page becomes.
diff --git a/docs/tools/qemu-nbd.rst b/docs/tools/qemu-nbd.rst
index 8e08a29e89..faf6349ea5 100644
--- a/docs/tools/qemu-nbd.rst
+++ b/docs/tools/qemu-nbd.rst
@@ -225,7 +225,7 @@ disconnects:
qemu-nbd -f qcow2 file.qcow2
Start a long-running server listening with encryption on port 10810,
-and whitelist clients with a specific X.509 certificate to connect to
+and allow clients with a specific X.509 certificate to connect to
a 1 megabyte subset of a raw file, using the export name 'subset':
::
diff --git a/scripts/vmstate-static-checker.py b/scripts/vmstate-static-checker.py
index 539ead62b4..b369388360 100755
--- a/scripts/vmstate-static-checker.py
+++ b/scripts/vmstate-static-checker.py
@@ -40,7 +40,7 @@ def check_fields_match(name, s_field, d_field):
return True
# Some fields changed names between qemu versions. This list
- # is used to whitelist such changes in each section / description.
+ # is used to allow such changes in each section / description.
changed_names = {
'apic': ['timer', 'timer_expiry'],
'e1000': ['dev', 'parent_obj'],
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 13/14] util: Fix broken build on Haiku
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (11 preceding siblings ...)
2022-07-19 7:04 ` [PULL 12/14] Replace 'whitelist' with 'allow' Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 7:04 ` [PULL 14/14] python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct type Thomas Huth
2022-07-19 16:14 ` [PULL 00/14] Testing and misc patches Peter Maydell
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel; +Cc: Richard Henderson, Peter Maydell, Marc-André Lureau
A recent commit moved some Haiku-specific code parts from oslib-posix.c
to cutils.c, but failed to move the corresponding header #include
statement, too, so "make vm-build-haiku.x86_64" is currently broken.
Fix it by moving the header #include, too.
Fixes: 06680b15b4 ("include: move qemu_*_exec_dir() to cutils")
Message-Id: <20220718172026.139004-1-thuth@redhat.com>
Reviewed-by: Marc-André Lureau <marcandre.lureau@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
util/cutils.c | 4 ++++
util/oslib-posix.c | 4 ----
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/util/cutils.c b/util/cutils.c
index 8199dac598..cb43dda213 100644
--- a/util/cutils.c
+++ b/util/cutils.c
@@ -35,6 +35,10 @@
#include <sys/sysctl.h>
#endif
+#ifdef __HAIKU__
+#include <kernel/image.h>
+#endif
+
#ifdef G_OS_WIN32
#include <pathcch.h>
#include <wchar.h>
diff --git a/util/oslib-posix.c b/util/oslib-posix.c
index 7a34c1657c..bffec18869 100644
--- a/util/oslib-posix.c
+++ b/util/oslib-posix.c
@@ -62,10 +62,6 @@
#include <mach-o/dyld.h>
#endif
-#ifdef __HAIKU__
-#include <kernel/image.h>
-#endif
-
#include "qemu/mmap-alloc.h"
#ifdef CONFIG_DEBUG_STACK_USAGE
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* [PULL 14/14] python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct type
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (12 preceding siblings ...)
2022-07-19 7:04 ` [PULL 13/14] util: Fix broken build on Haiku Thomas Huth
@ 2022-07-19 7:04 ` Thomas Huth
2022-07-19 16:14 ` [PULL 00/14] Testing and misc patches Peter Maydell
14 siblings, 0 replies; 18+ messages in thread
From: Thomas Huth @ 2022-07-19 7:04 UTC (permalink / raw)
To: qemu-devel; +Cc: Richard Henderson, Peter Maydell, John Snow
'returns-whitelist' has been renamed to 'command-returns-exceptions' in
commit b86df3747848 ("qapi: Rename pragma *-whitelist to *-exceptions").
Message-Id: <20220711095721.61280-1-thuth@redhat.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Thomas Huth <thuth@redhat.com>
---
python/qemu/qmp/legacy.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/python/qemu/qmp/legacy.py b/python/qemu/qmp/legacy.py
index 03b5574618..1951754455 100644
--- a/python/qemu/qmp/legacy.py
+++ b/python/qemu/qmp/legacy.py
@@ -50,7 +50,7 @@
# QMPMessage can be outgoing commands or incoming events/returns.
# QMPReturnValue is usually a dict/json object, but due to QAPI's
-# 'returns-whitelist', it can actually be anything.
+# 'command-returns-exceptions', it can actually be anything.
#
# {'return': {}} is a QMPMessage,
# {} is the QMPReturnValue.
--
2.31.1
^ permalink raw reply related [flat|nested] 18+ messages in thread
* Re: [PULL 00/14] Testing and misc patches
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
` (13 preceding siblings ...)
2022-07-19 7:04 ` [PULL 14/14] python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct type Thomas Huth
@ 2022-07-19 16:14 ` Peter Maydell
14 siblings, 0 replies; 18+ messages in thread
From: Peter Maydell @ 2022-07-19 16:14 UTC (permalink / raw)
To: Thomas Huth; +Cc: qemu-devel, Richard Henderson
On Tue, 19 Jul 2022 at 08:04, Thomas Huth <thuth@redhat.com> wrote:
>
> Hi!
>
> The following changes since commit 782378973121addeb11b13fd12a6ac2e69faa33f:
>
> Merge tag 'pull-target-arm-20220718' of https://git.linaro.org/people/pmaydell/qemu-arm into staging (2022-07-18 16:29:32 +0100)
>
> are available in the Git repository at:
>
> https://gitlab.com/thuth/qemu.git tags/pull-request-2022-07-19
>
> for you to fetch changes up to 9b0ecfaba5920ddf8601d7b31746a428aa3779c6:
>
> python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct type (2022-07-18 20:28:06 +0200)
>
> ----------------------------------------------------------------
> * Clean up tests/vm (remove obsolte VMs, upgrade Ubuntu 18.04 to 20.04 etc.)
> * Fix broken build on Haiku
> * Replace the term 'whitelist' in some files with a better one
> * Some other minor test related fixes
>
> ----------------------------------------------------------------
Applied, thanks.
Please update the changelog at https://wiki.qemu.org/ChangeLog/7.1
for any user-visible changes.
-- PMM
^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2022-07-19 16:17 UTC | newest]
Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-07-19 7:03 [PULL 00/14] Testing and misc patches Thomas Huth
2022-07-19 7:03 ` [PULL 01/14] qga: treat get-guest-fsinfo as "best effort" Thomas Huth
2022-07-19 7:04 ` [PULL 02/14] tests/vm: use 'cp' instead of 'ln' for temporary vm images Thomas Huth
2022-07-19 7:04 ` [PULL 03/14] tests/vm: switch CentOS 8 to CentOS 8 Stream Thomas Huth
2022-07-19 7:04 ` [PULL 04/14] tests/vm: switch centos.aarch64 " Thomas Huth
2022-07-19 7:04 ` [PULL 05/14] tests/vm: upgrade Ubuntu 18.04 VM to 20.04 Thomas Huth
2022-07-19 7:04 ` [PULL 06/14] tests/vm: remove ubuntu.i386 VM test Thomas Huth
2022-07-19 7:04 ` [PULL 07/14] tests/vm: remove duplicate 'centos' " Thomas Huth
2022-07-19 7:04 ` [PULL 08/14] tests/vm: add 1GB extra memory per core Thomas Huth
2022-07-19 7:04 ` [PULL 09/14] tests/vm: Remove docker cross-compile test from CentOS VM Thomas Huth
2022-07-19 7:04 ` [PULL 10/14] qtest/machine-none: Add LoongArch support Thomas Huth
2022-07-19 7:04 ` [PULL 11/14] tests/unit: Replace g_memdup() by g_memdup2() Thomas Huth
2022-07-19 7:04 ` [PULL 12/14] Replace 'whitelist' with 'allow' Thomas Huth
2022-07-19 7:04 ` [PULL 13/14] util: Fix broken build on Haiku Thomas Huth
2022-07-19 7:04 ` [PULL 14/14] python/qemu/qmp/legacy: Replace 'returns-whitelist' with the correct type Thomas Huth
2022-07-19 16:14 ` [PULL 00/14] Testing and misc patches Peter Maydell
-- strict thread matches above, loose matches on Subject: below --
2022-07-05 10:38 Thomas Huth
2022-07-05 16:43 ` Richard Henderson
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).