Skip to content

Commit 2b5ec28

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 <[email protected]> Signed-off-by: Johannes Schindelin <[email protected]>
1 parent 06cbf3d commit 2b5ec28

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

t/t1007-hash-object.sh

+8
Original file line numberDiff line numberDiff line change
@@ -260,4 +260,12 @@ test_expect_success EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT \
260260
test_cmp expect actual
261261
'
262262

263+
test_expect_success EXPENSIVE,SIZE_T_IS_64BIT,!LONG_IS_64BIT \
264+
'files over 4GB hash correctly via --stdin' '
265+
{ test -f big || test-tool genzeros $((5*1024*1024*1024)) >big; } &&
266+
test_oid large5GB >expect &&
267+
git hash-object --stdin <big >actual &&
268+
test_cmp expect actual
269+
'
270+
263271
test_done

0 commit comments

Comments
 (0)