t1410: move reffiles specific tests to t0600

Move these tests to t0600 with other reffiles specific tests since they do things like take a lock on an individual ref, and write directly into the reflog refs. Signed-off-by: John Cai <johncai86@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

John Cai committed Jan 19, 2024 at 20:18 UTC c02ce75823c9c35bdf6e5c5adda02cbfc4805ddc
2 files changed +51 -42
t/t0600-reffiles-backend.sh
+51
@@ -308,4 +308,55 @@ test_expect_success 'for_each_reflog()' '
308 test_cmp expected actual
309 '
310
311 +# Triggering the bug detected by this test requires a newline to fall
312 +# exactly BUFSIZ-1 bytes from the end of the file. We don't know
313 +# what that value is, since it's platform dependent. However, if
314 +# we choose some value N, we also catch any D which divides N evenly
315 +# (since we will read backwards in chunks of D). So we choose 8K,
316 +# which catches glibc (with an 8K BUFSIZ) and *BSD (1K).
317 +#
318 +# Each line is 114 characters, so we need 75 to still have a few before the
319 +# last 8K. The 89-character padding on the final entry lines up our
320 +# newline exactly.
321 +test_expect_success SHA1 'parsing reverse reflogs at BUFSIZ boundaries' '
322 + git checkout -b reflogskip &&
323 + zf=$(test_oid zero_2) &&
324 + ident="abc <xyz> 0000000001 +0000" &&
325 + for i in $(test_seq 1 75); do
326 + printf "$zf%02d $zf%02d %s\t" $i $(($i+1)) "$ident" &&
327 + if test $i = 75; then
328 + for j in $(test_seq 1 89); do
329 + printf X || return 1
330 + done
331 + else
332 + printf X
333 + fi &&
334 + printf "\n" || return 1
335 + done >.git/logs/refs/heads/reflogskip &&
336 + git rev-parse reflogskip@{73} >actual &&
337 + echo ${zf}03 >expect &&
338 + test_cmp expect actual
339 +'
340 +
341 +# This test takes a lock on an individual ref; this is not supported in
342 +# reftable.
343 +test_expect_success 'reflog expire operates on symref not referrent' '
344 + git branch --create-reflog the_symref &&
345 + git branch --create-reflog referrent &&
346 + git update-ref referrent HEAD &&
347 + git symbolic-ref refs/heads/the_symref refs/heads/referrent &&
348 + test_when_finished "rm -f .git/refs/heads/referrent.lock" &&
349 + touch .git/refs/heads/referrent.lock &&
350 + git reflog expire --expire=all the_symref
351 +'
352 +
353 +test_expect_success 'empty reflog' '
354 + test_when_finished "rm -rf empty" &&
355 + git init empty &&
356 + test_commit -C empty A &&
357 + >empty/.git/logs/refs/heads/foo &&
358 + git -C empty reflog expire --all 2>err &&
359 + test_must_be_empty err
360 +'
361 +
362 test_done
t/t1410-reflog.sh
-42
@@ -354,36 +354,6 @@ test_expect_success 'stale dirs do not cause d/f conflicts (reflogs off)' '
354 test_must_be_empty actual
355 '
356
357 -# Triggering the bug detected by this test requires a newline to fall
358 -# exactly BUFSIZ-1 bytes from the end of the file. We don't know
359 -# what that value is, since it's platform dependent. However, if
360 -# we choose some value N, we also catch any D which divides N evenly
361 -# (since we will read backwards in chunks of D). So we choose 8K,
362 -# which catches glibc (with an 8K BUFSIZ) and *BSD (1K).
363 -#
364 -# Each line is 114 characters, so we need 75 to still have a few before the
365 -# last 8K. The 89-character padding on the final entry lines up our
366 -# newline exactly.
367 -test_expect_success REFFILES,SHA1 'parsing reverse reflogs at BUFSIZ boundaries' '
368 - git checkout -b reflogskip &&
369 - zf=$(test_oid zero_2) &&
370 - ident="abc <xyz> 0000000001 +0000" &&
371 - for i in $(test_seq 1 75); do
372 - printf "$zf%02d $zf%02d %s\t" $i $(($i+1)) "$ident" &&
373 - if test $i = 75; then
374 - for j in $(test_seq 1 89); do
375 - printf X || return 1
376 - done
377 - else
378 - printf X
379 - fi &&
380 - printf "\n" || return 1
381 - done >.git/logs/refs/heads/reflogskip &&
382 - git rev-parse reflogskip@{73} >actual &&
383 - echo ${zf}03 >expect &&
384 - test_cmp expect actual
385 -'
386 -
357 test_expect_success 'no segfaults for reflog containing non-commit sha1s' '
358 git update-ref --create-reflog -m "Creating ref" \
359 refs/tests/tree-in-reflog HEAD &&
@@ -397,18 +367,6 @@ test_expect_failure 'reflog with non-commit entries displays all entries' '
367 test_line_count = 3 actual
368 '
369
400 -# This test takes a lock on an individual ref; this is not supported in
401 -# reftable.
402 -test_expect_success REFFILES 'reflog expire operates on symref not referrent' '
403 - git branch --create-reflog the_symref &&
404 - git branch --create-reflog referrent &&
405 - git update-ref referrent HEAD &&
406 - git symbolic-ref refs/heads/the_symref refs/heads/referrent &&
407 - test_when_finished "rm -f .git/refs/heads/referrent.lock" &&
408 - touch .git/refs/heads/referrent.lock &&
409 - git reflog expire --expire=all the_symref
410 -'
411 -
370 test_expect_success 'continue walking past root commits' '
371 git init orphanage &&
372 (