* Small fixes for the unit tests

* Compilation fixes for Illumos et al.
 * Update the FreeBSD VM to 12.2
 -----BEGIN PGP SIGNATURE-----
 
 iQJFBAABCAAvFiEEJ7iIR+7gJQEY8+q5LtnXdP5wLbUFAmBXeZ4RHHRodXRoQHJl
 ZGhhdC5jb20ACgkQLtnXdP5wLbXrtw//SWtVgXYlifD8JTJcF40CcXB4/hFzPPvs
 syFBtm7mFikgkiXa0oKPVpiHeEmvYvE7F9H30xbxEb3eqg194K+KBHOL8PBH03Mv
 3P7IjEs+MOIUvpYcCwoJWS1r9Dpw4IMfGSljdkYWW4iO9TJBt+xOOIQy68eJnXkw
 eEEZ9NjBq6cSKSEoIyaRiGIi1OsLMGatsXEgKhaKBiLaKFagNLEzTOxKafSyJkWt
 jRgESoLbUH3EbkmKrUZGYhVpKgFiXSJMz1j35ujqVhMY3FeCi69xjcvpiXRN1NMS
 kQO6CKkkVa5WpCPhqUPBI5pKzIAax180v7Qes+hlOgecNCjy76wVY2ZJVUf1kuxL
 aHdgs77Tmq6dwCjuDu2Jon78Rge89cKCIXCDI70BYQUv7zHxwxVyO6Fwn889k3D/
 7xIsze0oELbHYSperMm2wyOmswevyUOGCCBprtgrDUW/CtFMBQBHI5kvs4PV0dx9
 GssCl9xkzNtGqeH/pHy5gr8NkYxSfAQRdv4NQen4lrpZpGDltOa3eJ+EDuIYYLdR
 fsPMVuc5AKuw4lgNyIzPrIq7SAhbhlYxhsNLKFh+XpvEF3/d0OHkT02o10iXH9Py
 I2S4qdVbKp5ZYa8Fj9fTksxAU3qn0DR8zAMh5RIFkce0u6M05UZ/2KaOW4WQVEbJ
 NFRresAmcgw=
 =fkgL
 -----END PGP SIGNATURE-----

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>
This commit is contained in:
Peter Maydell 2021-03-22 10:05:45 +00:00
commit f0f20022a0
6 changed files with 30 additions and 24 deletions

2
configure vendored
View File

@ -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 "

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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::
{
...

View File

@ -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 */

View File

@ -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))