michael@0: #!/usr/bin/perl michael@0: michael@0: # This Source Code Form is subject to the terms of the Mozilla Public michael@0: # License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: # file, You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: michael@0: print < michael@0: michael@0: reftest output michael@0: michael@0: michael@0: michael@0:

michael@0: PASS  michael@0: UNEXPECTED FAIL  michael@0: KNOWN FAIL  michael@0: UNEXPECTED PASS  michael@0: PASS (Random)  michael@0: FAIL (Random)  michael@0:

michael@0: michael@0: EOD michael@0: ; michael@0: michael@0: sub readcleanline { michael@0: my $l = <>; michael@0: chomp $l; michael@0: chop $l if ($l =~ /\r$/); michael@0: return $l; michael@0: } michael@0: michael@0: sub do_html { michael@0: my ($l) = @_; michael@0: michael@0: $l =~ s,(file:[^ ]*),\1,g; michael@0: $l =~ s,(data:[^ ]*),\1,g; michael@0: michael@0: return $l; michael@0: } michael@0: michael@0: $l = 0; michael@0: michael@0: while (<>) { michael@0: $l++; michael@0: next unless /^REFTEST/; michael@0: michael@0: chomp; michael@0: chop if /\r$/; michael@0: michael@0: s/^REFTEST *//; michael@0: michael@0: my $randomresult = 0; michael@0: if (/EXPECTED RANDOM/) { michael@0: s/\(EXPECTED RANDOM\)//; michael@0: $randomresult = 1; michael@0: } michael@0: michael@0: if (/^TEST-PASS \| (.*)$/) { michael@0: my $class = $randomresult ? "PASSRANDOM" : "PASS"; michael@0: print '\n"; michael@0: } elsif (/^TEST-UNEXPECTED-(....) \| (.*)$/) { michael@0: if ($randomresult) { michael@0: die "Error on line $l: UNEXPECTED with test marked random?!"; michael@0: } michael@0: my $class = ($1 eq "PASS") ? "WEIRDPASS" : "FAIL"; michael@0: print '\n"; michael@0: michael@0: # UNEXPECTED results can be followed by one or two images michael@0: $testline = &readcleanline; michael@0: michael@0: print '\n"; michael@0: } elsif (/^TEST-KNOWN-FAIL \| (.*$)/) { michael@0: my $class = $randomresult ? "XFAILRANDOM" : "XFAIL"; michael@0: print '\n"; michael@0: } else { michael@0: print STDERR "Unknown Line: " . $_ . "\n"; michael@0: print "\n"; michael@0: } michael@0: } michael@0: michael@0: print < michael@0: michael@0: michael@0: EOD michael@0: ;
' . do_html($1) . "
' . do_html($2) . "
'; michael@0: michael@0: if ($testline =~ /REFTEST IMAGE: (data:.*)$/) { michael@0: print ''; michael@0: } elsif ($testline =~ /REFTEST IMAGE 1 \(TEST\): (data:.*)$/) { michael@0: $refline = &readcleanline; michael@0: print ''; michael@0: { michael@0: die "Error on line $l" unless $refline =~ /REFTEST IMAGE 2 \(REFERENCE\): (data:.*)$/; michael@0: print ''; michael@0: } michael@0: michael@0: } else { michael@0: die "Error on line $l"; michael@0: } michael@0: michael@0: print "
' . do_html($1) . "
" . $_ . "