1 | #!/bin/sh
|
---|
2 | # Use of any --include or --exclude* option would segfault in 2.6 and 2.6.1
|
---|
3 | . "${srcdir=.}/init.sh"; path_prepend_ ../src
|
---|
4 |
|
---|
5 | mkdir -p x/dir || framework_failure_
|
---|
6 | echo aaa > x/a || framework_failure_
|
---|
7 | echo bbb > x/b || framework_failure_
|
---|
8 | echo ddd > x/dir/d || framework_failure_
|
---|
9 |
|
---|
10 | printf '%s\n' x/b:bbb x/dir/d:ddd > exp-not-a || framework_failure_
|
---|
11 | printf '%s\n' x/dir/d:ddd > exp-not-ab || framework_failure_
|
---|
12 | printf '%s\n' x/a:aaa x/b:bbb > exp-not-d || framework_failure_
|
---|
13 | printf '%s\n' x/a:aaa x/b:bbb > exp-not-dir || framework_failure_
|
---|
14 | printf '%s\n' x/a:aaa > exp-a || framework_failure_
|
---|
15 | printf '%s\n' a:aaa > exp-aa || framework_failure_
|
---|
16 | printf '%s\n' aaa > exp-aaa || framework_failure_
|
---|
17 | printf '%s\n' ./x/a ./x/b ./x/dir/d | sort > exp-dotnames || framework_failure_
|
---|
18 |
|
---|
19 | grep -r --exclude='a*' . x > out || fail=1
|
---|
20 | sort out > k && mv k out
|
---|
21 | compare exp-not-a out || fail=1
|
---|
22 |
|
---|
23 | grep -r --exclude='Rumpelstiltskin' --include='a*' --exclude='a*' . x > out ||
|
---|
24 | fail=1
|
---|
25 | sort out > k && mv k out
|
---|
26 | compare exp-not-a out || fail=1
|
---|
27 |
|
---|
28 | grep -r --exclude='[ab]' . x > out || fail=1
|
---|
29 | sort out > k && mv k out
|
---|
30 | compare exp-not-ab out || fail=1
|
---|
31 |
|
---|
32 | grep -r --exclude='*d' . x > out || fail=1
|
---|
33 | sort out > k && mv k out
|
---|
34 | compare exp-not-d out || fail=1
|
---|
35 |
|
---|
36 | grep -r --exclude-dir=dir . x > out || fail=1
|
---|
37 | sort out > k && mv k out
|
---|
38 | compare exp-not-dir out || fail=1
|
---|
39 |
|
---|
40 | grep -r --exclude-dir=dir/ . x > out || fail=1
|
---|
41 | sort out > k && mv k out
|
---|
42 | compare exp-not-dir out || fail=1
|
---|
43 |
|
---|
44 | # Test with a non-glob.
|
---|
45 | grep -r --include=a . x > out || fail=1
|
---|
46 | # no need to sort
|
---|
47 | compare exp-a out || fail=1
|
---|
48 |
|
---|
49 | # Also test --include with a "glob".
|
---|
50 | grep -r --include='a*' . x > out || fail=1
|
---|
51 | # no need to sort
|
---|
52 | compare exp-a out || fail=1
|
---|
53 |
|
---|
54 | # --include (without --recursive) uses different code
|
---|
55 | grep --directories=skip --include=x/a --exclude-dir=dir '^aaa$' x/* > out \
|
---|
56 | || fail=1
|
---|
57 | compare exp-a out || fail=1
|
---|
58 |
|
---|
59 | (cd x && grep -r --exclude-dir=. '^aaa$') > out || fail=1
|
---|
60 | compare exp-aa out || fail=1
|
---|
61 |
|
---|
62 | grep --exclude=- '^aaa$' - < x/a > out || fail=1
|
---|
63 | compare exp-aaa out || fail=1
|
---|
64 |
|
---|
65 | for exclude in 'x' 'x*'; do
|
---|
66 | grep -rl --exclude-dir="$exclude" . x > out
|
---|
67 | test $? -eq 1 || fail=1
|
---|
68 | compare /dev/null out || fail=1
|
---|
69 | done
|
---|
70 |
|
---|
71 | for exclude in 'x' 'x*' './x' './x*'; do
|
---|
72 | grep -rl --exclude-dir="$exclude" . ./x | sort > out || fail=1
|
---|
73 | compare /dev/null out || fail=1
|
---|
74 | done
|
---|
75 |
|
---|
76 | Exit $fail
|
---|