Skip to content

Commit ccdf745

Browse files
PhilipOakleydscho
authored andcommitted
hash-object --stdin: verify that it works with >4GB/LLP64
Just like the `hash-object --literally` code path, the `--stdin` code path also needs to use `size_t` instead of `unsigned long` to represent memory sizes, otherwise it would cause problems on platforms using the LLP64 data model (such as Windows). To limit the scope of the test case, the object is explicitly not written to the object store, nor are any filters applied. The `big` file from the previous test case is reused to save setup time; To avoid relying on that side effect, it is generated if it does not exist (e.g. when running via `sh t1007-*.sh --long --run=1,41`). Signed-off-by: Philip Oakley <philipoakley@iee.email> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
1 parent a8879af commit ccdf745

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

Diff for: t/t1007-hash-object.sh

+8
Original file line numberDiff line numberDiff line change
@@ -276,4 +276,12 @@ test_expect_success EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT \
276276
test_cmp expect actual
277277
'
278278

279+
test_expect_success EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT \
280+
'files over 4GB hash correctly via --stdin' '
281+
{ test -f big || test-tool genzeros $((5*1024*1024*1024)) >big; } &&
282+
test_oid large5GB >expect &&
283+
git hash-object --stdin <big >actual &&
284+
test_cmp expect actual
285+
'
286+
279287
test_done

0 commit comments

Comments
 (0)