mirror of
https://github.com/git/git.git
synced 2024-12-13 03:44:17 +08:00
7e1fcb81ee
The tests for `git reflog delete --updateref` are currently marked to only run with the reffiles backend. There is no inherent reason that this should be the case other than the fact that the setup messes with the on-disk reflogs directly. Refactor the test to stop doing so and drop the REFFILES prerequisite. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
70 lines
2.2 KiB
Bash
Executable File
70 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
test_description='git reflog --updateref'
|
|
|
|
TEST_PASSES_SANITIZE_LEAK=true
|
|
. ./test-lib.sh
|
|
|
|
test_expect_success 'setup' '
|
|
git init -b main repo &&
|
|
(
|
|
cd repo &&
|
|
|
|
test_commit A &&
|
|
test_commit B &&
|
|
test_commit C &&
|
|
|
|
git reflog HEAD >expect &&
|
|
git reset --hard HEAD~ &&
|
|
# Make sure that the reflog does not point to the same commit
|
|
# as HEAD.
|
|
git reflog delete HEAD@{0} &&
|
|
git reflog HEAD >actual &&
|
|
test_cmp expect actual
|
|
)
|
|
'
|
|
|
|
test_reflog_updateref () {
|
|
exp=$1
|
|
shift
|
|
args="$@"
|
|
|
|
test_expect_success "get '$exp' with '$args'" '
|
|
test_when_finished "rm -rf copy" &&
|
|
cp -R repo copy &&
|
|
|
|
(
|
|
cd copy &&
|
|
|
|
$args &&
|
|
git rev-parse $exp >expect &&
|
|
git rev-parse HEAD >actual &&
|
|
|
|
test_cmp expect actual
|
|
)
|
|
'
|
|
}
|
|
|
|
test_reflog_updateref B git reflog delete --updateref HEAD@{0}
|
|
test_reflog_updateref B git reflog delete --updateref HEAD@{1}
|
|
test_reflog_updateref C git reflog delete --updateref main@{0}
|
|
test_reflog_updateref B git reflog delete --updateref main@{1}
|
|
test_reflog_updateref B git reflog delete --updateref --rewrite HEAD@{0}
|
|
test_reflog_updateref B git reflog delete --updateref --rewrite HEAD@{1}
|
|
test_reflog_updateref C git reflog delete --updateref --rewrite main@{0}
|
|
test_reflog_updateref B git reflog delete --updateref --rewrite main@{1}
|
|
test_reflog_updateref B test_must_fail git reflog expire HEAD@{0}
|
|
test_reflog_updateref B test_must_fail git reflog expire HEAD@{1}
|
|
test_reflog_updateref B test_must_fail git reflog expire main@{0}
|
|
test_reflog_updateref B test_must_fail git reflog expire main@{1}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref HEAD@{0}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref HEAD@{1}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref main@{0}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref main@{1}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite HEAD@{0}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite HEAD@{1}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite main@{0}
|
|
test_reflog_updateref B test_must_fail git reflog expire --updateref --rewrite main@{1}
|
|
|
|
test_done
|