You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
1.4 KiB
81 lines
1.4 KiB
#!/bin/sh |
|
# |
|
# Copyright (c) 2009, Junio C Hamano |
|
# |
|
|
|
test_description='log family learns --stdin' |
|
|
|
GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME=main |
|
export GIT_TEST_DEFAULT_INITIAL_BRANCH_NAME |
|
|
|
. ./test-lib.sh |
|
|
|
check () { |
|
for cmd in rev-list "log --stat" |
|
do |
|
for i in "$@" |
|
do |
|
printf "%s\n" $i |
|
done >input && |
|
test_expect_success "check $cmd $*" ' |
|
git $cmd $(cat input) >expect && |
|
git $cmd --stdin <input >actual && |
|
sed -e "s/^/input /" input && |
|
sed -e "s/^/output /" expect && |
|
test_cmp expect actual |
|
' |
|
done |
|
} |
|
|
|
them='1 2 3 4 5 6 7' |
|
|
|
test_expect_success setup ' |
|
( |
|
for i in 0 $them |
|
do |
|
for j in $them |
|
do |
|
echo $i.$j >file-$j && |
|
git add file-$j || exit |
|
done && |
|
test_tick && |
|
git commit -m $i || exit |
|
done && |
|
for i in $them |
|
do |
|
git checkout -b side-$i main~$i && |
|
echo updated $i >file-$i && |
|
git add file-$i && |
|
test_tick && |
|
git commit -m side-$i || exit |
|
done |
|
) |
|
' |
|
|
|
check main |
|
check side-1 ^side-4 |
|
check side-1 ^side-7 -- |
|
check side-1 ^side-7 -- file-1 |
|
check side-1 ^side-7 -- file-2 |
|
check side-3 ^side-4 -- file-3 |
|
check side-3 ^side-2 |
|
check side-3 ^side-2 -- file-1 |
|
|
|
test_expect_success 'not only --stdin' ' |
|
cat >expect <<-EOF && |
|
7 |
|
|
|
file-1 |
|
file-2 |
|
EOF |
|
cat >input <<-EOF && |
|
^main^ |
|
-- |
|
file-2 |
|
EOF |
|
git log --pretty=tformat:%s --name-only --stdin main -- file-1 \ |
|
<input >actual && |
|
test_cmp expect actual |
|
' |
|
|
|
test_done
|
|
|