#!/usr/bin/perl # ***** BEGIN LICENSE BLOCK ***** # Version: MPL 1.1/GPL 2.0/LGPL 2.1 # # The contents of this file are subject to the Mozilla Public License Version # 1.1 (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS IS" basis, # WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License # for the specific language governing rights and limitations under the # License. # # The Original Code is clean-reftest-report.pl. # # The Initial Developer of the Original Code is the Mozilla Corporation. # Portions created by the Initial Developer are Copyright (C) 2007 # the Initial Developer. All Rights Reserved. # # Contributor(s): # Vladimir Vukicevic # # Alternatively, the contents of this file may be used under the terms of # either the GNU General Public License Version 2 or later (the "GPL"), or # the GNU Lesser General Public License Version 2.1 or later (the "LGPL"), # in which case the provisions of the GPL or the LGPL are applicable instead # of those above. If you wish to allow use of your version of this file only # under the terms of either the GPL or the LGPL, and not to allow others to # use your version of this file under the terms of the MPL, indicate your # decision by deleting the provisions above and replace them with the notice # and other provisions required by the GPL or the LGPL. If you do not delete # the provisions above, a recipient may use your version of this file under # the terms of any one of the MPL, the GPL or the LGPL. # # ***** END LICENSE BLOCK ***** print < reftest output

PASS  UNEXPECTED FAIL  KNOWN FAIL  UNEXPECTED PASS  PASS (Random)  FAIL (Random) 

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