From 95417ca711a75612da86a25acd20134efdbc0e67 Mon Sep 17 00:00:00 2001 From: Eric Wong Date: Sat, 17 Oct 2009 22:42:56 -0700 Subject: tests: add unbuffered tee(1)-like helper Buffering enabled in tee(1) was making tests more difficult to debug. --- t/GNUmakefile | 2 +- t/README | 2 +- t/bin/utee | 12 ++++++++++++ 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100755 t/bin/utee diff --git a/t/GNUmakefile b/t/GNUmakefile index 934c179..7eac0d5 100644 --- a/t/GNUmakefile +++ b/t/GNUmakefile @@ -44,7 +44,7 @@ else SH_TEST_OPTS += -x endif quiet_pre = @echo '* $@'; - quiet_post = 2>&1 | tee $(t_log); exit $$(cat $(t_code)) + quiet_post = 2>&1 | ./bin/utee $(t_log); exit $$(cat $(t_code)) pfx = $@ endif diff --git a/t/README b/t/README index 4745b6d..a019dbf 100644 --- a/t/README +++ b/t/README @@ -14,7 +14,7 @@ comfortable writing integration tests with. * {GNU make}[http://www.gnu.org/software/make/] * {socat}[http://www.dest-unreach.org/socat/] * {curl}[http://curl.haxx.se/] -* standard UNIX shell utilities (Bourne sh, awk, sed, grep, tee, ...) +* standard UNIX shell utilities (Bourne sh, awk, sed, grep, ...) We do not use bashisms or any non-portable, non-POSIX constructs in our shell code. We use the "pipefail" option if available and diff --git a/t/bin/utee b/t/bin/utee new file mode 100755 index 0000000..e48f307 --- /dev/null +++ b/t/bin/utee @@ -0,0 +1,12 @@ +#!/usr/bin/env ruby +# tee(1) as distributed on most(all?) systems is buffered in luserspace +# this only does unbuffered writes (with line-buffered input) to make +# test output appear in real-time +# -*- encoding: binary -*- +$stdin.binmode +$stdout.binmode +fp = File.open(ARGV.shift, "wb") +$stdin.each_line do |line| + fp.syswrite line + $stdout.syswrite line +end -- cgit v1.2.3-24-ge0c7