summaryrefslogtreecommitdiff
path: root/src/libvterm/t/run-test.pl
diff options
context:
space:
mode:
Diffstat (limited to 'src/libvterm/t/run-test.pl')
-rw-r--r--src/libvterm/t/run-test.pl23
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;