| #!/bin/sh |
| # |
| # Copyright (c) 2007 Johannes E. Schindelin |
| # |
| |
| test_description='Test fsck --lost-found' |
| |
| TEST_PASSES_SANITIZE_LEAK=true |
| . ./test-lib.sh |
| |
| test_expect_success setup ' |
| git config core.logAllRefUpdates 0 && |
| : > file1 && |
| git add file1 && |
| test_tick && |
| git commit -m initial && |
| echo 1 > file1 && |
| echo 2 > file2 && |
| git add file1 file2 && |
| test_tick && |
| git commit -m second && |
| echo 3 > file3 && |
| git add file3 |
| ' |
| |
| test_expect_success 'lost and found something' ' |
| git rev-parse HEAD > lost-commit && |
| git rev-parse :file3 > lost-other && |
| test_tick && |
| git reset --hard HEAD^ && |
| git fsck --lost-found && |
| test 2 = $(ls .git/lost-found/*/* | wc -l) && |
| test -f .git/lost-found/commit/$(cat lost-commit) && |
| test -f .git/lost-found/other/$(cat lost-other) |
| ' |
| |
| test_done |