[v2,2/2] ci: enable unit tests under travis-ci

Message ID 20190802212552.8879-3-aconole@redhat.com (mailing list archive)
State Accepted, archived
Headers
Series Enable fast-unit tests under travis |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/Intel-compilation success Compilation OK

Commit Message

Aaron Conole Aug. 2, 2019, 9:25 p.m. UTC
  When building under Travis (or another linux CI service), enable
running the fast-tests when the RUN_TESTS environment variable is set.

For the Travis service, introduce two new shared builds, since the
shared builds are the ones passing.  Builds that are statically
linked still show some issues in some of the eal_flags tests.  We make
new builds for this, rather than piggybacking, because 'at a glance'
it is difficult to determine why a build fails, and if tests were
enabled for all builds, then looking at the logs for any build would
take a significant amount of time.

Finally, the command to invoke fast tests includes a timeout
multiplier, since some CI environments don't have enough resources to
complete the tests in the default 10s timeout period.

Signed-off-by: Aaron Conole <aconole@redhat.com>
Acked-by: Michael Santana <msantana@redhat.com>
Reviewed-by: David Marchand <david.marchand at redhat.com>
---
 .ci/linux-build.sh | 8 ++++++++
 .ci/linux-setup.sh | 8 +++++++-
 .travis.yml        | 9 ++++++++-
 3 files changed, 23 insertions(+), 2 deletions(-)
  

Patch

diff --git a/.ci/linux-build.sh b/.ci/linux-build.sh
index d5783c1a4..d5ad919d1 100755
--- a/.ci/linux-build.sh
+++ b/.ci/linux-build.sh
@@ -22,3 +22,11 @@  fi
 OPTS="$OPTS --default-library=$DEF_LIB"
 meson build --werror -Dexamples=all $OPTS
 ninja -C build
+
+if [ "$BUILD_DOCS" = "1" ]; then
+    ninja -C build doc
+fi
+
+if [ "$RUN_TESTS" = "1" ]; then
+    sudo meson test -C build --suite fast-tests -t 3
+fi
diff --git a/.ci/linux-setup.sh b/.ci/linux-setup.sh
index acdf9f370..a40e62eaa 100755
--- a/.ci/linux-setup.sh
+++ b/.ci/linux-setup.sh
@@ -1,3 +1,9 @@ 
 #!/bin/sh
 
-python3 -m pip install --upgrade meson --user
+# need to install as 'root' since some of the unit tests won't run without it
+sudo python3 -m pip install --upgrade meson
+
+# setup hugepages
+cat /proc/meminfo
+sudo sh -c 'echo 1024 > /proc/sys/vm/nr_hugepages'
+cat /proc/meminfo
diff --git a/.travis.yml b/.travis.yml
index 7b167fa64..781f9f666 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -30,6 +30,7 @@  env:
   - DEF_LIB="shared"
   - DEF_LIB="static" OPTS="-Denable_kmods=false"
   - DEF_LIB="shared" OPTS="-Denable_kmods=false"
+  - DEF_LIB="shared" RUN_TESTS=1 BUILD_DOCS=1
 
 matrix:
   include:
@@ -51,7 +52,7 @@  matrix:
       apt:
         packages:
           - *extra_packages
-  - env: DEF_LIB="shared" EXTRA_PACKAGES=1
+  - env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
     compiler: gcc
     addons:
       apt:
@@ -81,6 +82,12 @@  matrix:
       apt:
         packages:
           - *extra_packages
+  - env: DEF_LIB="shared" EXTRA_PACKAGES=1 RUN_TESTS=1 BUILD_DOCS=1
+    compiler: clang
+    addons:
+      apt:
+        packages:
+          - *extra_packages
   - env: DEF_LIB="static" OPTS="-Denable_kmods=false" EXTRA_PACKAGES=1
     compiler: clang
     addons: