diff --git a/scripts/test2tasks.pl b/scripts/test2tasks.pl index abaf6ae77a0a93cdfeca97ab81159b55050d6689..7e60fdc12d31aa70d44c2d2c364389d93fd83b58 100755 --- a/scripts/test2tasks.pl +++ b/scripts/test2tasks.pl @@ -39,18 +39,24 @@ my $lastLine = ''; while (my $line = <STDIN> ) { chomp($line); # --- Continuation line? - if (substr($line, 0, 1) eq ' ') { + if (substr($line, 0, 1) eq ' ' && index($line, 'Loc: [') < 0) { $lastLine .= $line; next; } - # --- extract file name based matching '[..\].\tst_lancelot.cpp(258) : failure location' - if ($line =~ /^([^(]+)\((\d+)\) : failure location$/) { - my $slashPos = rindex($1, '/'); - $slashPos = rindex($1, "\\") if $slashPos < 0; - my $fileName = $slashPos > 0 ? substr($1, $slashPos + 1) : $1; + # --- extract file name based matching: + # Windows: '[..\].\tst_lancelot.cpp(258) : failure location' + # Unix: ' Loc: [file(1596)]' + if ($line =~ /^([^(]+)\((\d+)\) : failure location$/ + || $line =~ /^\s*Loc:\s*\[([^(]+)\((\d+)\).*$/) { + my $fullFileName = $1; my $line = $2; - my $fullFileName = $fileHash{$fileName}; - $fullFileName = $fileName unless defined $fullFileName; + if (index($fullFileName, '/') != 0) { # Unix has absolute file names, Windows may not + my $slashPos = rindex($fullFileName, '/'); + $slashPos = rindex($fullFileName, "\\") if $slashPos < 0; + my $fileName = $slashPos > 0 ? substr($1, $slashPos + 1) : $fullFileName; + $fullFileName = $fileHash{$fileName}; + $fullFileName = $fileName unless defined $fullFileName; + } my $type = index($lastLine, 'FAIL') == 0 ? 'err' : 'unknown'; print $fullFileName, "\t", $line, "\t", $type, "\t", $lastLine,"\n"; }