Merge branch 'maint'
[git] / t / t3004-ls-files-basic.sh
1 #!/bin/sh
2
3 test_description='basic ls-files tests
4
5 This test runs git ls-files with various unusual or malformed
6 command-line arguments.
7 '
8
9 . ./test-lib.sh
10
11 >empty
12
13 test_expect_success 'ls-files in empty repository' '
14         git ls-files >actual &&
15         test_cmp empty actual
16 '
17
18 test_expect_success 'ls-files with nonexistent path' '
19         git ls-files doesnotexist >actual &&
20         test_cmp empty actual
21 '
22
23 test_expect_success 'ls-files with nonsense option' '
24         test_expect_code 129 git ls-files --nonsense 2>actual &&
25         test_i18ngrep "[Uu]sage: git ls-files" actual
26 '
27
28 test_expect_success 'ls-files -h in corrupt repository' '
29         mkdir broken &&
30         (
31                 cd broken &&
32                 git init &&
33                 >.git/index &&
34                 test_expect_code 129 git ls-files -h >usage 2>&1
35         ) &&
36         test_i18ngrep "[Uu]sage: git ls-files " broken/usage
37 '
38
39 test_expect_success SYMLINKS 'ls-files with absolute paths to symlinks' '
40         mkdir subs &&
41         ln -s nosuch link &&
42         ln -s ../nosuch subs/link &&
43         git add link subs/link &&
44         git ls-files -s link subs/link >expect &&
45         git ls-files -s "$(pwd)/link" "$(pwd)/subs/link" >actual &&
46         test_cmp expect actual &&
47
48         (
49                 cd subs &&
50                 git ls-files -s link >../expect &&
51                 git ls-files -s "$(pwd)/link" >../actual
52         ) &&
53         test_cmp expect actual
54 '
55
56 test_done