Add tests for git-prune
It seems that git prune changed behaviour with respect to revisions added from command line, probably when it became a builtin. Currently, it prints a short usage and exits: instead, it should take those revisions into account and not prune them. So add a couple of test to point this out. We'll be fixing this by switching to parse_options(), so add tests to detect bogus command line parameters as well, to keep ourselves from introducing regressions. Signed-off-by: Michele Ballabio <barra_cuda@katamail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michele Ballabio committed
Mar 23, 2008 at 22:34 UTC
0c62705a0d9730df027a4e4074a8d9d5293e0b9b
1 file changed
+34
t/t5304-prune.sh
+34
@@ -78,4 +78,38 @@ test_expect_success 'gc: start with ok gc.pruneExpire' '
78
79
'
80
81
+test_expect_success 'prune: prune nonsense parameters' '
82
+
83
+ test_must_fail git prune garbage &&
84
+ test_must_fail git prune --- &&
85
+ test_must_fail git prune --no-such-option
86
+
87
+'
88
+
89
+test_expect_success 'prune: prune unreachable heads' '
90
+
91
+ git config core.logAllRefUpdates false &&
92
+ mv .git/logs .git/logs.old &&
93
+ : > file2 &&
94
+ git add file2 &&
95
+ git commit -m temporary &&
96
+ tmp_head=$(git rev-list -1 HEAD) &&
97
+ git reset HEAD^ &&
98
+ git prune &&
99
+ test_must_fail git reset $tmp_head --
100
+
101
+'
102
+
103
+test_expect_failure 'prune: do not prune heads listed as an argument' '
104
+
105
+ : > file2 &&
106
+ git add file2 &&
107
+ git commit -m temporary &&
108
+ tmp_head=$(git rev-list -1 HEAD) &&
109
+ git reset HEAD^ &&
110
+ git prune -- $tmp_head &&
111
+ git reset $tmp_head --
112
+
113
+'
114
+
115
test_done