mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-29 04:52:22 -06:00
* 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:
commit
f0f20022a0
6 changed files with 30 additions and 24 deletions
2
configure
vendored
2
configure
vendored
|
@ -111,7 +111,7 @@ error_exit() {
|
||||||
do_compiler() {
|
do_compiler() {
|
||||||
# Run the compiler, capturing its output to the log. First argument
|
# Run the compiler, capturing its output to the log. First argument
|
||||||
# is compiler binary to execute.
|
# is compiler binary to execute.
|
||||||
local compiler="$1"
|
compiler="$1"
|
||||||
shift
|
shift
|
||||||
if test -n "$BASH_VERSION"; then eval '
|
if test -n "$BASH_VERSION"; then eval '
|
||||||
echo >>config.log "
|
echo >>config.log "
|
||||||
|
|
|
@ -178,7 +178,7 @@ ivshmem_client_init(IvshmemClient *client, const char *unix_sock_path,
|
||||||
int
|
int
|
||||||
ivshmem_client_connect(IvshmemClient *client)
|
ivshmem_client_connect(IvshmemClient *client)
|
||||||
{
|
{
|
||||||
struct sockaddr_un sun;
|
struct sockaddr_un s_un;
|
||||||
int fd, ret;
|
int fd, ret;
|
||||||
int64_t tmp;
|
int64_t tmp;
|
||||||
|
|
||||||
|
@ -192,16 +192,16 @@ ivshmem_client_connect(IvshmemClient *client)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
sun.sun_family = AF_UNIX;
|
s_un.sun_family = AF_UNIX;
|
||||||
ret = snprintf(sun.sun_path, sizeof(sun.sun_path), "%s",
|
ret = snprintf(s_un.sun_path, sizeof(s_un.sun_path), "%s",
|
||||||
client->unix_sock_path);
|
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");
|
IVSHMEM_CLIENT_DEBUG(client, "could not copy unix socket path\n");
|
||||||
goto err_close;
|
goto err_close;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (connect(client->sock_fd, (struct sockaddr *)&sun, sizeof(sun)) < 0) {
|
if (connect(client->sock_fd, (struct sockaddr *)&s_un, sizeof(s_un)) < 0) {
|
||||||
IVSHMEM_CLIENT_DEBUG(client, "cannot connect to %s: %s\n", sun.sun_path,
|
IVSHMEM_CLIENT_DEBUG(client, "cannot connect to %s: %s\n", s_un.sun_path,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
goto err_close;
|
goto err_close;
|
||||||
}
|
}
|
||||||
|
|
|
@ -288,7 +288,7 @@ ivshmem_server_init(IvshmemServer *server, const char *unix_sock_path,
|
||||||
int
|
int
|
||||||
ivshmem_server_start(IvshmemServer *server)
|
ivshmem_server_start(IvshmemServer *server)
|
||||||
{
|
{
|
||||||
struct sockaddr_un sun;
|
struct sockaddr_un s_un;
|
||||||
int shm_fd, sock_fd, ret;
|
int shm_fd, sock_fd, ret;
|
||||||
|
|
||||||
/* open shm file */
|
/* open shm file */
|
||||||
|
@ -327,15 +327,15 @@ ivshmem_server_start(IvshmemServer *server)
|
||||||
goto err_close_shm;
|
goto err_close_shm;
|
||||||
}
|
}
|
||||||
|
|
||||||
sun.sun_family = AF_UNIX;
|
s_un.sun_family = AF_UNIX;
|
||||||
ret = snprintf(sun.sun_path, sizeof(sun.sun_path), "%s",
|
ret = snprintf(s_un.sun_path, sizeof(s_un.sun_path), "%s",
|
||||||
server->unix_sock_path);
|
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");
|
IVSHMEM_SERVER_DEBUG(server, "could not copy unix socket path\n");
|
||||||
goto err_close_sock;
|
goto err_close_sock;
|
||||||
}
|
}
|
||||||
if (bind(sock_fd, (struct sockaddr *)&sun, sizeof(sun)) < 0) {
|
if (bind(sock_fd, (struct sockaddr *)&s_un, sizeof(s_un)) < 0) {
|
||||||
IVSHMEM_SERVER_DEBUG(server, "cannot connect to %s: %s\n", sun.sun_path,
|
IVSHMEM_SERVER_DEBUG(server, "cannot connect to %s: %s\n", s_un.sun_path,
|
||||||
strerror(errno));
|
strerror(errno));
|
||||||
goto err_close_sock;
|
goto err_close_sock;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
for utility modules that are relatively stateless or have few dependencies. To
|
||||||
add a new unit test:
|
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
|
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
|
the module API, then verify the interface behaves as expected from your
|
||||||
test. The test code should be organized with the glib testing framework.
|
test. The test code should be organized with the glib testing framework.
|
||||||
Copying and modifying an existing test is usually a good idea.
|
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
|
dictionary called ``tests``. The values are any additional sources and
|
||||||
dependencies to be linked with the test. For a simple test whose source
|
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::
|
||||||
|
|
||||||
{
|
{
|
||||||
...
|
...
|
||||||
|
|
|
@ -89,7 +89,7 @@ static void test_sync_op_pread(BdrvChild *c)
|
||||||
|
|
||||||
static void test_sync_op_pwrite(BdrvChild *c)
|
static void test_sync_op_pwrite(BdrvChild *c)
|
||||||
{
|
{
|
||||||
uint8_t buf[512];
|
uint8_t buf[512] = { 0 };
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Success */
|
/* Success */
|
||||||
|
@ -117,7 +117,7 @@ static void test_sync_op_blk_pread(BlockBackend *blk)
|
||||||
|
|
||||||
static void test_sync_op_blk_pwrite(BlockBackend *blk)
|
static void test_sync_op_blk_pwrite(BlockBackend *blk)
|
||||||
{
|
{
|
||||||
uint8_t buf[512];
|
uint8_t buf[512] = { 0 };
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Success */
|
/* Success */
|
||||||
|
@ -141,7 +141,7 @@ static void test_sync_op_load_vmstate(BdrvChild *c)
|
||||||
|
|
||||||
static void test_sync_op_save_vmstate(BdrvChild *c)
|
static void test_sync_op_save_vmstate(BdrvChild *c)
|
||||||
{
|
{
|
||||||
uint8_t buf[512];
|
uint8_t buf[512] = { 0 };
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
/* Error: Driver does not support snapshots */
|
/* Error: Driver does not support snapshots */
|
||||||
|
|
|
@ -20,12 +20,16 @@ import socket
|
||||||
import subprocess
|
import subprocess
|
||||||
import basevm
|
import basevm
|
||||||
|
|
||||||
|
FREEBSD_CONFIG = {
|
||||||
|
'cpu' : "max,sse4.2=off",
|
||||||
|
}
|
||||||
|
|
||||||
class FreeBSDVM(basevm.BaseVM):
|
class FreeBSDVM(basevm.BaseVM):
|
||||||
name = "freebsd"
|
name = "freebsd"
|
||||||
arch = "x86_64"
|
arch = "x86_64"
|
||||||
|
|
||||||
link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.1/FreeBSD-12.1-RELEASE-amd64-disc1.iso.xz"
|
link = "https://download.freebsd.org/ftp/releases/ISO-IMAGES/12.2/FreeBSD-12.2-RELEASE-amd64-disc1.iso.xz"
|
||||||
csum = "7394c3f60a1e236e7bd3a05809cf43ae39a3b8e5d42d782004cf2f26b1cfcd88"
|
csum = "a4530246cafbf1dd42a9bd3ea441ca9a78a6a0cd070278cbdf63f3a6f803ecae"
|
||||||
size = "20G"
|
size = "20G"
|
||||||
pkgs = [
|
pkgs = [
|
||||||
# build tools
|
# build tools
|
||||||
|
@ -61,6 +65,8 @@ class FreeBSDVM(basevm.BaseVM):
|
||||||
"zstd",
|
"zstd",
|
||||||
]
|
]
|
||||||
|
|
||||||
|
# TODO: Enable gnutls again once FreeBSD's libtasn1 got fixed
|
||||||
|
# See: https://gitlab.com/gnutls/libtasn1/-/merge_requests/71
|
||||||
BUILD_SCRIPT = """
|
BUILD_SCRIPT = """
|
||||||
set -e;
|
set -e;
|
||||||
rm -rf /home/qemu/qemu-test.*
|
rm -rf /home/qemu/qemu-test.*
|
||||||
|
@ -68,7 +74,7 @@ class FreeBSDVM(basevm.BaseVM):
|
||||||
mkdir src build; cd src;
|
mkdir src build; cd src;
|
||||||
tar -xf /dev/vtbd1;
|
tar -xf /dev/vtbd1;
|
||||||
cd ../build
|
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};
|
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("IPv6", "n")
|
||||||
self.console_wait_send("Resolver", "\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("Confirmation", "y")
|
||||||
self.console_wait_send("Time & Date", "\n")
|
self.console_wait_send("Time & Date", "\n")
|
||||||
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")
|
self.print_step("All done")
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
sys.exit(basevm.main(FreeBSDVM))
|
sys.exit(basevm.main(FreeBSDVM, config=FREEBSD_CONFIG))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue