1 #! /usr/bin/ksh
   2 #
   3 #
   4 # This file and its contents are supplied under the terms of the
   5 # Common Development and Distribution License ("CDDL"), version 1.0.
   6 # You may only use this file in accordance with the terms of version
   7 # 1.0 of the CDDL.
   8 #
   9 # A full copy of the text of the CDDL should have accompanied this
  10 # source.  A copy of the CDDL is also available via the Internet at
  11 # http://www.illumos.org/license/CDDL.
  12 #
  13 
  14 #
  15 # Copyright 2017 Nexenta Systems, Inc. All rights reserved.
  16 #
  17 
  18 XGREP=${XGREP:=/usr/xpg4/bin/grep}
  19 FILEDIR=$MY_TESTS/tests/files
  20 
  21 fail() {
  22         echo $1
  23         exit -1
  24 }
  25 
  26 FLAGLIST="
  27 -n
  28 -c
  29 -q
  30 -v
  31 -nv
  32 -vc
  33 -A 5
  34 -nA 5
  35 -cA 5
  36 -qA 5
  37 -vA 5
  38 -nvA 5
  39 -vcA 5
  40 -B 5
  41 -nB 5
  42 -cB 5
  43 -qB 5
  44 -vB 5
  45 -nvB 5
  46 -vcB 5
  47 -C 5
  48 -nC 5
  49 -cC 5
  50 -qC 5
  51 -vC 5
  52 -nvC 5
  53 -vcC 5
  54 -B 5 -A 2
  55 -nB 5 -A 2
  56 -cB 5 -A 2
  57 -qB 5 -A 2
  58 -vB 5 -A 2
  59 -nvB 5 -A 2
  60 -vcB 5 -A 2
  61 -B 5 -A 2 -C 5
  62 -nB 5 -A 2 -C 5
  63 -cB 5 -A 2 -C 5
  64 -qB 5 -A 2 -C 5
  65 -vB 5 -A 2 -C 5
  66 -nvB 5 -A 2 -C 5
  67 -vcB 5 -A 2 -C 5
  68 -5
  69 -n -5
  70 -c -5
  71 -q -5
  72 -v -5
  73 -nv -5
  74 -vc -5
  75 -50000
  76 -n -50000
  77 -c -50000
  78 -q -50000
  79 -v -50000
  80 -nv -50000
  81 -vc -50000
  82 -C 5 -B 4 -A 2
  83 -nC 5 -B 4 -A 2
  84 -cC 5 -B 4 -A 2
  85 -qC 5 -B 4 -A 2
  86 -vC 5 -B 4 -A 2
  87 -nvC 5 -B 4 -A 2
  88 -vcC 5 -B 4 -A 2"
  89 
  90 echo "$FLAGLIST" > /tmp/flags
  91 
  92 cd $FILEDIR
  93 
  94 i=0
  95 while read flags; do
  96         print -n "test $i: grep $flags: "
  97         $XGREP $flags a test0 test1 test2 \
  98             test3 test4 test5 test6 \
  99             test7 > out
 100         err="$?"
 101         if [[ $err -ne 0 ]]; then
 102                 fail "failed on exit: $err"
 103         elif [ -n "$(diff out gout$i)" ]; then
 104                 print "$(diff out gout$i)"
 105                 fail "output is different"
 106         fi
 107         echo "passed"
 108         ((i++))
 109 done < /tmp/flags
 110 
 111 FLAGS2="-nE"
 112 
 113 echo "$FLAGS2" > /tmp/flags
 114 
 115 while read flags; do
 116         print -n "test $i: grep $flags: "
 117         $XGREP $flags ".*" testnl > out
 118         err="$?"
 119         if [[ $err -ne 0 ]]; then
 120                 fail "failed on exit: $err"
 121         elif [ -n "$(diff out gout$i)" ]; then
 122                 print "$(diff out gout$i)"
 123                 fail "output is different"
 124         fi
 125         echo "passed"
 126         ((i++))
 127 done < /tmp/flags
 128 
 129 FLAGS3="-B 1
 130 -vA 1
 131 -vB 1"
 132 
 133 echo "$FLAGS3" > /tmp/flags
 134 
 135 while read flags; do
 136         print -n "test $i: grep $flags: "
 137         $XGREP $flags a testnl > out
 138         err="$?"
 139         if [[ $err -ne 0 ]]; then
 140                 fail "failed on exit: $err"
 141         elif [ -n "$(diff out gout$i)" ]; then
 142                 print "$(diff out gout$i)"
 143                 fail "output is different"
 144         fi
 145         echo "passed"
 146         ((i++))
 147 done < /tmp/flags