t5520: prevent field splitting in content comparisons
Many tests in t5520 used the following to test the contents of files: test `cat file` = expected or test $(cat file) = expected These 2 forms, however, will be affected by field splitting and, depending on the value of $IFS, may be split into multiple arguments, making the test fail in mysterious ways. Replace the above 2 forms with: test "$(cat file)" = expected as quoting the command substitution will prevent field splitting. Signed-off-by: Paul Tan <pyokagan@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Paul Tan committed
May 18, 2015 at 21:32 UTC
c998b381477953361c8bf180871ecd6b57ff94ea
1 file changed
+35
-35
t/t5520-pull.sh
+35
-35
@@ -93,9 +93,9 @@ test_expect_success 'test . as a remote' '
93
echo updated >file &&
94
git commit -a -m updated &&
95
git checkout copy &&
96
- test `cat file` = file &&
96
+ test "$(cat file)" = file &&
97
git pull &&
98
- test `cat file` = updated
98
+ test "$(cat file)" = updated
99
'
100
101
test_expect_success 'the default remote . should not break explicit pull' '
@@ -104,9 +104,9 @@ test_expect_success 'the default remote . should not break explicit pull' '
104
git commit -a -m modified &&
105
git checkout copy &&
106
git reset --hard HEAD^ &&
107
- test `cat file` = file &&
107
+ test "$(cat file)" = file &&
108
git pull . second &&
109
- test `cat file` = modified
109
+ test "$(cat file)" = modified
110
'
111
112
test_expect_success '--rebase' '
@@ -119,23 +119,23 @@ test_expect_success '--rebase' '
119
git commit -m "new file" &&
120
git tag before-rebase &&
121
git pull --rebase . copy &&
122
- test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
123
- test new = $(git show HEAD:file2)
122
+ test "$(git rev-parse HEAD^)" = "$(git rev-parse copy)" &&
123
+ test new = "$(git show HEAD:file2)"
124
'
125
test_expect_success 'pull.rebase' '
126
git reset --hard before-rebase &&
127
test_config pull.rebase true &&
128
git pull . copy &&
129
- test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
130
- test new = $(git show HEAD:file2)
129
+ test "$(git rev-parse HEAD^)" = "$(git rev-parse copy)" &&
130
+ test new = "$(git show HEAD:file2)"
131
'
132
133
test_expect_success 'branch.to-rebase.rebase' '
134
git reset --hard before-rebase &&
135
test_config branch.to-rebase.rebase true &&
136
git pull . copy &&
137
- test $(git rev-parse HEAD^) = $(git rev-parse copy) &&
138
- test new = $(git show HEAD:file2)
137
+ test "$(git rev-parse HEAD^)" = "$(git rev-parse copy)" &&
138
+ test new = "$(git show HEAD:file2)"
139
'
140
141
test_expect_success 'branch.to-rebase.rebase should override pull.rebase' '
@@ -143,8 +143,8 @@ test_expect_success 'branch.to-rebase.rebase should override pull.rebase' '
143
test_config pull.rebase true &&
144
test_config branch.to-rebase.rebase false &&
145
git pull . copy &&
146
- test $(git rev-parse HEAD^) != $(git rev-parse copy) &&
147
- test new = $(git show HEAD:file2)
146
+ test "$(git rev-parse HEAD^)" != "$(git rev-parse copy)" &&
147
+ test new = "$(git show HEAD:file2)"
148
'
149
150
# add a feature branch, keep-merge, that is merged into master, so the
@@ -163,33 +163,33 @@ test_expect_success 'pull.rebase=false create a new merge commit' '
163
git reset --hard before-preserve-rebase &&
164
test_config pull.rebase false &&
165
git pull . copy &&
166
- test $(git rev-parse HEAD^1) = $(git rev-parse before-preserve-rebase) &&
167
- test $(git rev-parse HEAD^2) = $(git rev-parse copy) &&
168
- test file3 = $(git show HEAD:file3.t)
166
+ test "$(git rev-parse HEAD^1)" = "$(git rev-parse before-preserve-rebase)" &&
167
+ test "$(git rev-parse HEAD^2)" = "$(git rev-parse copy)" &&
168
+ test file3 = "$(git show HEAD:file3.t)"
169
'
170
171
test_expect_success 'pull.rebase=true flattens keep-merge' '
172
git reset --hard before-preserve-rebase &&
173
test_config pull.rebase true &&
174
git pull . copy &&
175
- test $(git rev-parse HEAD^^) = $(git rev-parse copy) &&
176
- test file3 = $(git show HEAD:file3.t)
175
+ test "$(git rev-parse HEAD^^)" = "$(git rev-parse copy)" &&
176
+ test file3 = "$(git show HEAD:file3.t)"
177
'
178
179
test_expect_success 'pull.rebase=1 is treated as true and flattens keep-merge' '
180
git reset --hard before-preserve-rebase &&
181
test_config pull.rebase 1 &&
182
git pull . copy &&
183
- test $(git rev-parse HEAD^^) = $(git rev-parse copy) &&
184
- test file3 = $(git show HEAD:file3.t)
183
+ test "$(git rev-parse HEAD^^)" = "$(git rev-parse copy)" &&
184
+ test file3 = "$(git show HEAD:file3.t)"
185
'
186
187
test_expect_success 'pull.rebase=preserve rebases and merges keep-merge' '
188
git reset --hard before-preserve-rebase &&
189
test_config pull.rebase preserve &&
190
git pull . copy &&
191
- test $(git rev-parse HEAD^^) = $(git rev-parse copy) &&
192
- test $(git rev-parse HEAD^2) = $(git rev-parse keep-merge)
191
+ test "$(git rev-parse HEAD^^)" = "$(git rev-parse copy)" &&
192
+ test "$(git rev-parse HEAD^2)" = "$(git rev-parse keep-merge)"
193
'
194
195
test_expect_success 'pull.rebase=invalid fails' '
@@ -202,25 +202,25 @@ test_expect_success '--rebase=false create a new merge commit' '
202
git reset --hard before-preserve-rebase &&
203
test_config pull.rebase true &&
204
git pull --rebase=false . copy &&
205
- test $(git rev-parse HEAD^1) = $(git rev-parse before-preserve-rebase) &&
206
- test $(git rev-parse HEAD^2) = $(git rev-parse copy) &&
207
- test file3 = $(git show HEAD:file3.t)
205
+ test "$(git rev-parse HEAD^1)" = "$(git rev-parse before-preserve-rebase)" &&
206
+ test "$(git rev-parse HEAD^2)" = "$(git rev-parse copy)" &&
207
+ test file3 = "$(git show HEAD:file3.t)"
208
'
209
210
test_expect_success '--rebase=true rebases and flattens keep-merge' '
211
git reset --hard before-preserve-rebase &&
212
test_config pull.rebase preserve &&
213
git pull --rebase=true . copy &&
214
- test $(git rev-parse HEAD^^) = $(git rev-parse copy) &&
215
- test file3 = $(git show HEAD:file3.t)
214
+ test "$(git rev-parse HEAD^^)" = "$(git rev-parse copy)" &&
215
+ test file3 = "$(git show HEAD:file3.t)"
216
'
217
218
test_expect_success '--rebase=preserve rebases and merges keep-merge' '
219
git reset --hard before-preserve-rebase &&
220
test_config pull.rebase true &&
221
git pull --rebase=preserve . copy &&
222
- test $(git rev-parse HEAD^^) = $(git rev-parse copy) &&
223
- test $(git rev-parse HEAD^2) = $(git rev-parse keep-merge)
222
+ test "$(git rev-parse HEAD^^)" = "$(git rev-parse copy)" &&
223
+ test "$(git rev-parse HEAD^2)" = "$(git rev-parse keep-merge)"
224
'
225
226
test_expect_success '--rebase=invalid fails' '
@@ -232,8 +232,8 @@ test_expect_success '--rebase overrides pull.rebase=preserve and flattens keep-m
232
git reset --hard before-preserve-rebase &&
233
test_config pull.rebase preserve &&
234
git pull --rebase . copy &&
235
- test $(git rev-parse HEAD^^) = $(git rev-parse copy) &&
236
- test file3 = $(git show HEAD:file3.t)
235
+ test "$(git rev-parse HEAD^^)" = "$(git rev-parse copy)" &&
236
+ test file3 = "$(git show HEAD:file3.t)"
237
'
238
239
test_expect_success '--rebase with rebased upstream' '
@@ -250,7 +250,7 @@ test_expect_success '--rebase with rebased upstream' '
250
git tag to-rebase-orig &&
251
git pull --rebase me copy &&
252
test "conflicting modification" = "$(cat file)" &&
253
- test file = $(cat file2)
253
+ test file = "$(cat file2)"
254
255
'
256
@@ -261,7 +261,7 @@ test_expect_success '--rebase with rebased default upstream' '
261
git reset --hard to-rebase-orig &&
262
git pull --rebase &&
263
test "conflicting modification" = "$(cat file)" &&
264
- test file = $(cat file2)
264
+ test file = "$(cat file2)"
265
266
'
267
@@ -282,7 +282,7 @@ test_expect_success 'pull --rebase dies early with dirty working directory' '
282
283
git checkout to-rebase &&
284
git update-ref refs/remotes/me/copy copy^ &&
285
- COPY=$(git rev-parse --verify me/copy) &&
285
+ COPY="$(git rev-parse --verify me/copy)" &&
286
git rebase --onto $COPY copy &&
287
test_config branch.to-rebase.remote me &&
288
test_config branch.to-rebase.merge refs/heads/copy &&
@@ -290,10 +290,10 @@ test_expect_success 'pull --rebase dies early with dirty working directory' '
290
echo dirty >> file &&
291
git add file &&
292
test_must_fail git pull &&
293
- test $COPY = $(git rev-parse --verify me/copy) &&
293
+ test "$COPY" = "$(git rev-parse --verify me/copy)" &&
294
git checkout HEAD -- file &&
295
git pull &&
296
- test $COPY != $(git rev-parse --verify me/copy)
296
+ test "$COPY" != "$(git rev-parse --verify me/copy)"
297
298
'
299