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