@matheusbsbs / matheus-bagliano / commits / 0aaaef7b0f
Fork 0

t2200, t7004: Avoid glob pattern that also matches files

On Windows, there is an unfortunate interaction between the MSYS bash and git's command line processing: - Since Windows's CMD does not do the wildcard expansion, but passes arguments like path* through to the programs, the programs must do the expansion themselves. This happens in the startup code before main() is entered. - bash, however, passes the argument "path*" to git, assuming that git will see the unquoted word unchanged as a single argument. But actually git expands the unquoted word before main() is entered. In t2200, not all names that the test case is interested in exist as files at the time when 'git ls-files' is invoked. git expands "path?" to only the subset of files the exist, and only that subset was listed, so that the test failed. We now list all interesting paths explicitly. In t7004, git exanded the pattern "*a*" to "actual" (the file that stdout was redirected to), which is not what the was tested for. We fix it by renaming the output file (and removing any existing files matching *a*). This was originally fixed by Johannes Schindelin. Signed-off-by: Johannes Sixt <j6t@kdbg.org>

Johannes Sixt committed Feb 9, 2009 at 10:24 UTC 0aaaef7b0f83ccd97d586b5c951adcb912af2664
2 files changed +4 -3
t/t2200-add-update.sh
+1 -1
@@ -150,7 +150,7 @@ test_expect_success 'add -u resolves unmerged paths' '
150 echo 2 >path3 &&
151 echo 2 >path5 &&
152 git add -u &&
153 - git ls-files -s "path?" >actual &&
153 + git ls-files -s path1 path2 path3 path4 path5 path6 >actual &&
154 {
155 echo "100644 $three 0 path1"
156 echo "100644 $one 1 path3"
t/t7004-tag.sh
+3 -2
@@ -185,8 +185,9 @@ cba
185 EOF
186 test_expect_success \
187 'listing tags with substring as pattern must print those matching' '
188 - git tag -l "*a*" > actual &&
189 - test_cmp expect actual
188 + rm *a* &&
189 + git tag -l "*a*" > current &&
190 + test_cmp expect current
191 '
192
193 cat >expect <<EOF