git/t/t9002-column.sh
Kristoffer Haugsbakk f2d31c69ce column: disallow negative padding
A negative padding does not make sense and can cause errors in the
memory allocator since it’s interpreted as an unsigned integer.

Reported-by: Tiago Pascoal <tiago@pascoal.net>
Signed-off-by: Kristoffer Haugsbakk <code@khaugsbakk.name>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2024-02-13 10:18:50 -08:00

211 lines
3.3 KiB
Bash
Executable File

#!/bin/sh
test_description='git column'
TEST_PASSES_SANITIZE_LEAK=true
. ./test-lib.sh
test_expect_success 'setup' '
cat >lista <<\EOF
one
two
three
four
five
six
seven
eight
nine
ten
eleven
EOF
'
test_expect_success 'never' '
git column --indent=Z --mode=never <lista >actual &&
test_cmp lista actual
'
test_expect_success 'always' '
cat >expected <<\EOF &&
Zone
Ztwo
Zthree
Zfour
Zfive
Zsix
Zseven
Zeight
Znine
Zten
Zeleven
EOF
git column --indent=Z --mode=plain <lista >actual &&
test_cmp expected actual
'
test_expect_success '--nl' '
cat >expected <<\EOF &&
oneZ
twoZ
threeZ
fourZ
fiveZ
sixZ
sevenZ
eightZ
nineZ
tenZ
elevenZ
EOF
git column --nl="Z$LF" --mode=plain <lista >actual &&
test_cmp expected actual
'
test_expect_success '80 columns' '
cat >expected <<\EOF &&
one two three four five six seven eight nine ten eleven
EOF
COLUMNS=80 git column --mode=column <lista >actual &&
test_cmp expected actual
'
cat >expected <<\EOF
one
two
three
four
five
six
seven
eight
nine
ten
eleven
EOF
test_expect_success COLUMNS_CAN_BE_1 'COLUMNS = 1' '
COLUMNS=1 git column --mode=column <lista >actual &&
test_cmp expected actual
'
test_expect_success 'width = 1' '
git column --mode=column --width=1 <lista >actual &&
test_cmp expected actual
'
COLUMNS=20
export COLUMNS
test_expect_success '20 columns' '
cat >expected <<\EOF &&
one seven
two eight
three nine
four ten
five eleven
six
EOF
git column --mode=column <lista >actual &&
test_cmp expected actual
'
test_expect_success '20 columns, nodense' '
cat >expected <<\EOF &&
one seven
two eight
three nine
four ten
five eleven
six
EOF
git column --mode=column,nodense < lista > actual &&
test_cmp expected actual
'
test_expect_success '20 columns, dense' '
cat >expected <<\EOF &&
one five nine
two six ten
three seven eleven
four eight
EOF
git column --mode=column,dense < lista > actual &&
test_cmp expected actual
'
test_expect_success '20 columns, padding 2' '
cat >expected <<\EOF &&
one seven
two eight
three nine
four ten
five eleven
six
EOF
git column --mode=column --padding 2 <lista >actual &&
test_cmp expected actual
'
test_expect_success '20 columns, indented' '
cat >expected <<\EOF &&
one seven
two eight
three nine
four ten
five eleven
six
EOF
git column --mode=column --indent=" " <lista >actual &&
test_cmp expected actual
'
test_expect_success '20 columns, row first' '
cat >expected <<\EOF &&
one two
three four
five six
seven eight
nine ten
eleven
EOF
git column --mode=row <lista >actual &&
test_cmp expected actual
'
test_expect_success '20 columns, row first, nodense' '
cat >expected <<\EOF &&
one two
three four
five six
seven eight
nine ten
eleven
EOF
git column --mode=row,nodense <lista >actual &&
test_cmp expected actual
'
test_expect_success '20 columns, row first, dense' '
cat >expected <<\EOF &&
one two three
four five six
seven eight nine
ten eleven
EOF
git column --mode=row,dense <lista >actual &&
test_cmp expected actual
'
test_expect_success 'padding must be non-negative' '
cat >input <<\EOF &&
1 2 3 4 5 6
EOF
cat >expected <<\EOF &&
fatal: --padding must be non-negative
EOF
test_must_fail git column --mode=column --padding=-1 <input >actual 2>&1 &&
test_cmp expected actual
'
test_done