117 lines
2.8 KiB
Bash
117 lines
2.8 KiB
Bash
#!/bin/bash
|
|
|
|
test_unexported_function() {
|
|
myprog() { perl -e 'exit (shift > 12345678)' "$@"; }
|
|
# myprog is a function, so source find-first-fail first
|
|
. "$(command -v find-first-fail)"
|
|
echo Find 12345678 in unexported function
|
|
find-first-fail myprog
|
|
}
|
|
|
|
test_exported_function() {
|
|
myprog() { perl -e 'exit (shift > 12345678)' "$@"; }
|
|
# myprog is an exported function
|
|
export -f myprog
|
|
echo Find 12345678
|
|
find-first-fail myprog
|
|
}
|
|
|
|
test_startvalue() {
|
|
# exit value changes at 100 and 12345678
|
|
myprog() { perl -e '$a=shift;if($a <= 123) { exit 0; }
|
|
else { exit ($a <= 12345678) }' "$@"; }
|
|
export -f myprog
|
|
echo Find 123
|
|
find-first-fail myprog
|
|
echo Find 12345678
|
|
find-first-fail -s 200 myprog
|
|
}
|
|
|
|
test_s_v_12() {
|
|
# Multiple options
|
|
myprog() { perl -e 'exit (shift > 12)' "$@"; }
|
|
export -f myprog
|
|
echo Find 12 with progress
|
|
find-first-fail -v -s 10 myprog
|
|
echo Find 12 with progress quiet
|
|
find-first-fail -v -q -s 10 myprog
|
|
}
|
|
|
|
test_file() {
|
|
tmp=$(mktemp)
|
|
(echo Header
|
|
seq 100
|
|
echo 10
|
|
echo 12
|
|
echo 15) > "$tmp"
|
|
10_to_15() { grep ^10$ "$1" && grep ^15$ "$1"; }
|
|
export -f 10_to_15
|
|
echo 10..15
|
|
find-first-fail -s1 -qf "$tmp" 10_to_15
|
|
echo not 10..15
|
|
find-first-fail -s1 -qf "$tmp" not 10_to_15
|
|
rm "$tmp"
|
|
}
|
|
|
|
test_header() {
|
|
tmp=$(mktemp)
|
|
(echo Header
|
|
seq 10
|
|
echo 1000
|
|
seq 10) > "$tmp"
|
|
myparser() { perl -ne 'if($_ > 100) { exit 1 }' "$@"; }
|
|
export -f myparser
|
|
echo Should give:
|
|
echo Header
|
|
echo 1000
|
|
find-first-fail -s1 -f "$tmp" myparser
|
|
}
|
|
|
|
test_file_start_middle_end() {
|
|
tmp=$(mktemp)
|
|
testfile() {
|
|
(echo MyHeader
|
|
echo "$1"
|
|
echo 2
|
|
echo "$2"
|
|
echo 4
|
|
echo "$3") > "$tmp"
|
|
}
|
|
myparser() { perl -ne 'if($_ > 10) { exit 1 }' "$@"; }
|
|
export -f myparser
|
|
echo 'Find 1001'
|
|
testfile 1001 3 5
|
|
find-first-fail -s1 -f "$tmp" myparser
|
|
echo 'Find 1003'
|
|
testfile 1 1003 5
|
|
find-first-fail -s1 -f "$tmp" myparser
|
|
echo 'Find 1005'
|
|
testfile 1 3 1005
|
|
find-first-fail -s1 -f "$tmp" myparser
|
|
echo 'Find 1001 or 1005'
|
|
testfile 1001 3 1005
|
|
find-first-fail -s1 -f "$tmp" myparser
|
|
echo 'Find 1001 or 1003 or 1005'
|
|
testfile 1001 1003 1005
|
|
find-first-fail -s1 -f "$tmp" myparser
|
|
}
|
|
|
|
test_end() {
|
|
echo 'Find 12'
|
|
myprog() { perl -e 'exit (shift > 12)' "$@"; }
|
|
export -f myprog
|
|
find-first-fail -v -e 13 myprog
|
|
find-first-fail -v -s 11 -e 15 myprog
|
|
}
|
|
|
|
test_dashdash() {
|
|
echo 'Test -- will allow a function named -q'
|
|
-q() { perl -e 'exit (shift > 12)' "$@"; }
|
|
export -f -- -q
|
|
find-first-fail -q -- -q
|
|
}
|
|
|
|
export -f $(compgen -A function | grep test_)
|
|
compgen -A function | grep test_ | LC_ALL=C sort |
|
|
parallel --timeout 1000% --tag -k --joblog /tmp/jl-"$(basename "$0")" '{} 2>&1'
|