Files
git-mirror/t/t6013-rev-list-reverse-parents.sh
Patrick Steinhardt 6aec8d38fd t: refactor tests depending on Perl to print data
A bunch of tests rely on Perl to print data in various different ways.
These usages fall into the following categories:

  - Print data conditionally by matching patterns. These usecases can be
    converted to use awk(1) rather easily.

  - Print data repeatedly. These usecases can typically be converted to
    use a combination of `test-tool genzeros` and sed(1).

  - Print data in reverse. These usecases can be converted to use
    awk(1) or `sort -r`.

Refactor the tests accordingly so that we can drop a couple of
PERL_TEST_HELPERS prerequisites.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2025-04-07 14:47:39 -07:00

48 lines
1.0 KiB
Bash
Executable File

#!/bin/sh
test_description='--reverse combines with --parents'
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME
. ./test-lib.sh
commit () {
test_tick &&
echo $1 > foo &&
git add foo &&
git commit -m "$1"
}
test_expect_success 'set up --reverse example' '
commit one &&
git tag root &&
commit two &&
git checkout -b side HEAD^ &&
commit three &&
git checkout main &&
git merge -s ours side &&
commit five
'
reverse () {
awk '{a[i++]=$0} END {for (j=i-1; j>=0;) print a[j--] }'
}
test_expect_success '--reverse --parents --full-history combines correctly' '
git rev-list --parents --full-history main -- foo | reverse >expected &&
git rev-list --reverse --parents --full-history main -- foo \
> actual &&
test_cmp expected actual
'
test_expect_success '--boundary does too' '
git rev-list --boundary --parents --full-history main ^root -- foo | reverse >expected &&
git rev-list --boundary --reverse --parents --full-history \
main ^root -- foo > actual &&
test_cmp expected actual
'
test_done