Browse Source

test-terminal: set TERM=vt100

The point of the test-terminal script is to simulate in the
test scripts an environment where output is going to a real
terminal.

But since test-lib.sh also sets TERM=dumb, the simulation
isn't very realistic. The color code will skip auto-coloring
for TERM=dumb, leading to us liberally sprinkling

  test_terminal env TERM=vt100 git ...

through the test suite to convince the tests to actually
generate colors. Let's set TERM for programs run under
test_terminal, which is one less thing for test-writers to
remember.

In most cases the callers can be simplified, but note there
is one interesting case in t4202. It uses test_terminal to
check the auto-enabling of --decorate, but the expected
output _doesn't_ contain colors (because TERM=dumb
suppresses them). Using TERM=vt100 is closer to what the
real world looks like; adjust the expected output to match.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
Jeff King 7 years ago committed by Junio C Hamano
parent
commit
e433749d86
  1. 2
      t/t3203-branch-output.sh
  2. 2
      t/t4202-log.sh
  3. 3
      t/t6006-rev-list-format.sh
  4. 3
      t/t6300-for-each-ref.sh
  5. 2
      t/t7004-tag.sh
  6. 6
      t/t7006-pager.sh
  7. 1
      t/test-terminal.perl

2
t/t3203-branch-output.sh

@ -253,7 +253,7 @@ test_expect_success '%(color) omitted without tty' ' @@ -253,7 +253,7 @@ test_expect_success '%(color) omitted without tty' '
'

test_expect_success TTY '%(color) present with tty' '
test_terminal env TERM=vt100 git branch $color_args >actual.raw &&
test_terminal git branch $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.color actual
'

2
t/t4202-log.sh

@ -750,7 +750,7 @@ test_expect_success 'log.decorate config parsing' ' @@ -750,7 +750,7 @@ test_expect_success 'log.decorate config parsing' '
'

test_expect_success TTY 'log output on a TTY' '
git log --oneline --decorate >expect.short &&
git log --color --oneline --decorate >expect.short &&

test_terminal git log --oneline >actual &&
test_cmp expect.short actual

3
t/t6006-rev-list-format.sh

@ -229,8 +229,7 @@ do @@ -229,8 +229,7 @@ do
'

test_expect_success TTY "$desc respects --color=auto (stdout is tty)" '
test_terminal env TERM=vt100 \
git log --format=$color -1 --color=auto >actual &&
test_terminal git log --format=$color -1 --color=auto >actual &&
has_color actual
'


3
t/t6300-for-each-ref.sh

@ -425,8 +425,7 @@ test_expect_success 'set up color tests' ' @@ -425,8 +425,7 @@ test_expect_success 'set up color tests' '
'

test_expect_success TTY '%(color) shows color with a tty' '
test_terminal env TERM=vt100 \
git for-each-ref --format="$color_format" >actual.raw &&
test_terminal git for-each-ref --format="$color_format" >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expected.color actual
'

2
t/t7004-tag.sh

@ -1914,7 +1914,7 @@ test_expect_success '%(color) omitted without tty' ' @@ -1914,7 +1914,7 @@ test_expect_success '%(color) omitted without tty' '
'

test_expect_success TTY '%(color) present with tty' '
test_terminal env TERM=vt100 git tag $color_args >actual.raw &&
test_terminal git tag $color_args >actual.raw &&
test_decode_color <actual.raw >actual &&
test_cmp expect.color actual
'

6
t/t7006-pager.sh

@ -159,7 +159,7 @@ test_expect_success 'no color when stdout is a regular file' ' @@ -159,7 +159,7 @@ test_expect_success 'no color when stdout is a regular file' '
test_expect_success TTY 'color when writing to a pager' '
rm -f paginated.out &&
test_config color.ui auto &&
test_terminal env TERM=vt100 git log &&
test_terminal git log &&
colorful paginated.out
'

@ -167,7 +167,7 @@ test_expect_success TTY 'colors are suppressed by color.pager' ' @@ -167,7 +167,7 @@ test_expect_success TTY 'colors are suppressed by color.pager' '
rm -f paginated.out &&
test_config color.ui auto &&
test_config color.pager false &&
test_terminal env TERM=vt100 git log &&
test_terminal git log &&
! colorful paginated.out
'

@ -186,7 +186,7 @@ test_expect_success 'color when writing to a file intended for a pager' ' @@ -186,7 +186,7 @@ test_expect_success 'color when writing to a file intended for a pager' '
test_expect_success TTY 'colors are sent to pager for external commands' '
test_config alias.externallog "!git log" &&
test_config color.ui auto &&
test_terminal env TERM=vt100 git -p externallog &&
test_terminal git -p externallog &&
colorful paginated.out
'


1
t/test-terminal.perl

@ -80,6 +80,7 @@ sub copy_stdio { @@ -80,6 +80,7 @@ sub copy_stdio {
if ($#ARGV < 1) {
die "usage: test-terminal program args";
}
$ENV{TERM} = 'vt100';
my $master_in = new IO::Pty;
my $master_out = new IO::Pty;
my $master_err = new IO::Pty;

Loading…
Cancel
Save