1 |
#! /bin/sh
|
2 |
|
3 |
# This file is generated by configure from RunGrepTest.in. Make any changes
|
4 |
# to that file.
|
5 |
|
6 |
# Set the C locale, so that sort(1) behaves predictably.
|
7 |
LC_ALL=C
|
8 |
export LC_ALL
|
9 |
|
10 |
echo " "
|
11 |
echo "Testing pcregrep"
|
12 |
./pcregrep -V
|
13 |
|
14 |
# Run pcregrep tests. The assumption is that the PCRE tests check the library
|
15 |
# itself. What we are checking here is the file handling and options that are
|
16 |
# supported by pcregrep.
|
17 |
|
18 |
cf="diff -ub"
|
19 |
valgrind=
|
20 |
if [ ! -d testdata ] ; then
|
21 |
ln -s @top_srcdir@/testdata testdata
|
22 |
fi
|
23 |
testdata=./testdata
|
24 |
|
25 |
while [ $# -gt 0 ] ; do
|
26 |
case $1 in
|
27 |
valgrind) valgrind="valgrind -q --leak-check=no";;
|
28 |
*) echo "Unknown argument $1"; exit 1;;
|
29 |
esac
|
30 |
shift
|
31 |
done
|
32 |
|
33 |
# Check for the availability of UTF-8 support
|
34 |
|
35 |
./pcretest -C | ./pcregrep "No UTF-8 support" >/dev/null
|
36 |
utf8=$?
|
37 |
|
38 |
echo "---------------------------- Test 1 ------------------------------" >testtry
|
39 |
$valgrind ./pcregrep PATTERN $testdata/grepinput >>testtry
|
40 |
|
41 |
echo "---------------------------- Test 2 ------------------------------" >>testtry
|
42 |
$valgrind ./pcregrep '^PATTERN' $testdata/grepinput >>testtry
|
43 |
|
44 |
echo "---------------------------- Test 3 ------------------------------" >>testtry
|
45 |
$valgrind ./pcregrep -in PATTERN $testdata/grepinput >>testtry
|
46 |
|
47 |
echo "---------------------------- Test 4 ------------------------------" >>testtry
|
48 |
$valgrind ./pcregrep -ic PATTERN $testdata/grepinput >>testtry
|
49 |
|
50 |
echo "---------------------------- Test 5 ------------------------------" >>testtry
|
51 |
$valgrind ./pcregrep -in PATTERN $testdata/grepinput $testdata/grepinputx >>testtry
|
52 |
|
53 |
echo "---------------------------- Test 6 ------------------------------" >>testtry
|
54 |
$valgrind ./pcregrep -inh PATTERN $testdata/grepinput $testdata/grepinputx >>testtry
|
55 |
|
56 |
echo "---------------------------- Test 7 ------------------------------" >>testtry
|
57 |
$valgrind ./pcregrep -il PATTERN $testdata/grepinput $testdata/grepinputx >>testtry
|
58 |
|
59 |
echo "---------------------------- Test 8 ------------------------------" >>testtry
|
60 |
$valgrind ./pcregrep -l PATTERN $testdata/grepinput $testdata/grepinputx >>testtry
|
61 |
|
62 |
echo "---------------------------- Test 9 ------------------------------" >>testtry
|
63 |
$valgrind ./pcregrep -q PATTERN $testdata/grepinput $testdata/grepinputx >>testtry
|
64 |
echo "RC=$?" >>testtry
|
65 |
|
66 |
echo "---------------------------- Test 10 -----------------------------" >>testtry
|
67 |
$valgrind ./pcregrep -q NEVER-PATTERN $testdata/grepinput $testdata/grepinputx >>testtry
|
68 |
echo "RC=$?" >>testtry
|
69 |
|
70 |
echo "---------------------------- Test 11 -----------------------------" >>testtry
|
71 |
$valgrind ./pcregrep -vn pattern $testdata/grepinputx >>testtry
|
72 |
|
73 |
echo "---------------------------- Test 12 -----------------------------" >>testtry
|
74 |
$valgrind ./pcregrep -ix pattern $testdata/grepinputx >>testtry
|
75 |
|
76 |
echo "---------------------------- Test 13 -----------------------------" >>testtry
|
77 |
$valgrind ./pcregrep -f$testdata/greplist $testdata/grepinputx >>testtry
|
78 |
|
79 |
echo "---------------------------- Test 14 -----------------------------" >>testtry
|
80 |
$valgrind ./pcregrep -w pat $testdata/grepinput $testdata/grepinputx >>testtry
|
81 |
|
82 |
echo "---------------------------- Test 15 -----------------------------" >>testtry
|
83 |
$valgrind ./pcregrep 'abc^*' $testdata/grepinput 2>>testtry >>testtry
|
84 |
|
85 |
echo "---------------------------- Test 16 -----------------------------" >>testtry
|
86 |
$valgrind ./pcregrep abc $testdata/grepinput $testdata/nonexistfile 2>>testtry >>testtry
|
87 |
|
88 |
echo "---------------------------- Test 17 -----------------------------" >>testtry
|
89 |
$valgrind ./pcregrep -M 'the\noutput' $testdata/grepinput >>testtry
|
90 |
|
91 |
echo "---------------------------- Test 18 -----------------------------" >>testtry
|
92 |
$valgrind ./pcregrep -Mn '(the\noutput|dog\.\n--)' $testdata/grepinput >>testtry
|
93 |
|
94 |
echo "---------------------------- Test 19 -----------------------------" >>testtry
|
95 |
$valgrind ./pcregrep -Mix 'Pattern' $testdata/grepinputx >>testtry
|
96 |
|
97 |
echo "---------------------------- Test 20 -----------------------------" >>testtry
|
98 |
$valgrind ./pcregrep -Mixn 'complete pair\nof lines' $testdata/grepinputx >>testtry
|
99 |
|
100 |
echo "---------------------------- Test 21 -----------------------------" >>testtry
|
101 |
$valgrind ./pcregrep -nA3 'four' $testdata/grepinputx >>testtry
|
102 |
|
103 |
echo "---------------------------- Test 22 -----------------------------" >>testtry
|
104 |
$valgrind ./pcregrep -nB3 'four' $testdata/grepinputx >>testtry
|
105 |
|
106 |
echo "---------------------------- Test 23 -----------------------------" >>testtry
|
107 |
$valgrind ./pcregrep -C3 'four' $testdata/grepinputx >>testtry
|
108 |
|
109 |
echo "---------------------------- Test 24 -----------------------------" >>testtry
|
110 |
$valgrind ./pcregrep -A9 'four' $testdata/grepinputx >>testtry
|
111 |
|
112 |
echo "---------------------------- Test 25 -----------------------------" >>testtry
|
113 |
$valgrind ./pcregrep -nB9 'four' $testdata/grepinputx >>testtry
|
114 |
|
115 |
echo "---------------------------- Test 26 -----------------------------" >>testtry
|
116 |
$valgrind ./pcregrep -A9 -B9 'four' $testdata/grepinputx >>testtry
|
117 |
|
118 |
echo "---------------------------- Test 27 -----------------------------" >>testtry
|
119 |
$valgrind ./pcregrep -A10 'four' $testdata/grepinputx >>testtry
|
120 |
|
121 |
echo "---------------------------- Test 28 -----------------------------" >>testtry
|
122 |
$valgrind ./pcregrep -nB10 'four' $testdata/grepinputx >>testtry
|
123 |
|
124 |
echo "---------------------------- Test 29 -----------------------------" >>testtry
|
125 |
$valgrind ./pcregrep -C12 -B10 'four' $testdata/grepinputx >>testtry
|
126 |
|
127 |
echo "---------------------------- Test 30 -----------------------------" >>testtry
|
128 |
$valgrind ./pcregrep -inB3 'pattern' $testdata/grepinput $testdata/grepinputx >>testtry
|
129 |
|
130 |
echo "---------------------------- Test 31 -----------------------------" >>testtry
|
131 |
$valgrind ./pcregrep -inA3 'pattern' $testdata/grepinput $testdata/grepinputx >>testtry
|
132 |
|
133 |
echo "---------------------------- Test 32 -----------------------------" >>testtry
|
134 |
$valgrind ./pcregrep -L 'fox' $testdata/grepinput $testdata/grepinputx >>testtry
|
135 |
|
136 |
echo "---------------------------- Test 33 -----------------------------" >>testtry
|
137 |
$valgrind ./pcregrep 'fox' $testdata/grepnonexist >>testtry 2>&1
|
138 |
echo "RC=$?" >>testtry
|
139 |
|
140 |
echo "---------------------------- Test 34 -----------------------------" >>testtry
|
141 |
$valgrind ./pcregrep -s 'fox' $testdata/grepnonexist >>testtry 2>&1
|
142 |
echo "RC=$?" >>testtry
|
143 |
|
144 |
echo "---------------------------- Test 35 -----------------------------" >>testtry
|
145 |
$valgrind ./pcregrep -L -r --include=grepinputx 'fox' $testdata >>testtry
|
146 |
echo "RC=$?" >>testtry
|
147 |
|
148 |
echo "---------------------------- Test 36 -----------------------------" >>testtry
|
149 |
$valgrind ./pcregrep -L -r --include=grepinput --exclude 'grepinput$' 'fox' $testdata | sort >>testtry
|
150 |
echo "RC=$?" >>testtry
|
151 |
|
152 |
echo "---------------------------- Test 37 -----------------------------" >>testtry
|
153 |
$valgrind ./pcregrep '^(a+)*\d' $testdata/grepinput >>testtry 2>teststderr
|
154 |
echo "RC=$?" >>testtry
|
155 |
echo "======== STDERR ========" >>testtry
|
156 |
cat teststderr >>testtry
|
157 |
|
158 |
echo "---------------------------- Test 38 ------------------------------" >>testtry
|
159 |
$valgrind ./pcregrep '>\x00<' $testdata/grepinput >>testtry
|
160 |
|
161 |
echo "---------------------------- Test 39 ------------------------------" >>testtry
|
162 |
$valgrind ./pcregrep -A1 'before the binary zero' $testdata/grepinput >>testtry
|
163 |
|
164 |
echo "---------------------------- Test 40 ------------------------------" >>testtry
|
165 |
$valgrind ./pcregrep -B1 'after the binary zero' $testdata/grepinput >>testtry
|
166 |
|
167 |
echo "---------------------------- Test 41 ------------------------------" >>testtry
|
168 |
$valgrind ./pcregrep -B1 -o '\w+ the binary zero' $testdata/grepinput >>testtry
|
169 |
|
170 |
echo "---------------------------- Test 41 ------------------------------" >>testtry
|
171 |
$valgrind ./pcregrep -B1 -onH '\w+ the binary zero' $testdata/grepinput >>testtry
|
172 |
|
173 |
echo "---------------------------- Test 42 ------------------------------" >>testtry
|
174 |
$valgrind ./pcregrep -on 'before|zero|after' $testdata/grepinput >>testtry
|
175 |
|
176 |
echo "---------------------------- Test 43 ------------------------------" >>testtry
|
177 |
$valgrind ./pcregrep -on -e before -e zero -e after $testdata/grepinput >>testtry
|
178 |
|
179 |
echo "---------------------------- Test 44 ------------------------------" >>testtry
|
180 |
$valgrind ./pcregrep -on -f $testdata/greplist -e binary $testdata/grepinput >>testtry
|
181 |
|
182 |
echo "---------------------------- Test 45 ------------------------------" >>testtry
|
183 |
$valgrind ./pcregrep -e abc -e '(unclosed' $testdata/grepinput 2>>testtry >>testtry
|
184 |
|
185 |
echo "---------------------------- Test 46 ------------------------------" >>testtry
|
186 |
$valgrind ./pcregrep -Fx "AB.VE
|
187 |
elephant" $testdata/grepinput >>testtry
|
188 |
|
189 |
echo "---------------------------- Test 47 ------------------------------" >>testtry
|
190 |
$valgrind ./pcregrep -F "AB.VE
|
191 |
elephant" $testdata/grepinput >>testtry
|
192 |
|
193 |
echo "---------------------------- Test 48 ------------------------------" >>testtry
|
194 |
$valgrind ./pcregrep -F -e DATA -e "AB.VE
|
195 |
elephant" $testdata/grepinput >>testtry
|
196 |
|
197 |
echo "---------------------------- Test 49 ------------------------------" >>testtry
|
198 |
$valgrind ./pcregrep "^(abc|def|ghi|jkl)" $testdata/grepinputx >>testtry
|
199 |
|
200 |
# Now compare the results.
|
201 |
|
202 |
$cf testtry $testdata/grepoutput
|
203 |
if [ $? != 0 ] ; then exit 1; fi
|
204 |
|
205 |
|
206 |
# These tests require UTF-8 support
|
207 |
|
208 |
if [ $utf8 -ne 0 ] ; then
|
209 |
echo "Testing pcregrep UTF-8 features"
|
210 |
|
211 |
echo "---------------------------- Test U1 ------------------------------" >testtry
|
212 |
$valgrind ./pcregrep -n -u --newline=any "^X" $testdata/grepinput8 >>testtry
|
213 |
|
214 |
echo "---------------------------- Test U2 ------------------------------" >>testtry
|
215 |
$valgrind ./pcregrep -n -u -C 3 --newline=any "Match" $testdata/grepinput8 >>testtry
|
216 |
|
217 |
$cf testtry $testdata/grepoutput8
|
218 |
if [ $? != 0 ] ; then exit 1; fi
|
219 |
|
220 |
else
|
221 |
echo "Skipping pcregrep UTF-8 tests: no UTF-8 support in PCRE library"
|
222 |
fi
|
223 |
|
224 |
|
225 |
# The tests for various newline values may not work in environments where
|
226 |
# the newlines in the files are not \n.
|
227 |
|
228 |
echo "Testing pcregrep newline settings"
|
229 |
|
230 |
echo "---------------------------- Test N1 ------------------------------" >testtry
|
231 |
$valgrind ./pcregrep -N CR "^(abc|def|ghi|jkl)" $testdata/grepinputx >>testtry
|
232 |
|
233 |
echo "---------------------------- Test N2 ------------------------------" >>testtry
|
234 |
$valgrind ./pcregrep --newline=crlf "^(abc|def|ghi|jkl)" $testdata/grepinputx >>testtry
|
235 |
|
236 |
echo "---------------------------- Test N3 ------------------------------" >>testtry
|
237 |
pattern=`printf 'def\rjkl'`
|
238 |
$valgrind ./pcregrep --newline=cr -F "$pattern" $testdata/grepinputx >>testtry
|
239 |
|
240 |
echo "---------------------------- Test n$ ------------------------------" >>testtry
|
241 |
pattern=`printf 'xxx\r\njkl'`
|
242 |
$valgrind ./pcregrep --newline=crlf -F "$pattern" $testdata/grepinputx >>testtry
|
243 |
|
244 |
echo "---------------------------- Test N5 ------------------------------" >>testtry
|
245 |
$valgrind ./pcregrep -n --newline=any "^(abc|def|ghi|jkl)" $testdata/grepinputx >>testtry
|
246 |
|
247 |
$cf testtry $testdata/grepoutputN
|
248 |
if [ $? != 0 ] ; then exit 1; fi
|
249 |
|
250 |
exit 0
|
251 |
|
252 |
# End
|