t3910: use the UTF8_NFD_TO_NFC test prereq
Besides reusing the new test prerequisite, this fixes also the issue that the current output is not TAP compliant and produces the output "no reason given" [for skipping]. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael J Gruber committed
Jul 30, 2012 at 11:57 UTC
308566eb8b35b9279082bd5398c4252169d52b22
1 file changed
+135
-146
t/t3910-mac-os-precompose.sh
+135
-146
@@ -7,158 +7,147 @@ test_description='utf-8 decomposed (nfd) converted to precomposed (nfc)'
7
8
. ./test-lib.sh
9
10
+if ! test_have_prereq UTF8_NFD_TO_NFC
11
+then
12
+ skip_all="filesystem does not corrupt utf-8"
13
+ test_done
14
+fi
15
+
16
+# create utf-8 variables
17
Adiarnfc=`printf '\303\204'`
18
Adiarnfd=`printf 'A\314\210'`
19
13
-# check if the feature is compiled in
14
-mkdir junk &&
15
->junk/"$Adiarnfc" &&
16
-case "$(cd junk && echo *)" in
17
- "$Adiarnfd")
18
- test_nfd=1
19
- ;;
20
- *) ;;
21
-esac
22
-rm -rf junk
20
+Odiarnfc=`printf '\303\226'`
21
+Odiarnfd=`printf 'O\314\210'`
22
+AEligatu=`printf '\303\206'`
23
+Invalidu=`printf '\303\377'`
24
25
25
-if test "$test_nfd"
26
-then
27
- # create more utf-8 variables
28
- Odiarnfc=`printf '\303\226'`
29
- Odiarnfd=`printf 'O\314\210'`
30
- AEligatu=`printf '\303\206'`
31
- Invalidu=`printf '\303\377'`
26
+#Create a string with 255 bytes (decomposed)
27
+Alongd=$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd #21 Byte
28
+Alongd=$Alongd$Alongd$Alongd #63 Byte
29
+Alongd=$Alongd$Alongd$Alongd$Alongd$Adiarnfd #255 Byte
30
31
+#Create a string with 254 bytes (precomposed)
32
+Alongc=$AEligatu$AEligatu$AEligatu$AEligatu$AEligatu #10 Byte
33
+Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #50 Byte
34
+Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #250 Byte
35
+Alongc=$Alongc$AEligatu$AEligatu #254 Byte
36
34
- #Create a string with 255 bytes (decomposed)
35
- Alongd=$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd$Adiarnfd #21 Byte
36
- Alongd=$Alongd$Alongd$Alongd #63 Byte
37
- Alongd=$Alongd$Alongd$Alongd$Alongd$Adiarnfd #255 Byte
38
-
39
- #Create a string with 254 bytes (precomposed)
40
- Alongc=$AEligatu$AEligatu$AEligatu$AEligatu$AEligatu #10 Byte
41
- Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #50 Byte
42
- Alongc=$Alongc$Alongc$Alongc$Alongc$Alongc #250 Byte
43
- Alongc=$Alongc$AEligatu$AEligatu #254 Byte
44
-
45
- test_expect_success "detect if nfd needed" '
46
- precomposeunicode=`git config core.precomposeunicode` &&
47
- test "$precomposeunicode" = false &&
48
- git config core.precomposeunicode true
49
- '
50
- test_expect_success "setup" '
51
- >x &&
52
- git add x &&
53
- git commit -m "1st commit" &&
54
- git rm x &&
55
- git commit -m "rm x"
56
- '
57
- test_expect_success "setup case mac" '
58
- git checkout -b mac_os
59
- '
60
- # This will test nfd2nfc in readdir()
61
- test_expect_success "add file Adiarnfc" '
62
- echo f.Adiarnfc >f.$Adiarnfc &&
63
- git add f.$Adiarnfc &&
64
- git commit -m "add f.$Adiarnfc"
65
- '
66
- # This will test nfd2nfc in git stage()
67
- test_expect_success "stage file d.Adiarnfd/f.Adiarnfd" '
68
- mkdir d.$Adiarnfd &&
69
- echo d.$Adiarnfd/f.$Adiarnfd >d.$Adiarnfd/f.$Adiarnfd &&
70
- git stage d.$Adiarnfd/f.$Adiarnfd &&
71
- git commit -m "add d.$Adiarnfd/f.$Adiarnfd"
72
- '
73
- test_expect_success "add link Adiarnfc" '
74
- ln -s d.$Adiarnfd/f.$Adiarnfd l.$Adiarnfc &&
75
- git add l.$Adiarnfc &&
76
- git commit -m "add l.Adiarnfc"
77
- '
78
- # This will test git log
79
- test_expect_success "git log f.Adiar" '
80
- git log f.$Adiarnfc > f.Adiarnfc.log &&
81
- git log f.$Adiarnfd > f.Adiarnfd.log &&
82
- test -s f.Adiarnfc.log &&
83
- test -s f.Adiarnfd.log &&
84
- test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
85
- rm f.Adiarnfc.log f.Adiarnfd.log
86
- '
87
- # This will test git ls-files
88
- test_expect_success "git lsfiles f.Adiar" '
89
- git ls-files f.$Adiarnfc > f.Adiarnfc.log &&
90
- git ls-files f.$Adiarnfd > f.Adiarnfd.log &&
91
- test -s f.Adiarnfc.log &&
92
- test -s f.Adiarnfd.log &&
93
- test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
94
- rm f.Adiarnfc.log f.Adiarnfd.log
95
- '
96
- # This will test git mv
97
- test_expect_success "git mv" '
98
- git mv f.$Adiarnfd f.$Odiarnfc &&
99
- git mv d.$Adiarnfd d.$Odiarnfc &&
100
- git mv l.$Adiarnfd l.$Odiarnfc &&
101
- git commit -m "mv Adiarnfd Odiarnfc"
102
- '
103
- # Files can be checked out as nfc
104
- # And the link has been corrected from nfd to nfc
105
- test_expect_success "git checkout nfc" '
106
- rm f.$Odiarnfc &&
107
- git checkout f.$Odiarnfc
108
- '
109
- # Make it possible to checkout files with their NFD names
110
- test_expect_success "git checkout file nfd" '
111
- rm -f f.* &&
112
- git checkout f.$Odiarnfd
113
- '
114
- # Make it possible to checkout links with their NFD names
115
- test_expect_success "git checkout link nfd" '
116
- rm l.* &&
117
- git checkout l.$Odiarnfd
118
- '
119
- test_expect_success "setup case mac2" '
120
- git checkout master &&
121
- git reset --hard &&
122
- git checkout -b mac_os_2
123
- '
124
- # This will test nfd2nfc in git commit
125
- test_expect_success "commit file d2.Adiarnfd/f.Adiarnfd" '
126
- mkdir d2.$Adiarnfd &&
127
- echo d2.$Adiarnfd/f.$Adiarnfd >d2.$Adiarnfd/f.$Adiarnfd &&
128
- git add d2.$Adiarnfd/f.$Adiarnfd &&
129
- git commit -m "add d2.$Adiarnfd/f.$Adiarnfd" -- d2.$Adiarnfd/f.$Adiarnfd
130
- '
131
- test_expect_success "setup for long decomposed filename" '
132
- git checkout master &&
133
- git reset --hard &&
134
- git checkout -b mac_os_long_nfd_fn
135
- '
136
- test_expect_success "Add long decomposed filename" '
137
- echo longd >$Alongd &&
138
- git add * &&
139
- git commit -m "Long filename"
140
- '
141
- test_expect_success "setup for long precomposed filename" '
142
- git checkout master &&
143
- git reset --hard &&
144
- git checkout -b mac_os_long_nfc_fn
145
- '
146
- test_expect_success "Add long precomposed filename" '
147
- echo longc >$Alongc &&
148
- git add * &&
149
- git commit -m "Long filename"
150
- '
151
- # Test if the global core.precomposeunicode stops autosensing
152
- # Must be the last test case
153
- test_expect_success "respect git config --global core.precomposeunicode" '
154
- git config --global core.precomposeunicode true &&
155
- rm -rf .git &&
156
- git init &&
157
- precomposeunicode=`git config core.precomposeunicode` &&
158
- test "$precomposeunicode" = "true"
159
- '
160
-else
161
- say "Skipping nfc/nfd tests"
162
-fi
37
+test_expect_success "detect if nfd needed" '
38
+ precomposeunicode=`git config core.precomposeunicode` &&
39
+ test "$precomposeunicode" = false &&
40
+ git config core.precomposeunicode true
41
+'
42
+test_expect_success "setup" '
43
+ >x &&
44
+ git add x &&
45
+ git commit -m "1st commit" &&
46
+ git rm x &&
47
+ git commit -m "rm x"
48
+'
49
+test_expect_success "setup case mac" '
50
+ git checkout -b mac_os
51
+'
52
+# This will test nfd2nfc in readdir()
53
+test_expect_success "add file Adiarnfc" '
54
+ echo f.Adiarnfc >f.$Adiarnfc &&
55
+ git add f.$Adiarnfc &&
56
+ git commit -m "add f.$Adiarnfc"
57
+'
58
+# This will test nfd2nfc in git stage()
59
+test_expect_success "stage file d.Adiarnfd/f.Adiarnfd" '
60
+ mkdir d.$Adiarnfd &&
61
+ echo d.$Adiarnfd/f.$Adiarnfd >d.$Adiarnfd/f.$Adiarnfd &&
62
+ git stage d.$Adiarnfd/f.$Adiarnfd &&
63
+ git commit -m "add d.$Adiarnfd/f.$Adiarnfd"
64
+'
65
+test_expect_success "add link Adiarnfc" '
66
+ ln -s d.$Adiarnfd/f.$Adiarnfd l.$Adiarnfc &&
67
+ git add l.$Adiarnfc &&
68
+ git commit -m "add l.Adiarnfc"
69
+'
70
+# This will test git log
71
+test_expect_success "git log f.Adiar" '
72
+ git log f.$Adiarnfc > f.Adiarnfc.log &&
73
+ git log f.$Adiarnfd > f.Adiarnfd.log &&
74
+ test -s f.Adiarnfc.log &&
75
+ test -s f.Adiarnfd.log &&
76
+ test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
77
+ rm f.Adiarnfc.log f.Adiarnfd.log
78
+'
79
+# This will test git ls-files
80
+test_expect_success "git lsfiles f.Adiar" '
81
+ git ls-files f.$Adiarnfc > f.Adiarnfc.log &&
82
+ git ls-files f.$Adiarnfd > f.Adiarnfd.log &&
83
+ test -s f.Adiarnfc.log &&
84
+ test -s f.Adiarnfd.log &&
85
+ test_cmp f.Adiarnfc.log f.Adiarnfd.log &&
86
+ rm f.Adiarnfc.log f.Adiarnfd.log
87
+'
88
+# This will test git mv
89
+test_expect_success "git mv" '
90
+ git mv f.$Adiarnfd f.$Odiarnfc &&
91
+ git mv d.$Adiarnfd d.$Odiarnfc &&
92
+ git mv l.$Adiarnfd l.$Odiarnfc &&
93
+ git commit -m "mv Adiarnfd Odiarnfc"
94
+'
95
+# Files can be checked out as nfc
96
+# And the link has been corrected from nfd to nfc
97
+test_expect_success "git checkout nfc" '
98
+ rm f.$Odiarnfc &&
99
+ git checkout f.$Odiarnfc
100
+'
101
+# Make it possible to checkout files with their NFD names
102
+test_expect_success "git checkout file nfd" '
103
+ rm -f f.* &&
104
+ git checkout f.$Odiarnfd
105
+'
106
+# Make it possible to checkout links with their NFD names
107
+test_expect_success "git checkout link nfd" '
108
+ rm l.* &&
109
+ git checkout l.$Odiarnfd
110
+'
111
+test_expect_success "setup case mac2" '
112
+ git checkout master &&
113
+ git reset --hard &&
114
+ git checkout -b mac_os_2
115
+'
116
+# This will test nfd2nfc in git commit
117
+test_expect_success "commit file d2.Adiarnfd/f.Adiarnfd" '
118
+ mkdir d2.$Adiarnfd &&
119
+ echo d2.$Adiarnfd/f.$Adiarnfd >d2.$Adiarnfd/f.$Adiarnfd &&
120
+ git add d2.$Adiarnfd/f.$Adiarnfd &&
121
+ git commit -m "add d2.$Adiarnfd/f.$Adiarnfd" -- d2.$Adiarnfd/f.$Adiarnfd
122
+'
123
+test_expect_success "setup for long decomposed filename" '
124
+ git checkout master &&
125
+ git reset --hard &&
126
+ git checkout -b mac_os_long_nfd_fn
127
+'
128
+test_expect_success "Add long decomposed filename" '
129
+ echo longd >$Alongd &&
130
+ git add * &&
131
+ git commit -m "Long filename"
132
+'
133
+test_expect_success "setup for long precomposed filename" '
134
+ git checkout master &&
135
+ git reset --hard &&
136
+ git checkout -b mac_os_long_nfc_fn
137
+'
138
+test_expect_success "Add long precomposed filename" '
139
+ echo longc >$Alongc &&
140
+ git add * &&
141
+ git commit -m "Long filename"
142
+'
143
+# Test if the global core.precomposeunicode stops autosensing
144
+# Must be the last test case
145
+test_expect_success "respect git config --global core.precomposeunicode" '
146
+ git config --global core.precomposeunicode true &&
147
+ rm -rf .git &&
148
+ git init &&
149
+ precomposeunicode=`git config core.precomposeunicode` &&
150
+ test "$precomposeunicode" = "true"
151
+'
152
153
test_done