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 5mkdir -p x/dir || framework_failure_ 6echo aaa > x/a || framework_failure_ 7echo bbb > x/b || framework_failure_ 8echo ddd > x/dir/d || framework_failure_ 9 10printf '%s\n' x/b:bbb x/dir/d:ddd > exp-not-a || framework_failure_ 11printf '%s\n' x/dir/d:ddd > exp-not-ab || framework_failure_ 12printf '%s\n' x/a:aaa x/b:bbb > exp-not-d || framework_failure_ 13printf '%s\n' x/a:aaa x/b:bbb > exp-not-dir || framework_failure_ 14printf '%s\n' x/a:aaa > exp-a || framework_failure_ 15printf '%s\n' a:aaa > exp-aa || framework_failure_ 16printf '%s\n' aaa > exp-aaa || framework_failure_ 17printf '%s\n' ./x/a ./x/b ./x/dir/d | sort > exp-dotnames || framework_failure_ 18 19grep -r --exclude='a*' . x > out || fail=1 20sort out > k && mv k out 21compare exp-not-a out || fail=1 22 23grep -r --exclude='Rumpelstiltskin' --include='a*' --exclude='a*' . x > out || 24 fail=1 25sort out > k && mv k out 26compare exp-not-a out || fail=1 27 28grep -r --exclude='[ab]' . x > out || fail=1 29sort out > k && mv k out 30compare exp-not-ab out || fail=1 31 32grep -r --exclude='*d' . x > out || fail=1 33sort out > k && mv k out 34compare exp-not-d out || fail=1 35 36grep -r --exclude-dir=dir . x > out || fail=1 37sort out > k && mv k out 38compare exp-not-dir out || fail=1 39 40grep -r --exclude-dir=dir/ . x > out || fail=1 41sort out > k && mv k out 42compare exp-not-dir out || fail=1 43 44# Test with a non-glob. 45grep -r --include=a . x > out || fail=1 46# no need to sort 47compare exp-a out || fail=1 48 49# Also test --include with a "glob". 50grep -r --include='a*' . x > out || fail=1 51# no need to sort 52compare exp-a out || fail=1 53 54# --include (without --recursive) uses different code 55grep --directories=skip --include=x/a --exclude-dir=dir '^aaa$' x/* > out \ 56 || fail=1 57compare exp-a out || fail=1 58 59(cd x && grep -r --exclude-dir=. '^aaa$') > out || fail=1 60compare exp-aa out || fail=1 61 62grep --exclude=- '^aaa$' - < x/a > out || fail=1 63compare exp-aaa out || fail=1 64 65for 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 69done 70 71for 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 74done 75 76Exit $fail 77