diff options
Diffstat (limited to 'src/libvterm/t/run-test.pl')
-rw-r--r-- | src/libvterm/t/run-test.pl | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/src/libvterm/t/run-test.pl b/src/libvterm/t/run-test.pl index a6de7a27d..5f3c78d70 100644 --- a/src/libvterm/t/run-test.pl +++ b/src/libvterm/t/run-test.pl @@ -28,6 +28,8 @@ my $exitcode = 0; my $command; my @expect; +my $linenum = 0; + sub do_onetest { $hin->print( "$command\n" ); @@ -41,7 +43,7 @@ sub do_onetest chomp $outline; if( !@expect ) { - print "# Test failed\n" unless $fail_printed++; + print "# line $linenum: Test failed\n" unless $fail_printed++; print "# expected nothing more\n" . "# Actual: $outline\n"; next; @@ -51,13 +53,13 @@ sub do_onetest next if $expectation eq $outline; - print "# Test failed\n" unless $fail_printed++; + print "# line $linenum: Test failed\n" unless $fail_printed++; print "# Expected: $expectation\n" . "# Actual: $outline\n"; } if( @expect ) { - print "# Test failed\n" unless $fail_printed++; + print "# line $linenum: Test failed\n" unless $fail_printed++; print "# Expected: $_\n" . "# didn't happen\n" for @expect; } @@ -133,7 +135,7 @@ sub do_line $response = pack "C*", map hex, split m/,/, $response; if( $response ne $want ) { - print "# Assert ?screen_row $row failed:\n" . + print "# line $linenum: Assert ?screen_row $row failed:\n" . "# Expected: $want\n" . "# Actual: $response\n"; $exitcode = 1; @@ -144,14 +146,20 @@ sub do_line do_onetest if defined $command; my ( $assertion ) = $1 =~ m/^(.*)\s+=/; + my $expectation = $line; $hin->print( "\?$assertion\n" ); my $response = <$hout>; defined $response or wait, die "Test harness failed - $?\n"; chomp $response; $response =~ s/^\s+|\s+$//g; - if( $response ne $line ) { - print "# Assert $assertion failed:\n" . - "# Expected: $line\n" . + # Some convenience formatting + if( $assertion =~ m/^screen_chars/ and $expectation =~ m/^"/ ) { + $expectation = join ",", map sprintf("0x%02x", ord $_), split m//, eval($expectation); + } + + if( $response ne $expectation ) { + print "# line $linenum: Assert $assertion failed:\n" . + "# Expected: $expectation\n" . "# Actual: $response\n"; $exitcode = 1; } @@ -176,6 +184,7 @@ sub do_line open my $test, "<", $ARGV[0] or die "Cannot open test script $ARGV[0] - $!"; while( my $line = <$test> ) { + $linenum++; $line =~ s/^\s+//; chomp $line; |