33
)
34
'
35
36
+test_expect_success 'setup repo with misnamed object' '
37
+ git init misnamed &&
38
+ (
39
+ cd misnamed &&
40
+ test_commit content &&
41
+ good=$(obj_to_file HEAD:content.t) &&
42
+ blob=$(echo corrupt | git hash-object -w --stdin) &&
43
+ bad=$(obj_to_file $blob) &&
44
+ rm -f "$good" &&
45
+ mv "$bad" "$good"
46
+ )
47
+'
48
+
49
test_expect_success 'streaming a corrupt blob fails' '
50
(
51
cd bit-error &&
69
)
70
'
71
72
+# We use --bare to make sure that the transport detects it, not the checkout
73
+# phase.
74
+test_expect_success 'clone --no-local --bare detects corruption' '
75
+ test_must_fail git clone --no-local --bare bit-error corrupt-transport
76
+'
77
+
78
+test_expect_success 'clone --no-local --bare detects missing object' '
79
+ test_must_fail git clone --no-local --bare missing missing-transport
80
+'
81
+
82
+test_expect_failure 'clone --no-local --bare detects misnamed object' '
83
+ test_must_fail git clone --no-local --bare misnamed misnamed-transport
84
+'
85
+
86
+# We do not expect --local to detect corruption at the transport layer,
87
+# so we are really checking the checkout() code path.
88
+test_expect_success 'clone --local detects corruption' '
89
+ test_must_fail git clone --local bit-error corrupt-checkout
90
+'
91
+
92
+test_expect_failure 'clone --local detects missing objects' '
93
+ test_must_fail git clone --local missing missing-checkout
94
+'
95
+
96
+test_expect_failure 'clone --local detects misnamed objects' '
97
+ test_must_fail git clone --local misnamed misnamed-checkout
98
+'
99
+
100
test_done