+2005-08-20 Eric Seidel <eseidel@apple.com>
+
+ Reviewed by darin.
+
+ * DumpRenderTree/DumpRenderTree.m:
+ (main): cleans up delegates
+ (dumpRenderTree): closes CFString/CFURL leak
+ * Scripts/run-webkit-tests:
+ Adds --leaks option to run-webkit-tests
+ http://bugzilla.opendarwin.org/show_bug.cgi?id=4542
+
2005-08-19 Ben La Monica <ben.lamonica@gmail.com>
Reviewed by Darin.
[preferences setDefaultFontSize:defaultFontSize];
[preferences setDefaultFixedFontSize:defaultFixedFontSize];
[preferences setMinimumFontSize:minimumFontSize];
+
+ [webView release];
+ [delegate release];
+ [editingDelegate release];
[pool release];
return 0;
static void dumpRenderTree(const char *filename)
{
-
CFStringRef filenameString = CFStringCreateWithCString(NULL, filename, kCFStringEncodingUTF8);
if (filenameString == NULL) {
fprintf(stderr, "can't parse filename as UTF-8\n");
}
CFURLRef URL = CFURLCreateWithFileSystemPath(NULL, filenameString, kCFURLPOSIXPathStyle, FALSE);
+ CFRelease(filenameString);
if (URL == NULL) {
fprintf(stderr, "can't turn %s into a CFURL\n", filename);
return;
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
[frame loadRequest:[NSURLRequest requestWithURL:(NSURL *)URL]];
+ CFRelease(URL);
[pool release];
while (!done) {
pool = [[NSAutoreleasePool alloc] init];
use strict;
use IPC::Open2;
use Getopt::Long;
+use File::Path;
use FindBin;
use Cwd;
use lib $FindBin::Bin;
# Argument handling
my $testSVGs = '';
my $pixelTests = '';
+my $checkLeaks = '';
my $maxWidth = '';
my $maxHeight = '';
my $verbose = '';
GetOptions('svg' => \$testSVGs,
'pixel-tests' => \$pixelTests,
+ 'leaks' => \$checkLeaks,
'max-width' => \$maxWidth,
'max-height' => \$maxHeight,
'verbose' => \$verbose,
my $testResults = "$testResultsDirectory/results.html";
$ENV{DYLD_FRAMEWORK_PATH} = $productDir;
+if ($checkLeaks) {
+ $ENV{MallocStackLogging} = 1;
+}
my @tests;
$| = 1;
-open2(\*IN, \*OUT, $tool, @toolArgs) or die;
+my $toolPID;
+my $imageDiffToolPID;
+
+$toolPID = open2(\*IN, \*OUT, $tool, @toolArgs) or die;
if ($pixelTests) {
- open2(\*DIFFIN, \*DIFFOUT, $imageDiffTool, "") or die "unable to open $imageDiffTool\n";
+ $imageDiffToolPID = open2(\*DIFFIN, \*DIFFOUT, $imageDiffTool, "") or die "unable to open $imageDiffTool\n";
}
my $column = 0;
my $dir = "$testResultsDirectory/$base";
$dir =~ s|/[^/]+$||;
- system "mkdir", "-p", $dir;
+ mkpath $dir;
open ACTUAL, ">", "$testResultsDirectory/$base-actual.txt" or die;
print ACTUAL $actual;
close IN;
close OUT;
- open2(\*IN, \*OUT, $tool, @toolArgs) or die;
+ $toolPID = open2(\*IN, \*OUT, $tool, @toolArgs) or die;
}
$count += 1;
push @{$tests{$result}}, $test;
}
+if ($checkLeaks) {
+ print "Checking for leaks in $toolname:\n";
+ my $leaksResults = `leaks $toolPID`;
+ my $leaksResultFile = "$testDirectory/$toolname-leaks.txt"
+
+ open EXPECTED, ">", $leaksResultFile or print "Could not write leaks output to leaksResultFile\n";
+ print EXPECTED $actualPNG;
+ close EXPECTED;
+ }
+
+ if ($pixelTests) {
+ print "Checking for leaks in ImageDiff:\n";
+ system "leaks", $imageDiffToolPID , "> $testDirectory/ImageDiff-leaks.txt";
+ }
+}
+
close IN;
close OUT;
}
}
- system "mkdir", "-p", $testResultsDirectory;
+ mkpath $testResultsDirectory;
open HTML, ">", $testResults or die;
print HTML "<html>\n";