Merge branch 'testing' of https://github.com/vincentkfu/fio
[fio.git] / .travis.yml
index bf0433de520d7383c3e0408095be1ebbe70ade73..9de0b2a288f2165f060855ad48fcc775dd154203 100644 (file)
@@ -1,7 +1,70 @@
 language: c
+dist: bionic
+os:
+  - linux
 compiler:
   - clang
   - gcc
+arch:
+  - amd64
+  - arm64
+env:
+  matrix:
+    - BUILD_ARCH="x86"
+    - BUILD_ARCH="x86_64"
+  global:
+    - MAKEFLAGS="-j 2"
+matrix:
+  include:
+    # Default xcode image
+    - os: osx
+      compiler: clang # Workaround travis setting CC=["clang", "gcc"]
+      env: BUILD_ARCH="x86_64"
+      arch: amd64
+    # Latest xcode image (needs periodic updating)
+    - os: osx
+      compiler: clang
+      osx_image: xcode11.2
+      env: BUILD_ARCH="x86_64"
+      arch: amd64
+  exclude:
+    - os: osx
+      compiler: gcc
+    - os: linux
+      compiler: clang
+      arch: amd64
+      env: BUILD_ARCH="x86" # Only do the gcc x86 build to reduce clutter
+    - os: linux
+      env: BUILD_ARCH="x86"
+      arch: arm64
+
 before_install:
-  - sudo apt-get -qq update
-  - sudo apt-get install -qq -y libaio-dev libnuma-dev libz-dev
+  - EXTRA_CFLAGS="-Werror"
+  - if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then
+        pkgs=(libaio-dev libcunit1 libcunit1-dev libgoogle-perftools4 libibverbs-dev libiscsi-dev libnuma-dev librbd-dev librdmacm-dev libz-dev);
+        if [[ "$BUILD_ARCH" == "x86" ]]; then
+            pkgs=("${pkgs[@]/%/:i386}");
+            pkgs+=(gcc-multilib python-scipy);
+            EXTRA_CFLAGS="${EXTRA_CFLAGS} -m32";
+        else
+            pkgs+=(glusterfs-common python-scipy);
+        fi;
+        sudo apt-get -qq update;
+        sudo apt-get install --no-install-recommends -qq -y "${pkgs[@]}";
+    fi;
+  - if [[ "$TRAVIS_OS_NAME" == "osx" ]]; then
+        brew update;
+        brew install cunit;
+        if [[ "$TRAVIS_OSX_IMAGE" == "xcode11.2" ]]; then
+            pip3 install scipy;
+        fi;
+        pip install scipy;
+    fi;
+script:
+  - ./configure --extra-cflags="${EXTRA_CFLAGS}" && make
+  - make test
+  - if [[ "$TRAVIS_CPU_ARCH" == "arm64" ]]; then
+        sudo python3 t/run-fio-tests.py --skip 6 1007 1008 --debug -p 1010:"--skip 15 16 17 18 19 20";
+    else
+        sudo python3 t/run-fio-tests.py --skip 6 1007 1008 --debug;
+    fi;