This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
105 lines
2.1 KiB
Bash
Executable file
105 lines
2.1 KiB
Bash
Executable file
#!/bin/sh
|
|
|
|
test_description='log/show --expand-tabs'
|
|
|
|
. ./test-lib.sh
|
|
|
|
HT=" "
|
|
title='tab indent at the beginning of the title line'
|
|
body='tab indent on a line in the body'
|
|
|
|
# usage: count_expand $indent $numSP $numHT @format_args
|
|
count_expand ()
|
|
{
|
|
expect=
|
|
count=$(( $1 + $2 )) ;# expected spaces
|
|
while test $count -gt 0
|
|
do
|
|
expect="$expect "
|
|
count=$(( $count - 1 ))
|
|
done
|
|
shift 2
|
|
count=$1 ;# expected tabs
|
|
while test $count -gt 0
|
|
do
|
|
expect="$expect$HT"
|
|
count=$(( $count - 1 ))
|
|
done
|
|
shift
|
|
|
|
# The remainder of the command line is "git show -s" options
|
|
case " $* " in
|
|
*' --pretty=short '*)
|
|
line=$title ;;
|
|
*)
|
|
line=$body ;;
|
|
esac
|
|
|
|
# Prefix the output with the command line arguments, and
|
|
# replace SP with a dot both in the expecte and actual output
|
|
# so that test_cmp would show the difference together with the
|
|
# breakage in a way easier to consume by the debugging user.
|
|
{
|
|
echo "git show -s $*"
|
|
echo "$expect$line"
|
|
} | sed -e 's/ /./g' >expect
|
|
|
|
{
|
|
echo "git show -s $*"
|
|
git show -s "$@" |
|
|
sed -n -e "/$line\$/p"
|
|
} | sed -e 's/ /./g' >actual
|
|
|
|
test_cmp expect actual
|
|
}
|
|
|
|
test_expand ()
|
|
{
|
|
fmt=$1
|
|
case "$fmt" in
|
|
*=raw | *=short | *=email)
|
|
default="0 1" ;;
|
|
*)
|
|
default="8 0" ;;
|
|
esac
|
|
case "$fmt" in
|
|
*=email)
|
|
in=0 ;;
|
|
*)
|
|
in=4 ;;
|
|
esac
|
|
test_expect_success "expand/no-expand${fmt:+ for $fmt}" '
|
|
count_expand $in $default $fmt &&
|
|
count_expand $in 8 0 $fmt --expand-tabs &&
|
|
count_expand $in 8 0 --expand-tabs $fmt &&
|
|
count_expand $in 8 0 $fmt --expand-tabs=8 &&
|
|
count_expand $in 8 0 --expand-tabs=8 $fmt &&
|
|
count_expand $in 0 1 $fmt --no-expand-tabs &&
|
|
count_expand $in 0 1 --no-expand-tabs $fmt &&
|
|
count_expand $in 0 1 $fmt --expand-tabs=0 &&
|
|
count_expand $in 0 1 --expand-tabs=0 $fmt &&
|
|
count_expand $in 4 0 $fmt --expand-tabs=4 &&
|
|
count_expand $in 4 0 --expand-tabs=4 $fmt
|
|
'
|
|
}
|
|
|
|
test_expect_success 'setup' '
|
|
test_tick &&
|
|
sed -e "s/Q/$HT/g" <<-EOF >msg &&
|
|
Q$title
|
|
|
|
Q$body
|
|
EOF
|
|
git commit --allow-empty -F msg
|
|
'
|
|
|
|
test_expand ""
|
|
test_expand --pretty
|
|
test_expand --pretty=short
|
|
test_expand --pretty=medium
|
|
test_expand --pretty=full
|
|
test_expand --pretty=fuller
|
|
test_expand --pretty=raw
|
|
test_expand --pretty=email
|
|
|
|
test_done
|