Skip to content

Commit

Permalink
t/t7008: workaround broken handling of \000 by printf on IRIX
Browse files Browse the repository at this point in the history
On IRIX 6.5, the printf utility in /usr/bin does not appear to handle the
\ddd notation according to POSIX.  This printf appears to halt processing
of the string argument and ignore any additional characters in the string.
Work around this flaw by replacing the \000's with 'Q' and using the
q_to_nul helper function provided by test-lib.sh

This problem with printf is not apparent when using the Bash shell since
Bash implements a POSIX compatible printf function internally.

Signed-off-by: Brandon Casey <casey@nrlssc.navy.mil>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Brandon Casey authored and Junio C Hamano committed Sep 10, 2010
1 parent 154adcf commit f985487
Showing 1 changed file with 7 additions and 7 deletions.
14 changes: 7 additions & 7 deletions t/t7008-grep-binary.sh
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ test_description='git grep in binary files'
. ./test-lib.sh

test_expect_success 'setup' "
printf 'binary\000file\n' >a &&
echo 'binaryQfile' | q_to_nul >a &&
git add a &&
git commit -m.
"
Expand Down Expand Up @@ -70,32 +70,32 @@ test_expect_failure 'git grep .fi a' '
'

test_expect_success 'git grep -F y<NUL>f a' "
printf 'y\000f' >f &&
printf 'yQf' | q_to_nul >f &&
git grep -f f -F a
"

test_expect_success 'git grep -F y<NUL>x a' "
printf 'y\000x' >f &&
printf 'yQx' | q_to_nul >f &&
test_must_fail git grep -f f -F a
"

test_expect_success 'git grep -Fi Y<NUL>f a' "
printf 'Y\000f' >f &&
printf 'YQf' | q_to_nul >f &&
git grep -f f -Fi a
"

test_expect_failure 'git grep -Fi Y<NUL>x a' "
printf 'Y\000x' >f &&
printf 'YQx' | q_to_nul >f &&
test_must_fail git grep -f f -Fi a
"

test_expect_success 'git grep y<NUL>f a' "
printf 'y\000f' >f &&
printf 'yQf' | q_to_nul >f &&
git grep -f f a
"

test_expect_failure 'git grep y<NUL>x a' "
printf 'y\000x' >f &&
printf 'yQx' | q_to_nul >f &&
test_must_fail git grep -f f a
"

Expand Down

0 comments on commit f985487

Please sign in to comment.