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