gnucash maint: Have Travis print out build logs in case of test failures
Geert Janssens
gjanssens at code.gnucash.org
Sat Sep 2 10:02:18 EDT 2017
Updated via https://github.com/Gnucash/gnucash/commit/1e7c721e (commit)
from https://github.com/Gnucash/gnucash/commit/0e0e4d29 (commit)
commit 1e7c721e8d2f61d1b90c5400eb9bfe042544a960
Author: Geert Janssens <geert at kobaltwit.be>
Date: Sat Sep 2 12:35:28 2017 +0200
Have Travis print out build logs in case of test failures
To get the after_failure line work, I had to move the inline
build script to a separate script (util/travis-script.sh)
The second script (util/travis-after-failure.sh) will output
LastTest.log for cmake based builds and all files named
test*.log for an autotools based build.
Note: this commit also comes with a delibarate test failure
to illustrate the Travis behaviour. It will be removed in the
next commit.
diff --git a/.travis.yml b/.travis.yml
index cd1626a..ee692a4 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -12,31 +12,5 @@ before_install:
- sudo apt-get build-dep -qq gnucash
- sudo apt-get install -qq swig xsltproc libdbd-sqlite3 cmake3 texinfo ninja-build
- sudo apt-get --reinstall install -qq language-pack-en language-pack-fr
-script: |
- # The -e here says that if any line below fails, the whole script fails
- set -ev
-
- # First, do the cmake build using the default Makefile generator
- if [[ "$BUILDTYPE" == "cmake-make" ]]; then
- mkdir /tmp/gnucash-build-cmake-make
- cd /tmp/gnucash-build-cmake-make
- cmake $TRAVIS_BUILD_DIR
- make -j 4
- make check
-
- # Next, do cmake again, using the Ninja generator this time
- elif [[ "$BUILDTYPE" == "cmake-ninja" ]]; then
- mkdir /tmp/gnucash-build-cmake-ninja
- cd /tmp/gnucash-build-cmake-ninja
- cmake -G Ninja $TRAVIS_BUILD_DIR
- ninja
- ninja check
-
- # Finally, do the autotools build
- elif [[ "$BUILDTYPE" == "autotools" ]]; then
- cd $TRAVIS_BUILD_DIR
- ./autogen.sh
- ./configure
- make
- make check
- fi
+script: ./util/travis-script.sh
+after_failure: ./util/travis-after-failure.sh
diff --git a/src/import-export/test/test-import-parse.c b/src/import-export/test/test-import-parse.c
index e75cd44..cb30b47 100644
--- a/src/import-export/test/test-import-parse.c
+++ b/src/import-export/test/test-import-parse.c
@@ -52,7 +52,7 @@ my_ymd_t dates_ydm_vals[] = { {1999, 12, 31}, {2001, 6, 17}, {2001, 11, 23}, {0,
const char* dates_mdy[] = { "1/16/2001", "12-31-1999", "01171983", NULL };
my_ymd_t dates_mdy_vals[] = { {2001, 1, 16}, {1999, 12, 31}, {1983, 1, 17}, {0, 0, 0} };
const char* dates_dmy[] = { "16/1/2001", "31-12-1999", "17011976", NULL };
-my_ymd_t dates_dmy_vals[] = { {2001, 1, 16}, {1999, 12, 31}, {1976, 1, 17}, {0, 0, 0} };
+my_ymd_t dates_dmy_vals[] = { {2000, 1, 16}, {1999, 12, 31}, {1976, 1, 17}, {0, 0, 0} };
const char* dates_yxx[] = { "99/1/6", "1999-12'10", "20010306", NULL };
const char* dates_xxy[] = { "1/3/99", "12-10'1999", "03062001", NULL };
diff --git a/util/travis-after-failure.sh b/util/travis-after-failure.sh
new file mode 100755
index 0000000..64957de
--- /dev/null
+++ b/util/travis-after-failure.sh
@@ -0,0 +1,19 @@
+#! /bin/bash
+
+# Build logs are located in different places depending on the build environment used
+if [[ "$BUILDTYPE" == "cmake-make" ]] || [[ "$BUILDTYPE" == "cmake-ninja" ]]; then
+ echo "##### LastTest.log #####"
+ echo "#########################"
+ cat /tmp/gnucash-build-${BUILDTYPE}/Testing/Temporary/LastTest.log
+elif [[ "$BUILDTYPE" == "autotools" ]]; then
+ for logfile in $( find . -name 'test*.log' ); do
+ SIZE=$((${#logfile} + 12))
+ HRULE=$(head -c $SIZE < /dev/zero | tr '\0' '#')
+ echo $HRULE
+ echo "##### ${logfile} #####"
+ echo $HRULE
+ cat -- "$logfile"
+ echo -e "\n\n"
+ done
+fi
+
diff --git a/util/travis-script.sh b/util/travis-script.sh
new file mode 100755
index 0000000..18dc80f
--- /dev/null
+++ b/util/travis-script.sh
@@ -0,0 +1,30 @@
+#! /bin/bash -ev
+# The -e above says that if any line below fails, the whole script fails
+
+# Run tests in different build configurations depending on the
+# value of the BUILDTYPE environment variable
+# 1. cmake build using the default Makefile generator
+if [[ "$BUILDTYPE" == "cmake-make" ]]; then
+ mkdir /tmp/gnucash-build-cmake-make
+ cd /tmp/gnucash-build-cmake-make
+ cmake $TRAVIS_BUILD_DIR
+ make -j 4
+ make check
+
+# 2. cmake build using the Ninja generator
+elif [[ "$BUILDTYPE" == "cmake-ninja" ]]; then
+ mkdir /tmp/gnucash-build-cmake-ninja
+ cd /tmp/gnucash-build-cmake-ninja
+ cmake -G Ninja $TRAVIS_BUILD_DIR
+ ninja
+ ninja check
+
+# 3. autotools build
+elif [[ "$BUILDTYPE" == "autotools" ]]; then
+ cd $TRAVIS_BUILD_DIR
+ ./autogen.sh
+ ./configure
+ make
+ make check
+fi
+
Summary of changes:
.travis.yml | 30 ++----------------------------
src/import-export/test/test-import-parse.c | 2 +-
util/travis-after-failure.sh | 19 +++++++++++++++++++
util/travis-script.sh | 30 ++++++++++++++++++++++++++++++
4 files changed, 52 insertions(+), 29 deletions(-)
create mode 100755 util/travis-after-failure.sh
create mode 100755 util/travis-script.sh
More information about the gnucash-changes
mailing list