diff --git a/mozilla/webtools/tinderbox/pageloader.pl b/mozilla/webtools/tinderbox/pageloader.pl new file mode 100755 index 00000000000..47d0c5cc7cc --- /dev/null +++ b/mozilla/webtools/tinderbox/pageloader.pl @@ -0,0 +1,96 @@ +#! /usr/bonsaitools/bin/perl +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# 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 Tinderbox +# +# The Initial Developer of the Original Code is Netscape Communications +# Corporation. Portions created by Netscape are Copyright (C) 1999 +# Netscape Communications Corporation. All Rights Reserved. +# +# Contributor(s): Chris McAfee + +# +# pageloader.pl - Process pageloader data from jrgm's pageloader tool. +# Write data to $tree/pageloader.dat in the following format, +# +# || +# + +sub usage { + warn "./pageloader.pl "; +} + +use FileHandle; + +# This is for gunzip (Should add a configure script to handle this). +$ENV{PATH} .= ":/usr/local/bin"; + +unless ($#ARGV == 1) { + &usage; + die "Error: Wrong number of arguments\n"; +} + +($tree, $logfile) = @ARGV; + +die "Error: No tree named $tree" unless -r "$tree/treedata.pl"; +require "$tree/treedata.pl"; + +# Seach the build log for the pageloader data +# +$fh = new FileHandle "gunzip -c $tree/$logfile |" + or die "Unable to open $tree/$logfile\n"; +my $pageloader_time = 0; +$pageloader_time = find_pageloader_data($fh); +$fh->close; + +die "No pageloader data found in log.\n" unless $pageloader_time; + +print "pageloader_time = $pageloader_time\n"; + +# Save the pageloader data to 'pageloader.dat' +# +open PAGELOADER, ">>$tree/pageloader.dat" or die "Unable to open $tree/pageloader.dat"; +print PAGELOADER "$logfile|$pageloader_time\n"; +close PAGELOADER; + + +# end of main +#============================================================ + +sub find_pageloader_data { + my ($fh) = $_[0]; + local $_; + my $inPageloaderStats = 0; + + # Search for "Starting Page Load Test" token, then + # start looking for "_x_x_mozilla_page_load". bloat.pl + # does this, I think there was some attempt at being + # smart about how the logs get parsed, not sure if this + # is needed now. + while (<$fh>) { + if ($inPageloaderStats and /^ _x_x_mozilla_page_load/) { + # Line format: + # _x_x_mozilla_page_load,,, + # + chomp; + print "\$_ = $_\n"; + @findLine = split(/,/,$_); + + # Pick off 2nd item, average + return $findLine[1]; + } elsif (not $inPageloaderStats and /^ Starting Page Load Test/) { + $inPageloaderStats = 1; + } + } + return (); +}