Skip to content

Commit e85fe4d

Browse files
peffgitster
authored andcommitted
more tr portability test script fixes
Dealing with NULs is not always safe with tr. On Solaris, incoming NULs are silently deleted by both the System V and UCB versions of tr. When converting to NULs, the System V version works fine, but the UCB version silently ignores the request to convert the character. This patch changes all instances of tr using NULs to use "perl -pe 'y///'" instead. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
1 parent e8e29c7 commit e85fe4d

10 files changed

+17
-17
lines changed

t/diff-lib.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@ compare_diff_raw_z () {
2121
# Also we do not check SHA1 hash generation in this test, which
2222
# is a job for t0000-basic.sh
2323

24-
tr '\000' '\012' <"$1" | sed -e "$sanitize_diff_raw_z" >.tmp-1
25-
tr '\000' '\012' <"$2" | sed -e "$sanitize_diff_raw_z" >.tmp-2
24+
perl -pe 'y/\000/\012/' <"$1" | sed -e "$sanitize_diff_raw_z" >.tmp-1
25+
perl -pe 'y/\000/\012/' <"$2" | sed -e "$sanitize_diff_raw_z" >.tmp-2
2626
git diff .tmp-1 .tmp-2 && rm -f .tmp-1 .tmp-2
2727
}
2828

t/t0020-crlf.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ test_description='CRLF conversion'
55
. ./test-lib.sh
66

77
q_to_nul () {
8-
tr Q '\000'
8+
perl -pe 'y/Q/\000/'
99
}
1010

1111
q_to_cr () {

t/t1300-repo-config.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -657,12 +657,12 @@ Qsection.sub=section.val4
657657
Qsection.sub=section.val5Q
658658
EOF
659659

660-
git config --null --list | tr '\000' 'Q' > result
660+
git config --null --list | perl -pe 'y/\000/Q/' > result
661661
echo >>result
662662

663663
test_expect_success '--null --list' 'cmp result expect'
664664

665-
git config --null --get-regexp 'val[0-9]' | tr '\000' 'Q' > result
665+
git config --null --get-regexp 'val[0-9]' | perl -pe 'y/\000/Q/' > result
666666
echo >>result
667667

668668
test_expect_success '--null --get-regexp' 'cmp result expect'

t/t3300-funny-names.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ echo 'just space
5454
no-funny
5555
tabs ," (dq) and spaces' >expected
5656
test_expect_success 'git ls-files -z with-funny' \
57-
'git ls-files -z | tr \\000 \\012 >current &&
57+
'git ls-files -z | perl -pe y/\\000/\\012/ >current &&
5858
git diff expected current'
5959

6060
t1=`git write-tree`
@@ -83,11 +83,11 @@ test_expect_success 'git diff-tree with-funny' \
8383
echo 'A
8484
tabs ," (dq) and spaces' >expected
8585
test_expect_success 'git diff-index -z with-funny' \
86-
'git diff-index -z --name-status $t0 | tr \\000 \\012 >current &&
86+
'git diff-index -z --name-status $t0 | perl -pe y/\\000/\\012/ >current &&
8787
git diff expected current'
8888

8989
test_expect_success 'git diff-tree -z with-funny' \
90-
'git diff-tree -z --name-status $t0 $t1 | tr \\000 \\012 >current &&
90+
'git diff-tree -z --name-status $t0 $t1 | perl -pe y/\\000/\\012/ >current &&
9191
git diff expected current'
9292

9393
cat > expected <<\EOF

t/t4020-diff-external.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ test_expect_success 'no diff with -diff' '
9999
git diff | grep Binary
100100
'
101101

102-
echo NULZbetweenZwords | tr Z '\000' > file
102+
echo NULZbetweenZwords | perl -pe 'y/Z/\000/' > file
103103

104104
test_expect_success 'force diff with "diff"' '
105105
echo >.gitattributes "file diff" &&

t/t4103-apply-binary.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,10 @@ git update-index --add --remove file1 file2 file4
2424
git-commit -m 'Initial Version' 2>/dev/null
2525

2626
git-checkout -b binary
27-
tr 'x' '\000' <file1 >file3
27+
perl -pe 'y/x/\000/' <file1 >file3
2828
cat file3 >file4
2929
git add file2
30-
tr '\000' 'v' <file3 >file1
30+
perl -pe 'y/\000/v/' <file3 >file1
3131
rm -f file2
3232
git update-index --add --remove file1 file2 file3 file4
3333
git-commit -m 'Second Version'

t/t4116-apply-reverse.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,14 +12,14 @@ test_description='git apply in reverse
1212
test_expect_success setup '
1313
1414
for i in a b c d e f g h i j k l m n; do echo $i; done >file1 &&
15-
tr "ijk" '\''\000\001\002'\'' <file1 >file2 &&
15+
perl -pe "y/ijk/\\000\\001\\002/" <file1 >file2 &&
1616
1717
git add file1 file2 &&
1818
git commit -m initial &&
1919
git tag initial &&
2020
2121
for i in a b c g h i J K L m o n p q; do echo $i; done >file1 &&
22-
tr "mon" '\''\000\001\002'\'' <file1 >file2 &&
22+
perl -pe "y/mon/\\000\\001\\002/" <file1 >file2 &&
2323
2424
git commit -a -m second &&
2525
git tag second &&

t/t4200-rerere.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ test_expect_success 'rerere kicked in' "! grep ======= a1"
129129
test_expect_success 'rerere prefers first change' 'git diff a1 expect'
130130

131131
rm $rr/postimage
132-
echo "$sha1 a1" | tr '\012' '\000' > .git/rr-cache/MERGE_RR
132+
echo "$sha1 a1" | perl -pe 'y/\012/\000/' > .git/rr-cache/MERGE_RR
133133

134134
test_expect_success 'rerere clear' 'git rerere clear'
135135

t/t5300-pack-object.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ test_expect_success \
1515
'rm -f .git/index*
1616
for i in a b c
1717
do
18-
dd if=/dev/zero bs=4k count=1 | tr "\\000" $i >$i &&
18+
dd if=/dev/zero bs=4k count=1 | perl -pe "y/\\000/$i/" >$i &&
1919
git update-index --add $i || return 1
2020
done &&
2121
cat c >d && echo foo >>d && git update-index --add d &&

test-sha1.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ do
1010
{
1111
test -z "$pfx" || echo "$pfx"
1212
dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null |
13-
tr '\000' 'g'
13+
perl -pe 'y/\000/g/'
1414
} | ./test-sha1 $cnt
1515
`
1616
if test "$expect" = "$actual"
@@ -55,7 +55,7 @@ do
5555
{
5656
test -z "$pfx" || echo "$pfx"
5757
dd if=/dev/zero bs=1048576 count=$cnt 2>/dev/null |
58-
tr '\000' 'g'
58+
perl -pe 'y/\000/g/'
5959
} | sha1sum |
6060
sed -e 's/ .*//'
6161
`

0 commit comments

Comments
 (0)