]>
Commit | Line | Data |
---|---|---|
9c7c27ee NTND |
1 | #!/bin/sh |
2 | ||
3 | test_description='basic update-index tests | |
4 | ||
5 | Tests for command-line parsing and basic operation. | |
6 | ' | |
7 | ||
8 | . ./test-lib.sh | |
9 | ||
10 | test_expect_success 'update-index --nonsense fails' ' | |
11 | test_must_fail git update-index --nonsense 2>msg && | |
12 | cat msg && | |
13 | test -s msg | |
14 | ' | |
15 | ||
ac5ad864 | 16 | test_expect_success 'update-index --nonsense dumps usage' ' |
9c7c27ee | 17 | test_expect_code 129 git update-index --nonsense 2>err && |
9a001381 | 18 | test_i18ngrep "[Uu]sage: git update-index" err |
9c7c27ee NTND |
19 | ' |
20 | ||
21 | test_expect_success 'update-index -h with corrupt index' ' | |
22 | mkdir broken && | |
23 | ( | |
24 | cd broken && | |
25 | git init && | |
26 | >.git/index && | |
27 | test_expect_code 129 git update-index -h >usage 2>&1 | |
28 | ) && | |
9a001381 | 29 | test_i18ngrep "[Uu]sage: git update-index" broken/usage |
9c7c27ee NTND |
30 | ' |
31 | ||
c8e1ee4f JK |
32 | test_expect_success '--cacheinfo complains of missing arguments' ' |
33 | test_must_fail git update-index --cacheinfo | |
34 | ' | |
35 | ||
4337b585 JK |
36 | test_expect_success '--cacheinfo does not accept blob null sha1' ' |
37 | echo content >file && | |
38 | git add file && | |
39 | git rev-parse :file >expect && | |
8125a58b | 40 | test_must_fail git update-index --cacheinfo 100644 $ZERO_OID file && |
4337b585 JK |
41 | git rev-parse :file >actual && |
42 | test_cmp expect actual | |
43 | ' | |
44 | ||
45 | test_expect_success '--cacheinfo does not accept gitlink null sha1' ' | |
46 | git init submodule && | |
47 | (cd submodule && test_commit foo) && | |
48 | git add submodule && | |
49 | git rev-parse :submodule >expect && | |
8125a58b | 50 | test_must_fail git update-index --cacheinfo 160000 $ZERO_OID submodule && |
4337b585 JK |
51 | git rev-parse :submodule >actual && |
52 | test_cmp expect actual | |
53 | ' | |
54 | ||
ec160ae1 JH |
55 | test_expect_success '--cacheinfo mode,sha1,path (new syntax)' ' |
56 | echo content >file && | |
57 | git hash-object -w --stdin <file >expect && | |
58 | ||
59 | git update-index --add --cacheinfo 100644 "$(cat expect)" file && | |
60 | git rev-parse :file >actual && | |
61 | test_cmp expect actual && | |
62 | ||
63 | git update-index --add --cacheinfo "100644,$(cat expect),elif" && | |
64 | git rev-parse :elif >actual && | |
65 | test_cmp expect actual | |
66 | ' | |
67 | ||
fa137f67 NTND |
68 | test_expect_success '.lock files cleaned up' ' |
69 | mkdir cleanup && | |
70 | ( | |
71 | cd cleanup && | |
72 | mkdir worktree && | |
73 | git init repo && | |
74 | cd repo && | |
75 | git config core.worktree ../../worktree && | |
76 | # --refresh triggers late setup_work_tree, | |
77 | # active_cache_changed is zero, rollback_lock_file fails | |
78 | git update-index --refresh && | |
79 | ! test -f .git/index.lock | |
80 | ) | |
81 | ' | |
82 | ||
22433ce4 TG |
83 | test_expect_success '--chmod=+x and chmod=-x in the same argument list' ' |
84 | >A && | |
85 | >B && | |
86 | git add A B && | |
87 | git update-index --chmod=+x A --chmod=-x B && | |
31bdb1f2 | 88 | cat >expect <<-EOF && |
89 | 100755 $EMPTY_BLOB 0 A | |
90 | 100644 $EMPTY_BLOB 0 B | |
22433ce4 TG |
91 | EOF |
92 | git ls-files --stage A B >actual && | |
93 | test_cmp expect actual | |
94 | ' | |
95 | ||
9c7c27ee | 96 | test_done |