aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.cirrus.yml11
-rw-r--r--.gitlab-ci.yml2
-rw-r--r--.shippable.yml2
-rw-r--r--.travis.yml50
-rw-r--r--tests/docker/Makefile.include6
-rw-r--r--tests/docker/dockerfiles/travis.docker6
-rwxr-xr-xtests/vm/basevm.py5
-rwxr-xr-xtests/vm/netbsd7
8 files changed, 71 insertions, 18 deletions
diff --git a/.cirrus.yml b/.cirrus.yml
index 8326a3a..27efc48 100644
--- a/.cirrus.yml
+++ b/.cirrus.yml
@@ -25,3 +25,14 @@ macos_task:
- ./configure --python=/usr/local/bin/python3 || { cat config.log; exit 1; }
- gmake -j$(sysctl -n hw.ncpu)
- gmake check -j$(sysctl -n hw.ncpu)
+
+macos_xcode_task:
+ osx_instance:
+ # this is an alias for the latest Xcode
+ image: mojave-xcode
+ install_script:
+ - brew install pkg-config gnu-sed glib pixman make sdl2
+ script:
+ - ./configure --cc=clang || { cat config.log; exit 1; }
+ - gmake -j$(sysctl -n hw.ncpu)
+ - gmake check -j$(sysctl -n hw.ncpu)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ed8067f..be57c6a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -5,7 +5,7 @@ before_script:
build-system1:
script:
- apt-get install -y -qq libgtk-3-dev libvte-dev nettle-dev libcacard-dev
- libusb-dev libvde-dev libspice-protocol-dev libgl1-mesa-dev
+ libusb-dev libvde-dev libspice-protocol-dev libgl1-mesa-dev libvdeplug-dev
- ./configure --enable-werror --target-list="aarch64-softmmu alpha-softmmu
cris-softmmu hppa-softmmu lm32-softmmu moxie-softmmu microblazeel-softmmu
mips64el-softmmu m68k-softmmu ppc-softmmu riscv64-softmmu sparc-softmmu"
diff --git a/.shippable.yml b/.shippable.yml
index bbc6f88..f74a3de 100644
--- a/.shippable.yml
+++ b/.shippable.yml
@@ -27,8 +27,6 @@ env:
TARGET_LIST=ppc64-softmmu,ppc64-linux-user,ppc64abi32-linux-user
build:
pre_ci:
- # usually host ARCH is set by configure
- - echo "ARCH=$(uname -m)" > config-host.mak
- make docker-image-${IMAGE} V=1
pre_ci_boot:
image_name: qemu
diff --git a/.travis.yml b/.travis.yml
index d0b9e09..ba3a8d4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -29,7 +29,7 @@ addons:
- libcap-dev
- libcap-ng-dev
- libgcc-4.8-dev
- - libgnutls-dev
+ - libgnutls28-dev
- libgtk-3-dev
- libiscsi-dev
- liblttng-ust-dev
@@ -37,15 +37,17 @@ addons:
- libnfs-dev
- libnss3-dev
- libpixman-1-dev
- - libpng12-dev
+ - libpng-dev
- librados-dev
- - libsdl1.2-dev
+ - libsdl2-dev
+ - libsdl2-image-dev
- libseccomp-dev
- libspice-protocol-dev
- libspice-server-dev
- libssh-dev
- liburcu-dev
- libusb-1.0-0-dev
+ - libvdeplug-dev
- libvte-2.91-dev
- sparse
- uuid-dev
@@ -89,13 +91,13 @@ git:
before_script:
- if [ "$TRAVIS_OS_NAME" == "osx" ] ; then export PATH="/usr/local/opt/ccache/libexec:$PATH" ; fi
- - command -v ccache && ccache --zero-stats
+ - if command -v ccache ; then ccache --zero-stats ; fi
- mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
- ${SRC_DIR}/configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
script:
- make -j3 && travis_retry ${TEST_CMD}
after_script:
- - command -v ccache && ccache --show-stats
+ - if command -v ccache ; then ccache --show-stats ; fi
matrix:
@@ -124,12 +126,13 @@ matrix:
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
+ # --enable-debug implies --enable-debug-tcg, also runs quite a bit slower
- env:
- - CONFIG="--enable-debug --enable-debug-tcg --disable-user"
+ - CONFIG="--enable-debug --target-list=${MAIN_SOFTMMU_TARGETS}"
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
- # TCG debug can be run just on it's own and is mostly agnostic to user/softmmu distinctions
+ # TCG debug can be run just on its own and is mostly agnostic to user/softmmu distinctions
- env:
- CONFIG="--enable-debug-tcg --disable-system"
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-debug"
@@ -186,6 +189,7 @@ matrix:
- env:
- CONFIG="--target-list=${MAIN_SOFTMMU_TARGETS} "
+ - CACHE_NAME="${TRAVIS_BRANCH}-linux-clang-sanitize"
compiler: clang
before_script:
- ./configure ${CONFIG} --extra-cflags="-fsanitize=undefined -Werror" || { cat config.log && exit 1; }
@@ -244,7 +248,7 @@ matrix:
- env:
- CONFIG="--target-list=i386-softmmu,ppc-softmmu,ppc64-softmmu,m68k-softmmu,x86_64-softmmu"
os: osx
- osx_image: xcode10.2
+ osx_image: xcode10.3
compiler: clang
@@ -307,7 +311,8 @@ matrix:
- libpixman-1-dev
- libpng12-dev
- librados-dev
- - libsdl1.2-dev
+ - libsdl2-dev
+ - libsdl2-image-dev
- libseccomp-dev
- libspice-protocol-dev
- libspice-server-dev
@@ -329,13 +334,36 @@ matrix:
# Run check-tcg against linux-user
- env:
- - CONFIG="--disable-system"
+ - CONFIG="--disable-system --enable-debug-tcg"
- TEST_CMD="make -j3 check-tcg V=1"
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
# Run check-tcg against softmmu targets
- env:
- - CONFIG="--target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
+ - CONFIG="--enable-debug-tcg --target-list=xtensa-softmmu,arm-softmmu,aarch64-softmmu,alpha-softmmu"
- TEST_CMD="make -j3 check-tcg V=1"
- CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
+
+
+ # Release builds
+ # The make-release script expect a QEMU version, so our tag must start with a 'v'.
+ # This is the case when release candidate tags are created.
+ - if: tag IS present AND tag =~ /^v\d+\.\d+(\.\d+)?(-\S*)?$/
+ env:
+ # We want to build from the release tarball
+ - BUILD_DIR="release/build/dir" SRC_DIR="../../.."
+ - BASE_CONFIG="--prefix=$PWD/dist"
+ - CONFIG="--target-list=x86_64-softmmu,aarch64-softmmu,armeb-linux-user,ppc-linux-user"
+ - TEST_CMD="make install -j3"
+ - QEMU_VERSION="${TRAVIS_TAG:1}"
+ - CACHE_NAME="${TRAVIS_BRANCH}-linux-gcc-default"
+ before_script:
+ - command -v ccache && ccache --zero-stats
+ - mkdir -p ${BUILD_DIR} && cd ${BUILD_DIR}
+ script:
+ - make -C ${SRC_DIR} qemu-${QEMU_VERSION}.tar.bz2
+ - ls -l ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2
+ - tar -xf ${SRC_DIR}/qemu-${QEMU_VERSION}.tar.bz2 && cd qemu-${QEMU_VERSION}
+ - ./configure ${BASE_CONFIG} ${CONFIG} || { cat config.log && exit 1; }
+ - make install
diff --git a/tests/docker/Makefile.include b/tests/docker/Makefile.include
index 89c56a3..19dbe26 100644
--- a/tests/docker/Makefile.include
+++ b/tests/docker/Makefile.include
@@ -2,6 +2,8 @@
.PHONY: docker docker-test docker-clean docker-image docker-qemu-src
+HOST_ARCH = $(if $(ARCH),$(ARCH),$(shell uname -m))
+
DOCKER_SUFFIX := .docker
DOCKER_FILES_DIR := $(SRC_PATH)/tests/docker/dockerfiles
# we don't run tests on intermediate images (used as base by another image)
@@ -88,7 +90,7 @@ endif
# Enforce dependencies for composite images
docker-image-debian9-mxe: docker-image-debian9
-ifeq ($(ARCH),x86_64)
+ifeq ($(HOST_ARCH),x86_64)
docker-image-debian-amd64: docker-image-debian9
DOCKER_PARTIAL_IMAGES += debian-amd64-cross
else
@@ -106,7 +108,7 @@ docker-image-debian-win32-cross: docker-image-debian9-mxe
docker-image-debian-win64-cross: docker-image-debian9-mxe
# For non-x86 hosts not all cross-compilers have been packaged
-ifneq ($(ARCH),x86_64)
+ifneq ($(HOST_ARCH),x86_64)
DOCKER_PARTIAL_IMAGES += debian-mips-cross debian-mipsel-cross debian-mips64el-cross
DOCKER_PARTIAL_IMAGES += debian-ppc64el-cross
DOCKER_PARTIAL_IMAGES += debian-s390x-cross
diff --git a/tests/docker/dockerfiles/travis.docker b/tests/docker/dockerfiles/travis.docker
index ea14da2..e8eb48d 100644
--- a/tests/docker/dockerfiles/travis.docker
+++ b/tests/docker/dockerfiles/travis.docker
@@ -1,4 +1,8 @@
-FROM travisci/ci-sardonyx:packer-1546978056-2c98a19
+#
+# Travis Image - this is broadly the same image that we run our CI
+# tests on.
+#
+FROM travisci/ci-sardonyx:packer-1552557266-f909ac5
ENV DEBIAN_FRONTEND noninteractive
ENV LANG en_US.UTF-8
ENV LC_ALL en_US.UTF-8
diff --git a/tests/vm/basevm.py b/tests/vm/basevm.py
index b5d1479..2929de2 100755
--- a/tests/vm/basevm.py
+++ b/tests/vm/basevm.py
@@ -57,6 +57,8 @@ class BaseVM(object):
arch = "#arch"
# command to halt the guest, can be overridden by subclasses
poweroff = "poweroff"
+ # enable IPv6 networking
+ ipv6 = True
def __init__(self, debug=False, vcpus=None):
self._guest = None
self._tmpdir = os.path.realpath(tempfile.mkdtemp(prefix="vm-test-",
@@ -81,7 +83,8 @@ class BaseVM(object):
self._args = [ \
"-nodefaults", "-m", "4G",
"-cpu", "max",
- "-netdev", "user,id=vnet,hostfwd=:127.0.0.1:0-:22",
+ "-netdev", "user,id=vnet,hostfwd=:127.0.0.1:0-:22" +
+ (",ipv6=no" if not self.ipv6 else ""),
"-device", "virtio-net-pci,netdev=vnet",
"-vnc", "127.0.0.1:0,to=20"]
if vcpus and vcpus > 1:
diff --git a/tests/vm/netbsd b/tests/vm/netbsd
index ee9eaea..18aa56a 100755
--- a/tests/vm/netbsd
+++ b/tests/vm/netbsd
@@ -28,6 +28,13 @@ class NetBSDVM(basevm.BaseVM):
gmake --output-sync -j{jobs} {target} {verbose};
"""
+ # Workaround for NetBSD + IPv6 + slirp issues.
+ # NetBSD seems to ignore the ICMPv6 Destination Unreachable
+ # messages generated by slirp. When the host has no IPv6
+ # connectivity, this causes every connection to ftp.NetBSD.org
+ # take more than a minute to be established.
+ ipv6 = False
+
def build_image(self, img):
cimg = self._download_with_cache("http://download.patchew.org/netbsd-7.1-amd64.img.xz",
sha256sum='b633d565b0eac3d02015cd0c81440bd8a7a8df8512615ac1ee05d318be015732')