From 51d0a545557d535f814e402fff20274f9e125d85 Mon Sep 17 00:00:00 2001
From: Harald Hoyer <harald@redhat.com>
Date: Thu, 16 Aug 2018 10:16:52 +0200
Subject: [PATCH] travis: use own logtee.c to reduce log output
---
.travis.yml | 12 ++++++------
Makefile | 3 +++
fedora-test.sh | 2 +-
logtee.c | 46 ++++++++++++++++++++++++++++++++++++++++++++++
test/test-functions | 15 ++++++++++++++-
5 files changed, 70 insertions(+), 8 deletions(-)
diff --git a/.travis.yml b/.travis.yml
index 1f50b6d9..5298a816 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -10,12 +10,12 @@ env:
- IMAGE=latest TESTS=50
- IMAGE=latest TESTS=70
- IMAGE=latest TESTS=99
- - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
- - IMAGE=rawhide TESTS=20
- - IMAGE=rawhide TESTS="30 31"
- - IMAGE=rawhide TESTS=50
- - IMAGE=rawhide TESTS=70
- - IMAGE=rawhide TESTS=99
+# - IMAGE=rawhide TESTS="01 02 03 04 10 11 12 13 15 17 18"
+# - IMAGE=rawhide TESTS=20
+# - IMAGE=rawhide TESTS="30 31"
+# - IMAGE=rawhide TESTS=50
+# - IMAGE=rawhide TESTS=70
+# - IMAGE=rawhide TESTS=99
before_script:
- docker pull fedora:$IMAGE
diff --git a/Makefile b/Makefile
index 414fb330..cd02dab0 100644
--- a/Makefile
+++ b/Makefile
@@ -63,6 +63,9 @@ install/strv.o: install/strv.c install/strv.h install/util.h install/macro.h ins
install/dracut-install: $(DRACUT_INSTALL_OBJECTS)
$(CC) $(LDFLAGS) -o $@ $(DRACUT_INSTALL_OBJECTS) $(LDLIBS) $(KMOD_LIBS)
+logtee: logtee.c
+ $(CC) $(LDFLAGS) -o $@ $<
+
dracut-install: install/dracut-install
ln -fs $< $@
diff --git a/fedora-test.sh b/fedora-test.sh
index e7d0f633..af38bc33 100755
--- a/fedora-test.sh
+++ b/fedora-test.sh
@@ -45,7 +45,7 @@ dnf -y install --best --allowerasing \
NCPU=$(getconf _NPROCESSORS_ONLN)
-make -j$NCPU all syncheck rpm
+make -j$NCPU all syncheck rpm logtee
cd test
diff --git a/logtee.c b/logtee.c
new file mode 100644
index 00000000..2f1937d4
--- /dev/null
+++ b/logtee.c
@@ -0,0 +1,46 @@
+#define _GNU_SOURCE
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <unistd.h>
+#include <errno.h>
+#include <limits.h>
+
+int
+main(int argc, char *argv[])
+{
+ int fd;
+ int len, slen;
+
+ if (argc != 2) {
+ fprintf(stderr, "Usage: %s <file>\n", argv[0]);
+ exit(EXIT_FAILURE);
+ }
+
+ fd = open(argv[1], O_WRONLY | O_CREAT | O_TRUNC, 0644);
+ if (fd == -1) {
+ perror("open");
+ exit(EXIT_FAILURE);
+ }
+
+ fprintf(stderr, "Logging to %s: ", argv[1]);
+
+ do {
+ len = splice(STDIN_FILENO, NULL, fd, NULL,
+ 65536, SPLICE_F_MOVE);
+
+ if (len < 0) {
+ if (errno == EAGAIN)
+ continue;
+ perror("tee");
+ exit(EXIT_FAILURE);
+ } else
+ if (len == 0)
+ break;
+ fprintf(stderr, ".", len);
+ } while (1);
+ close(fd);
+ fprintf(stderr, "\n");
+ exit(EXIT_SUCCESS);
+}
+
diff --git a/test/test-functions b/test/test-functions
index d6b28d20..02ceafec 100644
--- a/test/test-functions
+++ b/test/test-functions
@@ -60,7 +60,7 @@ while (($# > 0)); do
else
echo "TEST: $TEST_DESCRIPTION [STARTED]";
fi
- if ! [[ "$V" ]]; then
+ if [[ "$V" == "1" ]]; then
(
test_setup && test_run
ret=$?
@@ -69,6 +69,19 @@ while (($# > 0)); do
rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
exit $ret
) </dev/null >test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log 2>&1
+ elif [[ "$V" == "2" ]]; then
+ set -o pipefail
+ (
+ test_setup && test_run
+ ret=$?
+ test_cleanup
+ if ((ret!=0)) && [[ -f "$TESTDIR"/server.log ]]; then
+ mv [[ -f "$TESTDIR"/server.log ]] ./server${TEST_RUN_ID:+-$TEST_RUN_ID}.log
+ fi
+ rm -fr -- "$TESTDIR"
+ rm -f -- .testdir${TEST_RUN_ID:+-$TEST_RUN_ID}
+ exit $ret
+ ) </dev/null 2>&1 | $basedir/logtee test-${TEST_RUN_ID:+-$TEST_RUN_ID}.log
else
set -o pipefail
(