#!/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 (/RESULT EXPECTED TO BE RANDOM/) { s/\(RESULT EXPECTED TO BE RANDOM\) //; $randomresult = 1; } if (/^PASS(.*)$/) { my $class = $randomresult ? "PASSRANDOM" : "PASS"; print '\n"; } elsif (/^UNEXPECTED PASS(.*)$/) { my $class = $randomresult ? "PASSRANDOM" : "WEIRDPASS"; print '\n"; } elsif (/^UNEXPECTED FAIL: (.*)$/) { my $class = $randomresult ? "FAILRANDOM" : "FAIL"; print '\n"; # FAILs are followed by images $testline = &readcleanline; $refline = &readcleanline; print '\n"; } elsif (/^KNOWN FAIL(.*$)/) { my $class = $randomresult ? "XFAILRANDOM" : "XFAIL"; print '\n"; } else { print STDERR "Unknown Line: " . $_ . "\n"; print "\n"; } } print < EOD ;
' . do_html($1) . "
' . do_html($1) . "
' . do_html($1) . "
'; { die "Error on line $l" unless $testline =~ /REFTEST IMAGE 1 \(TEST\): (data:.*)$/; print ''; } { die "Error on line $l" unless $refline =~ /REFTEST IMAGE 2 \(REFERENCE\): (data:.*)$/; print ''; } print "
' . do_html($1) . "
" . $_ . "