tests: exercise the just-fixed part of zgrep
authorJim Meyering <meyering@redhat.com>
Tue, 7 Aug 2012 16:29:14 +0000 (18:29 +0200)
committerJim Meyering <meyering@redhat.com>
Wed, 8 Aug 2012 08:26:16 +0000 (10:26 +0200)
* tests/zgrep-context: New file.
* tests/Makefile.am (TESTS): Add it.

tests/Makefile.am
tests/zgrep-context [new file with mode: 0755]

index 3b6ec31c22ed4247e478910fbfb627a3c356e86e..ddab493bd76cea2e76640b3b83dc6f1a3bf361d2 100644 (file)
@@ -25,6 +25,7 @@ TESTS =                                       \
   trailing-nul                         \
   zdiff                                        \
   zgrep-f                              \
+  zgrep-context                                \
   zgrep-signal                         \
   znew-k
 
diff --git a/tests/zgrep-context b/tests/zgrep-context
new file mode 100755 (executable)
index 0000000..1a15fa8
--- /dev/null
@@ -0,0 +1,43 @@
+#!/bin/sh
+# Ensure that zgrep -15 works.  Before gzip-1.5, it would fail.
+
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program.  If not, see <http://www.gnu.org/licenses/>.
+# limit so don't run it by default.
+
+. "${srcdir=.}/init.sh"; path_prepend_ ..
+
+require_POSIX_grep_
+
+# A limited replacement for seq: handle 1 or 2 args; increment must be 1
+seq()
+{
+  case $# in
+    1) start=1  final=$1;;
+    2) start=$1 final=$2;;
+    *) echo you lose 1>&2; exit 1;;
+  esac
+  awk 'BEGIN{for(i='$start';i<='$final';i++) print i}' < /dev/null
+}
+
+seq 40 > in || framework_failure_
+gzip < in > in.gz || framework_failure_
+seq 2 32 > exp || framework_failure_
+
+fail=0
+zgrep -15 17 - < in.gz > out || fail=1
+compare exp out || fail=1
+
+Exit $fail