aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Maydell <peter.maydell@linaro.org>2021-03-22 10:05:45 +0000
committerPeter Maydell <peter.maydell@linaro.org>2021-03-22 10:05:45 +0000
commitf0f20022a0c744930935fdb7020a8c18347d391a (patch)
tree92e7d7519196821ad7a10626a44ae1615fb9804d
parentbdee969c0e65d4d509932b1d70e3a3b2ffbff6d5 (diff)
parent262fd27392128c180afc8f968d90d530574862f7 (diff)
Merge remote-tracking branch 'remotes/thuth-gitlab/tags/pull-request-2021-03-21' into staging
* Small fixes for the unit tests * Compilation fixes for Illumos et al. * Update the FreeBSD VM to 12.2 # gpg: Signature made Sun 21 Mar 2021 16:51:42 GMT # gpg: using RSA key 27B88847EEE0250118F3EAB92ED9D774FE702DB5 # gpg: issuer "thuth@redhat.com" # gpg: Good signature from "Thomas Huth <th.huth@gmx.de>" [full] # gpg: aka "Thomas Huth <thuth@redhat.com>" [full] # gpg: aka "Thomas Huth <huth@tuxfamily.org>" [full] # gpg: aka "Thomas Huth <th.huth@posteo.de>" [unknown] # Primary key fingerprint: 27B8 8847 EEE0 2501 18F3 EAB9 2ED9 D774 FE70 2DB5 * remotes/thuth-gitlab/tags/pull-request-2021-03-21: FreeBSD: Upgrade to 12.2 release contrib: ivshmem client and server build fix for SunOS. configure: fix for SunOS based systems tests/unit/test-block-iothread: fix maybe-uninitialized error on GCC 11 docs/devel/testing.rst: Fix references to unit tests Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rwxr-xr-xconfigure2
-rw-r--r--contrib/ivshmem-client/ivshmem-client.c12
-rw-r--r--contrib/ivshmem-server/ivshmem-server.c12
-rw-r--r--docs/devel/testing.rst6
-rw-r--r--tests/unit/test-block-iothread.c6
-rwxr-xr-xtests/vm/freebsd16
6 files changed, 30 insertions, 24 deletions
diff --git a/configure b/configure
index 847bc4d095..61872096a8 100755
--- a/configure
+++ b/configure
@@ -111,7 +111,7 @@ error_exit() {
do_compiler() {
# Run the compiler, capturing its output to the log. First argument
# is compiler binary to execute.
- local compiler="$1"
+ compiler="$1"
shift
if test -n "$BASH_VERSION"; then eval '
echo >>config.log "
diff --git a/contrib/ivshmem-client/ivshmem-client.c b/contrib/ivshmem-client/ivshmem-client.c
index b1274b236a..182c79d27c 100644
--- a/contrib/ivshmem-client/ivshmem-client.c
+++ b/contrib/ivshmem-client/ivshmem-client.c
@@ -178,7 +178,7 @@ ivshmem_client_init(IvshmemClient *client, const char *unix_sock_path,
int
ivshmem_client_connect(IvshmemClient *client)
{
- struct sockaddr_un sun;
+ struct sockaddr_un s_un;
int fd, ret;
int64_t tmp;
@@ -192,16 +192,16 @@ ivshmem_client_connect(IvshmemClient *client)
return -1;
}
- sun.sun_family = AF_UNIX;
- ret = snprintf(sun.sun_path, sizeof(sun.sun_path), "%s",
+ s_un.sun_family = AF_UNIX;
+ ret = snprintf(s_un.sun_path, sizeof(s_un.sun_path), "%s",
client->unix_sock_path);
- if (ret < 0 || ret >= sizeof(sun.sun_path)) {
+ if (ret < 0 || ret >= sizeof(s_un.sun_path)) {
IVSHMEM_CLIENT_DEBUG(client, "could not copy unix socket path\n");
goto err_close;
}
- if (connect(client->sock_fd, (struct sockaddr *)&sun, sizeof(sun)) < 0) {
- IVSHMEM_CLIENT_DEBUG(client, "cannot connect to %s: %s\n", sun.sun_path,
+ if (connect(client->sock_fd, (struct sockaddr *)&s_un, sizeof(s_un)) < 0) {
+ IVSHMEM_CLIENT_DEBUG(client, "cannot connect to %s: %s\n", s_un.sun_path,
strerror(errno));
goto err_close;
}
diff --git a/contrib/ivshmem-server/ivshmem-server.c b/contrib/ivshmem-server/ivshmem-server.c
index 88daee812d..39a6ffdb5d 100644
--- a/contrib/ivshmem-server/ivshmem-server.c
+++ b/contrib/ivshmem-server/ivshmem-server.c
@@ -288,7 +288,7 @@ ivshmem_server_init(IvshmemServer *server, const char *unix_sock_path,
int
ivshmem_server_start(IvshmemServer *server)
{
- struct sockaddr_un sun;
+ struct sockaddr_un s_un;
int shm_fd, sock_fd, ret;
/* open shm file */
@@ -327,15 +327,15 @@ ivshmem_server_start(IvshmemServer *server)
goto err_close_shm;
}
- sun.sun_family = AF_UNIX;
- ret = snprintf(sun.sun_path, sizeof(sun.sun_path), "%s",
+ s_un.sun_family = AF_UNIX;
+ ret = snprintf(s_un.sun_path, sizeof(s_un.sun_path), "%s",
server->unix_sock_path);
- if (ret < 0 || ret >= sizeof(sun.sun_path)) {
+ if (ret < 0 || ret >= sizeof(s_un.sun_path)) {
IVSHMEM_SERVER_DEBUG(server, "could not copy unix socket path\n");
goto err_close_sock;
}
- if (bind(sock_fd, (struct sockaddr *)&sun, sizeof(sun)) < 0) {
- IVSHMEM_SERVER_DEBUG(server, "cannot connect to %s: %s\n", sun.sun_path,
+ if (bind(sock_fd, (struct sockaddr *)&s_un, sizeof(s_un)) < 0) {
+ IVSHMEM_SERVER_DEBUG(server, "cannot connect to %s: %s\n", s_un.sun_path,
strerror(errno));
goto err_close_sock;
}
diff --git a/docs/devel/testing.rst b/docs/devel/testing.rst
index 1434a50cc4..1da4c4e4c4 100644
--- a/docs/devel/testing.rst
+++ b/docs/devel/testing.rst
@@ -34,17 +34,17 @@ If you are writing new code in QEMU, consider adding a unit test, especially
for utility modules that are relatively stateless or have few dependencies. To
add a new unit test:
-1. Create a new source file. For example, ``tests/foo-test.c``.
+1. Create a new source file. For example, ``tests/unit/foo-test.c``.
2. Write the test. Normally you would include the header file which exports
the module API, then verify the interface behaves as expected from your
test. The test code should be organized with the glib testing framework.
Copying and modifying an existing test is usually a good idea.
-3. Add the test to ``tests/meson.build``. The unit tests are listed in a
+3. Add the test to ``tests/unit/meson.build``. The unit tests are listed in a
dictionary called ``tests``. The values are any additional sources and
dependencies to be linked with the test. For a simple test whose source
- is in ``tests/foo-test.c``, it is enough to add an entry like::
+ is in ``tests/unit/foo-test.c``, it is enough to add an entry like::
{
...
diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
index 3f866a35c6..8cf172cb7a 100644
--- a/tests/unit/test-block-iothread.c
+++ b/tests/unit/test-block-iothread.c
@@ -89,7 +89,7 @@ static void test_sync_op_pread(BdrvChild *c)
static void test_sync_op_pwrite(BdrvChild *c)
{
- uint8_t buf[512];
+ uint8_t buf[512] = { 0 };
int ret;
/* Success */
@@ -117,7 +117,7 @@ static void test_sync_op_blk_pread(BlockBackend *blk)
static void test_sync_op_blk_pwrite(BlockBackend *blk)
{
- uint8_t buf[512];
+ uint8_t buf[512] = { 0 };
int ret;
/* Success */
@@ -141,7 +141,7 @@ static void test_sync_op_load_vmstate(BdrvChild *c)
static void test_sync_op_save_vmstate(BdrvChild *c)
{
- uint8_t buf[512];
+ uint8_t buf[512] = { 0 };
int ret;
/* Error: Driver does not support snapshots */
diff --git a/tests/vm/freebsd b/tests/vm/freebsd
index 09f3ee6cb8..6e20e84322 100755
--- a/tests/vm/freebsd
+++ b/tests/vm/freebsd
@@ -20,12 +20,16 @@ import socket
import subprocess
import basevm
+FREEBSD_CONFIG = {
+ 'cpu' : "max,sse4.2=off",
+}
+
class FreeBSDVM(basevm.BaseVM):
name = "freebsd"
arch = "x86_64"
- link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-disc1.iso.xz"
- csum = "7394c3f60a1e236e7bd3a05809cf43ae39a3b8e5d42d782004cf2f26b1cfcd88"
+ link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.2/FreeBSD-12.2-RELEASE-amd64-disc1.iso.xz"
+ csum = "a4530246cafbf1dd42a9bd3ea441ca9a78a6a0cd070278cbdf63f3a6f803ecae"
size = "20G"
pkgs = [
# build tools
@@ -61,6 +65,8 @@ class FreeBSDVM(basevm.BaseVM):
"zstd",
]
+ # TODO: Enable gnutls again once FreeBSD's libtasn1 got fixed
+ # See: https://gitlab.com/gnutls/libtasn1/-/merge_requests/71
BUILD_SCRIPT = """
set -e;
rm -rf /home/qemu/qemu-test.*
@@ -68,7 +74,7 @@ class FreeBSDVM(basevm.BaseVM):
mkdir src build; cd src;
tar -xf /dev/vtbd1;
cd ../build
- ../src/configure --python=python3.7 {configure_opts};
+ ../src/configure --python=python3.7 --disable-gnutls {configure_opts};
gmake --output-sync -j{jobs} {target} {verbose};
"""
@@ -125,7 +131,7 @@ class FreeBSDVM(basevm.BaseVM):
self.console_wait_send("IPv6", "n")
self.console_wait_send("Resolver", "\n")
- self.console_wait_send("Time Zone Selector", "a\n")
+ self.console_wait_send("Time Zone Selector", "0\n")
self.console_wait_send("Confirmation", "y")
self.console_wait_send("Time & Date", "\n")
self.console_wait_send("Time & Date", "\n")
@@ -206,4 +212,4 @@ class FreeBSDVM(basevm.BaseVM):
self.print_step("All done")
if __name__ == "__main__":
- sys.exit(basevm.main(FreeBSDVM))
+ sys.exit(basevm.main(FreeBSDVM, config=FREEBSD_CONFIG))