summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/tail/Makefile.am8
-rw-r--r--tests/tail/Makefile.in8
-rwxr-xr-xtests/tail/Test.pm17
-rwxr-xr-xtests/tail/tail-tests110
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