aboutsummaryrefslogtreecommitdiff
path: root/.travis.yml
AgeCommit message (Collapse)Author
2019-07-23travis: enable travis_retry for check phaseAlex Bennée
We have some flaky tests and usually the test passes on a retry. Enable travis_retry for the test phase and see if that helps keep things green. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-07-04.travis.yml: force a brew update for MacOS buildsAlex Bennée
It looks like the Travis image package databases are out of date causing the build to error with: Error: Your Homebrew is outdated. Please run `brew update`. Error: Kernel.exit Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-07-04.travis.yml: default the --disable-system build to --staticAlex Bennée
It's fairly common to build qemu-user binaries with --static linking so the binary can be copied around without libraries. Enable --static in the default qemu-user build to cover this. There are other qemu-user builds that use dynamic linking so they should catch any problems there. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-24ssh: switch from libssh2 to libsshPino Toscano
Rewrite the implementation of the ssh block driver to use libssh instead of libssh2. The libssh library has various advantages over libssh2: - easier API for authentication (for example for using ssh-agent) - easier API for known_hosts handling - supports newer types of keys in known_hosts Use APIs/features available in libssh 0.8 conditionally, to support older versions (which are not recommended though). Adjust the iotest 207 according to the different error message, and to find the default key type for localhost (to properly compare the fingerprint with). Contributed-by: Max Reitz <mreitz@redhat.com> Adjust the various Docker/Travis scripts to use libssh when available instead of libssh2. The mingw/mxe testing is dropped for now, as there are no packages for it. Signed-off-by: Pino Toscano <ptoscano@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20190620200840.17655-1-ptoscano@redhat.com Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-id: 5873173.t2JhDm7DL7@lindworm.usersys.redhat.com Signed-off-by: Max Reitz <mreitz@redhat.com>
2019-06-18Travis: print acceptance tests logs in case of job failureCleber Rosa
Because Travis doesn't allow us to keep files produced during tests (such as log files), let's print the complete job log to the "console" in case of job failures. This is a debugging aid, and given that there's been some timeouts happening on some tests, we absolutely needs the logs to have a proper action. Signed-off-by: Cleber Rosa <crosa@redhat.com> Message-Id: <20190607152223.9467-2-crosa@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Acked-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-06-18Revert "travis: Make check-acceptance job more verbose"Eduardo Habkost
This reverts commit 6d7a134da4afebe8551a69329478415cfb4cbe91. We'll have a better fix, that will show the full avocado job log only if a test case failed. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-06-12.travis.yml: add clang ubsan jobAlex Bennée
We document this on our wiki and we might as well catch it in our CI rather than waiting for it to be picked up on merge: https://wiki.qemu.org/Testing#clang_UBSan Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-06-12.travis.yml: bump gcc sanitiser job to gcc-9Alex Bennée
The toolchain PPA has it so we might as well use it. We currently have to add: -Wno-error=stringop-truncation as there are still strncpy operations in the tree operating on things that haven't been annotated with QEMU_NONSTRING. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-06-11travis: Make check-acceptance job more verboseEduardo Habkost
It will help us debug issues when tests fail. Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-28.travis.yml: enable aarch64-softmmu and alpha-softmmu tcg testsAlex Bennée
Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2019-05-21cirrus / travis: Add gnu-sed and bash for macOS and FreeBSDThomas Huth
We are going to enable the qemu-iotests during "make check" again, and for running the iotests, we need bash and gnu-sed. Reviewed-by: Li-Wen Hsu <lwhsu@freebsd.org> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Message-Id: <20190502084506.8009-5-thuth@redhat.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
2019-05-02tests/boot_linux_console: add a test for alpha + clipperCleber Rosa
Similar to the x86_64 + pc test, it boots a Linux kernel on a Malta board and verify the serial is working. One extra command added to the QEMU command line is '-vga std', because the kernel used is known to crash without it. If alpha is a target being built, "make check-acceptance" will automatically include this test by the use of the "arch:alpha" tags. Alternatively, this test can be run using: $ avocado run -t arch:alpha tests/acceptance $ avocado run -t machine:clipper tests/acceptance Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Message-Id: <20190312171824.5134-21-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-02tests/boot_linux_console: add a test for s390x + s390-ccw-virtioCleber Rosa
Just like the previous tests, boots a Linux kernel on a s390x target using the s390-ccw-virtio machine. Because it's not possible to have multiple VT220 consoles, '-nodefaults' is used, so that the one set with set_console() works correctly. Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Message-Id: <20190312171824.5134-20-crosa@redhat.com> [ehabkost: Updated kernel URL to point to fedoraproject.org] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-02tests/boot_linux_console: add a test for arm + virtCleber Rosa
Just like the previous tests, boots a Linux kernel on an arm target using the virt machine. Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Message-Id: <20190312171824.5134-19-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-02tests/boot_linux_console: add a test for aarch64 + virtCleber Rosa
Just like the previous tests, boots a Linux kernel on a aarch64 target using the virt machine. One special option added is the CPU type, given that the kernel selected fails to boot on the virt machine's default CPU (cortex-a15). Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Message-Id: <20190312171824.5134-18-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-02tests/boot_linux_console: add a test for mips64el + maltaCleber Rosa
Similar to the x86_64 + pc test, it boots a Linux kernel on a Malta board and verify the serial is working. If mips64el is a target being built, "make check-acceptance" will automatically include this test by the use of the "arch:mips64el" tags. Alternatively, this test can be run using: $ avocado run -t arch:mips64el tests/acceptance $ avocado run -t machine:malta tests/acceptance Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Message-Id: <20190312171824.5134-15-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-02tests/boot_linux_console: add a test for mips + maltaPhilippe Mathieu-Daudé
Similar to the x86_64 + pc test, it boots a Linux kernel on a Malta board and verify the serial is working. Also, it relies on the serial device set by the machine itself. If mips is a target being built, "make check-acceptance" will automatically include this test by the use of the "arch:mips" tags. Alternatively, this test can be run using: $ avocado run -t arch:mips tests/acceptance $ avocado run -t machine:malta tests/acceptance $ avocado run -t endian:big tests/acceptance Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Aleksandar Markovic <amarkovic@wavecomp.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190312171824.5134-14-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-05-02tests/acceptance: show avocado test execution by defaultCleber Rosa
The current version of the "check-acceptance" target will only show one line for execution of all tests. That's probably OK if the tests to be run are quick enough and they're always the same. But, there's already one test alone that takes on average ~5 seconds to run, we intend to adapt the list of tests to match the user's build environment (among other choices). Because of that, let's present the default Avocado UI by default. Users can always choose a different output by setting the AVOCADO_SHOW variable. Signed-off-by: Cleber Rosa <crosa@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Cornelia Huck <cohuck@redhat.com> Message-Id: <20190312171824.5134-2-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-03-25.travis.yml: reduce number of targets built while disabling thingsAlex Bennée
This build keeps timing out on Travis and it's unlikely including the additional guest front-ends will catch any failures in the fallback code. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Stefano Garzarella <sgarzare@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
2019-03-25.travis.yml: --disable-user for --without-default-devicesAlex Bennée
This is essentially a softmmu tweak so don't bother building linux-user builds as well. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
2019-03-25.travis.yml: split some more system buildsAlex Bennée
We define a new class of targets (MAIN_SOFTMMU_TARGETS) to cover the major architectures. We either just build those or use the new target-list-exclude mechanism to remove them from the list. This will hopefully stop some of the longer builds hitting the Travis timeout limit. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
2019-03-12.travis.yml: add softmmu check-tcg testsAlex Bennée
Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-03-12.travis.yml: separate softfloat from check-tcgAlex Bennée
While used by TCG it is not explicitly part of TCG and the tests can be run standalone in a minimal build. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-03-12.travis.yml: reduce the module builds to major architecturesAlex Bennée
The --enable-modules build is consistently tripping the time limit so reduce our target list to the "major" architectures. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-03-12.travis.yml: combine docs and tools build with out-of-treeAlex Bennée
We will be moving all builds out of tree eventually but for now we need to for building the docs as sphinx requires an out-of-tree build. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-03-12travis: Bump Xcode 10 image to 10.2Philippe Mathieu-Daudé
Travis enforce the use of the git protocol v2 on their images, but the 'xcode10' image doesn't handle this correctly, resulting in the brew packages installation failing: $ git config protocol.version 2 $ rvm $brew_ruby do brew bundle --verbose --global /usr/local/bin/brew tap homebrew/bundle ==> Tapping homebrew/bundle Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-bundle'... fatal: unknown value for config 'protocol.version': 2 Error: Failure while executing; `git clone https://github.com/Homebrew/homebrew-bundle /usr/local/Homebrew/Library/Taps/homebrew/homebrew-bundle --depth=1` exited with 128. Error: Failure while executing; `/usr/local/bin/brew tap homebrew/bundle` exited with 1. The newer 'xcode10.2' beta [*] image doesn't have this limitation. This image comes with the following brew packages pre-installed, which extend the current code coverage: - libffi - libpng - libtasn1 - gnutls - jpeg - nettle [*] https://blog.travis-ci.com/2019-02-12-xcode-10-2-beta-2-is-now-available Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com> Message-Id: <20190220193541.24419-1-philmd@redhat.com> [AJB: re-enabled MacOS build first] Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-03-07.travis.yml: test that no-default-device builds do not regressPaolo Bonzini
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2019-02-22.travis.yml: Remove disable-uuidDr. David Alan Gilbert
Commit 315d3184525 turned --disable-uuid into a warning only; remove the check from Travis. Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190215094502.32149-2-dgilbert@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-02-22.travis.yml: Test with disable-replicationDr. David Alan Gilbert
We've had the build break with replication disabled, so lets test that case in travis. Suggsted-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com> Message-Id: <20190215094502.32149-1-dgilbert@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-02-22.travis.yml: split debug buildsAlex Bennée
The builds are reaching the magic 50 minute limit with regularity so lets split them up. Rather than doing a full debug build on both just enable debug tcg for linux-user. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
2019-02-22.travis.yml: the xcode10 image seems to be hosedPaolo Bonzini
It fails to install homebrew. Unfortunately we cannot mark it as an expected failure because Travis does not match allow_failures rows against include rows (only against the main test matrix, which we do not use at all), so just disable it. Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Message-Id: <20190220105131.23479-1-pbonzini@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-02-08.travis.yml: fold --disable-tcg into alternate coroutine buildsAlex Bennée
The alternate coroutine builds are really only of interest to people running KVM (although I think you could use them for TCG if you really tried). As they tend to run long lets kill two birds with one stone and fold the --disable-tcg build into them. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-02-08.travis.yml: separate tools and docs into another entryAlex Bennée
Re-building the tools and documents by default is a little wasteful as they are not really affected by the main build options. Split tools and documents into their own task with a minimal softmmu and linux-user target list just to check they don't interact badly. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-02-08.travis.yml: stop requesting libffi & gettext from homebrewDaniel P. Berrangé
The default package set installed on macOS builders from Travis already includes libffi and gettext as shown by log messages: Skipping install of libffi formula. It is already up-to-date. Using libffi Skipping install of gettext formula. It is already up-to-date. Using gettext Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-17Travis CI: make specified Python versions usable on jobsCleber Rosa
For the two Python jobs, which seem to have the goal of making sure QEMU builds successfully on the 3.0-3.6 spectrum of Python 3 versions, the specified version is only applicable if a Python virtual environment is used. To do that, it's necessary to define the (primary?) language of the job to be Python. Also, Travis doesn't have a 3.0 Python installation available for the chosen distro, 3.4 being the lower version available. Reference: https://docs.travis-ci.com/user/languages/python/#specifying-python-versions Signed-off-by: Cleber Rosa <crosa@redhat.com> Message-Id: <20181109150710.31085-4-crosa@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> [ehabkost: Now 3.4 is the lowest Python version available] Signed-off-by: Eduardo Habkost <ehabkost@redhat.com> fixup! Travis CI: make specified Python versions usable on jobs Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2019-01-14travis: bump to Xenial baselineAlex Bennée
Travis is slowly catching up. Move to Xenial based images for our current builds. These are now all proper VMs. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: remove matrix settings that duplicate global settingsDaniel P. Berrangé
The global defaults request "trusty" and "gcc", so matrix entries do not need to repeat this. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Philippe Mathieu-Daudé <philmd@redhat.com>
2019-01-14travis: run tests in verbose modeDaniel P. Berrangé
Travis sometimes fails a build because it produces no console output for over 10 minutes. If this is due to a genuine hang, it would be useful to have used verbose test output to see where it failed. If this is just due to tests being very slow, having verbose output might allow the build to succeed. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: stop using container based envsDaniel P. Berrangé
The Travis container based envs are deprecated: https://docs.travis-ci.com/user/reference/trusty/ "Container-based infrastructure is currently being deprecated. Please remove any sudo: false keys in your .travis.yml file to use the default fully-virtualized Linux infrastructure instead." Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: stop redefining the script commandsDaniel P. Berrangé
One of the matrix entries redefines the script command in order to add the ${MAKEFLAGS} variable. Ideally ${MAKEFLAGS} would be referenced by the definition of the ${TEST_CMD} env variable, but this isn't possible in travis. ${MAKEFLAGS} exists to eliminate duplication of flags in every "make" command, but this cure causes a worse problem, namely the reduplication of the "script" command. It is simpler to just insert "-j3" directly into any "make" command. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: use homebrew addon for MacOSXAlex Bennée
Rather than poking homebrew manually we can specify the packages needed via the homebrew addon. These are only installed on MacOS based builds. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2019-01-14travis: don't clone git submodules upfrontDaniel P. Berrangé
The configure script & Makefile are already capable of figuring out which git submodules are required for a given build platform, and cloning them at the right time. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: standardize the syntax used for env variablesDaniel P. Berrangé
Matrix entries are defining env variables using two different syntax styles: - env: FOO=bar WIZZ=bang and - env: - FOO=bar - WIZZ=bang Switch everything to use the latter style as the more normal indentation approach. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: define all the build matrix entries in one placeDaniel P. Berrangé
The current build matrix is constructed from entries listed under the environment variable config section, as well as the general purpose build matrix section. Move everything under the general purpose section so it is clear at a glance what is in the matrix. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2019-01-14travis: add whitespace between each major section & matrix entryDaniel P. Berrangé
Improve the readability of the travis config by adding two blank lines between each major section and matrix entry. Signed-off-by: Daniel P. Berrangé <berrange@redhat.com> Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2018-11-14.travis.yml: split MacOSX builds and reduce target listAlex Bennée
We have reached the point where the MacOSX build was regularly timing out. So as before I've reduced the target list to "major" architectures to try and bring the build time down. I've added an additional MacOSX build with the latest XCode with a minimal list of "most likely" targets on MacOS. Signed-off-by: Alex Bennée <alex.bennee@linaro.org>
2018-10-30Travis support for the acceptance testsCleber Rosa
This enables the execution of the acceptance tests on Travis. Because the Travis environment is based on Ubuntu Trusty, it requires the python3-pip and python3.4-venv packages. Signed-off-by: Cleber Rosa <crosa@redhat.com> Tested-by: Philippe Mathieu-Daudé <philmd@redhat.com> Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Acked-by: Stefan Hajnoczi <stefanha@redhat.com> Acked-by: Wainer dos Santos Moschetta <wainersm@redhat.com> Reviewed-by: Caio Carrara <ccarrara@redhat.com> Message-Id: <20181018153134.8493-4-crosa@redhat.com> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
2018-07-05travis: add gcovr summary for GCOV buildAlex Bennée
This gives a more useful summary, sorted by descending % coverage, after the tests have run. The final numbers will give an idea if our coverage is getting better or worse. To keep the width sane we need to post process the file that the old gcovr tool generates. This is done with a mix of sed, awk and column in the scripts/coverage-summary.sh script. As quite a lot of lines don't get covered at all we filter out all the 0% lines. If the file doesn't appear it is not being exercised. Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2018-07-05travis: test out-of-tree buildsPhilippe Mathieu-Daudé
Force one config to build 'out-of-tree' (object files and executables are created in a tree outside the project source code). Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
2018-07-05travis: do not waste time cloning unused submodulesPhilippe Mathieu-Daudé
Builds only require: - dtc - keycodemapdb - capstone Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org> [AJB: drop wget cache] Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>