diff options
-rw-r--r-- | tests/tail/Makefile.am | 8 | ||||
-rw-r--r-- | tests/tail/Makefile.in | 8 | ||||
-rwxr-xr-x | tests/tail/Test.pm | 17 | ||||
-rwxr-xr-x | tests/tail/tail-tests | 110 |
4 files changed, 134 insertions, 9 deletions
diff --git a/tests/tail/Makefile.am b/tests/tail/Makefile.am index 783ce12f2..96b4c36dd 100644 --- a/tests/tail/Makefile.am +++ b/tests/tail/Makefile.am @@ -8,13 +8,17 @@ tobs-c3.exp tobs-c4.in tobs-c4.exp tobs-c5.in tobs-c5.exp tobs-l1.in \ tobs-l1.exp tobs-l2.in tobs-l2.exp tobs-l3.in tobs-l3.exp tobs-l4.in \ tobs-l4.exp tobs-l5.in tobs-l5.exp tobs-1.in tobs-1.exp tobs-2.in tobs-2.exp \ tobs-3.in tobs-3.exp tobs-4.in tobs-4.exp tobs-5.in tobs-5.exp tobsx-1.in \ -tobsx-1.exp tobsx-2.in tobsx-2.exp terr-1.in terr-1.exp +tobsx-1.exp tobsx-2.in tobsx-2.exp terr-1.in terr-1.exp terr-2.in terr-2.exp \ +terr-3.in terr-3.exp terr-4.in terr-4.exp tstdin-1.in tstdin-1.exp \ +tstdin-2.in tstdin-2.exp tstdin-3.in tstdin-3.exp run_gen = tobs-c1.out tobs-c1.err tobs-c2.out tobs-c2.err tobs-c3.out \ tobs-c3.err tobs-c4.out tobs-c4.err tobs-c5.out tobs-c5.err tobs-l1.out \ tobs-l1.err tobs-l2.out tobs-l2.err tobs-l3.out tobs-l3.err tobs-l4.out \ tobs-l4.err tobs-l5.out tobs-l5.err tobs-1.out tobs-1.err tobs-2.out \ tobs-2.err tobs-3.out tobs-3.err tobs-4.out tobs-4.err tobs-5.out tobs-5.err \ -tobsx-1.out tobsx-1.err tobsx-2.out tobsx-2.err terr-1.out terr-1.err +tobsx-1.out tobsx-1.err tobsx-2.out tobsx-2.err terr-1.out terr-1.err \ +terr-2.out terr-2.err terr-3.out terr-3.err terr-4.out terr-4.err \ +tstdin-1.out tstdin-1.err tstdin-2.out tstdin-2.err tstdin-3.out tstdin-3.err ##test-files-end EXTRA_DIST = mk-script.pl Test.pm $x-tests $(explicit) $(maint_gen) diff --git a/tests/tail/Makefile.in b/tests/tail/Makefile.in index 733da7157..45128c16c 100644 --- a/tests/tail/Makefile.in +++ b/tests/tail/Makefile.in @@ -49,13 +49,17 @@ tobs-c3.exp tobs-c4.in tobs-c4.exp tobs-c5.in tobs-c5.exp tobs-l1.in \ tobs-l1.exp tobs-l2.in tobs-l2.exp tobs-l3.in tobs-l3.exp tobs-l4.in \ tobs-l4.exp tobs-l5.in tobs-l5.exp tobs-1.in tobs-1.exp tobs-2.in tobs-2.exp \ tobs-3.in tobs-3.exp tobs-4.in tobs-4.exp tobs-5.in tobs-5.exp tobsx-1.in \ -tobsx-1.exp tobsx-2.in tobsx-2.exp terr-1.in terr-1.exp +tobsx-1.exp tobsx-2.in tobsx-2.exp terr-1.in terr-1.exp terr-2.in terr-2.exp \ +terr-3.in terr-3.exp terr-4.in terr-4.exp tstdin-1.in tstdin-1.exp \ +tstdin-2.in tstdin-2.exp tstdin-3.in tstdin-3.exp run_gen = tobs-c1.out tobs-c1.err tobs-c2.out tobs-c2.err tobs-c3.out \ tobs-c3.err tobs-c4.out tobs-c4.err tobs-c5.out tobs-c5.err tobs-l1.out \ tobs-l1.err tobs-l2.out tobs-l2.err tobs-l3.out tobs-l3.err tobs-l4.out \ tobs-l4.err tobs-l5.out tobs-l5.err tobs-1.out tobs-1.err tobs-2.out \ tobs-2.err tobs-3.out tobs-3.err tobs-4.out tobs-4.err tobs-5.out tobs-5.err \ -tobsx-1.out tobsx-1.err tobsx-2.out tobsx-2.err terr-1.out terr-1.err +tobsx-1.out tobsx-1.err tobsx-2.out tobsx-2.err terr-1.out terr-1.err \ +terr-2.out terr-2.err terr-3.out terr-3.err terr-4.out terr-4.err \ +tstdin-1.out tstdin-1.err tstdin-2.out tstdin-2.err tstdin-3.out tstdin-3.err EXTRA_DIST = mk-script.pl Test.pm $x-tests $(explicit) $(maint_gen) noinst_SCRIPTS = $x-tests diff --git a/tests/tail/Test.pm b/tests/tail/Test.pm index 9d18af2cb..b1b2e8646 100755 --- a/tests/tail/Test.pm +++ b/tests/tail/Test.pm @@ -31,7 +31,22 @@ my @tv = ( # This is equivalent to +10l ['obsx-2', '+l', "x\n" . ("y\n" x 10) . 'z', "y\ny\nz", 0], -['err-1', '+2', "x\ny\n", "y\n", 0], +# This should get `tail: +cl: No such file or directory' +['err-1', '+cl', '', '', 1], + +# This should get `tail: l: invalid number of bytes' +['err-2', '-cl', '', '', 1], + +# Since the number is larger than 2^64, this should provoke +# the diagnostic: `tail: 99999999999999999999: number of bytes is so large \ +# that it is not representable' +['err-3', '-c99999999999999999999', '', '', 1], +['err-4', '-c', '', '', 1], + +# Same as -l 10 +['stdin-1', '-', '', '', 0], +['stdin-2', '-', "x\n" . ("y\n" x 10) . 'z', ("y\n" x 9) . 'z', 0], +['stdin-3', '-l 10', "x\n" . ("y\n" x 10) . 'z', ("y\n" x 9) . 'z', 0], ); sub test_vector diff --git a/tests/tail/tail-tests b/tests/tail/tail-tests index ec602d836..27398be4a 100755 --- a/tests/tail/tail-tests +++ b/tests/tail/tail-tests @@ -298,10 +298,10 @@ else esac fi test -s tobsx-2.err || rm -f tobsx-2.err -$xx +2 < $srcdir/terr-1.in > terr-1.out 2> terr-1.err +$xx +cl < $srcdir/terr-1.in > terr-1.out 2> terr-1.err code=$? -if test $code != 0 ; then - $echo Test err-1 failed: ../../src/tail return code $code differs from expected value 0 1>&2 +if test $code != 1 ; then + $echo Test err-1 failed: ../../src/tail return code $code differs from expected value 1 1>&2 errors=`expr $errors + 1` else cmp terr-1.out $srcdir/terr-1.exp @@ -315,8 +315,110 @@ else esac fi test -s terr-1.err || rm -f terr-1.err +$xx -cl < $srcdir/terr-2.in > terr-2.out 2> terr-2.err +code=$? +if test $code != 1 ; then + $echo Test err-2 failed: ../../src/tail return code $code differs from expected value 1 1>&2 + errors=`expr $errors + 1` +else + cmp terr-2.out $srcdir/terr-2.exp + case $? in + 0) if test "$VERBOSE" ; then $echo passed err-2; fi ;; # equal files + 1) $echo Test err-2 failed: files terr-2.out and $srcdir/terr-2.exp differ 1>&2; + errors=`expr $errors + 1` ;; + 2) $echo Test err-2 may have failed. 1>&2; + $echo The command "cmp terr-2.out $srcdir/terr-2.exp" failed. 1>&2 ; + errors=`expr $errors + 1` ;; + esac +fi +test -s terr-2.err || rm -f terr-2.err +$xx -c99999999999999999999 < $srcdir/terr-3.in > terr-3.out 2> terr-3.err +code=$? +if test $code != 1 ; then + $echo Test err-3 failed: ../../src/tail return code $code differs from expected value 1 1>&2 + errors=`expr $errors + 1` +else + cmp terr-3.out $srcdir/terr-3.exp + case $? in + 0) if test "$VERBOSE" ; then $echo passed err-3; fi ;; # equal files + 1) $echo Test err-3 failed: files terr-3.out and $srcdir/terr-3.exp differ 1>&2; + errors=`expr $errors + 1` ;; + 2) $echo Test err-3 may have failed. 1>&2; + $echo The command "cmp terr-3.out $srcdir/terr-3.exp" failed. 1>&2 ; + errors=`expr $errors + 1` ;; + esac +fi +test -s terr-3.err || rm -f terr-3.err +$xx -c < $srcdir/terr-4.in > terr-4.out 2> terr-4.err +code=$? +if test $code != 1 ; then + $echo Test err-4 failed: ../../src/tail return code $code differs from expected value 1 1>&2 + errors=`expr $errors + 1` +else + cmp terr-4.out $srcdir/terr-4.exp + case $? in + 0) if test "$VERBOSE" ; then $echo passed err-4; fi ;; # equal files + 1) $echo Test err-4 failed: files terr-4.out and $srcdir/terr-4.exp differ 1>&2; + errors=`expr $errors + 1` ;; + 2) $echo Test err-4 may have failed. 1>&2; + $echo The command "cmp terr-4.out $srcdir/terr-4.exp" failed. 1>&2 ; + errors=`expr $errors + 1` ;; + esac +fi +test -s terr-4.err || rm -f terr-4.err +$xx - < $srcdir/tstdin-1.in > tstdin-1.out 2> tstdin-1.err +code=$? +if test $code != 0 ; then + $echo Test stdin-1 failed: ../../src/tail return code $code differs from expected value 0 1>&2 + errors=`expr $errors + 1` +else + cmp tstdin-1.out $srcdir/tstdin-1.exp + case $? in + 0) if test "$VERBOSE" ; then $echo passed stdin-1; fi ;; # equal files + 1) $echo Test stdin-1 failed: files tstdin-1.out and $srcdir/tstdin-1.exp differ 1>&2; + errors=`expr $errors + 1` ;; + 2) $echo Test stdin-1 may have failed. 1>&2; + $echo The command "cmp tstdin-1.out $srcdir/tstdin-1.exp" failed. 1>&2 ; + errors=`expr $errors + 1` ;; + esac +fi +test -s tstdin-1.err || rm -f tstdin-1.err +$xx - < $srcdir/tstdin-2.in > tstdin-2.out 2> tstdin-2.err +code=$? +if test $code != 0 ; then + $echo Test stdin-2 failed: ../../src/tail return code $code differs from expected value 0 1>&2 + errors=`expr $errors + 1` +else + cmp tstdin-2.out $srcdir/tstdin-2.exp + case $? in + 0) if test "$VERBOSE" ; then $echo passed stdin-2; fi ;; # equal files + 1) $echo Test stdin-2 failed: files tstdin-2.out and $srcdir/tstdin-2.exp differ 1>&2; + errors=`expr $errors + 1` ;; + 2) $echo Test stdin-2 may have failed. 1>&2; + $echo The command "cmp tstdin-2.out $srcdir/tstdin-2.exp" failed. 1>&2 ; + errors=`expr $errors + 1` ;; + esac +fi +test -s tstdin-2.err || rm -f tstdin-2.err +$xx -l 10 < $srcdir/tstdin-3.in > tstdin-3.out 2> tstdin-3.err +code=$? +if test $code != 0 ; then + $echo Test stdin-3 failed: ../../src/tail return code $code differs from expected value 0 1>&2 + errors=`expr $errors + 1` +else + cmp tstdin-3.out $srcdir/tstdin-3.exp + case $? in + 0) if test "$VERBOSE" ; then $echo passed stdin-3; fi ;; # equal files + 1) $echo Test stdin-3 failed: files tstdin-3.out and $srcdir/tstdin-3.exp differ 1>&2; + errors=`expr $errors + 1` ;; + 2) $echo Test stdin-3 may have failed. 1>&2; + $echo The command "cmp tstdin-3.out $srcdir/tstdin-3.exp" failed. 1>&2 ; + errors=`expr $errors + 1` ;; + esac +fi +test -s tstdin-3.err || rm -f tstdin-3.err if test $errors = 0 ; then - $echo Passed all 18 tests. 1>&2 + $echo Passed all 24 tests. 1>&2 else $echo Failed $errors tests. 1>&2 fi |