зеркало из https://github.com/mozilla/gecko-dev.git
add new layout performance local test. b=348288, r=preed
This commit is contained in:
Родитель
7d426c7fcd
Коммит
6aa9208009
|
@ -24,7 +24,7 @@ use Config; # for $Config{sig_name} and $Config{sig_num}
|
||||||
use File::Find ();
|
use File::Find ();
|
||||||
use File::Copy;
|
use File::Copy;
|
||||||
|
|
||||||
$::UtilsVersion = '$Revision: 1.336 $ ';
|
$::UtilsVersion = '$Revision: 1.337 $ ';
|
||||||
|
|
||||||
package TinderUtils;
|
package TinderUtils;
|
||||||
|
|
||||||
|
@ -2000,15 +2000,16 @@ sub run_all_tests {
|
||||||
# Set prefs to run tests properly.
|
# Set prefs to run tests properly.
|
||||||
#
|
#
|
||||||
if ($pref_file && $test_result eq 'success') { #XXX lame
|
if ($pref_file && $test_result eq 'success') { #XXX lame
|
||||||
if($Settings::LayoutPerformanceTest or
|
if($Settings::LayoutPerformanceTest or
|
||||||
$Settings::DHTMLPerformanceTest or
|
$Settings::LayoutPerformanceLocalTest or
|
||||||
$Settings::XULWindowOpenTest or
|
$Settings::DHTMLPerformanceTest or
|
||||||
$Settings::StartupPerformanceTest or
|
$Settings::XULWindowOpenTest or
|
||||||
$Settings::MailBloatTest or
|
$Settings::StartupPerformanceTest or
|
||||||
$Settings::QATest or
|
$Settings::MailBloatTest or
|
||||||
$Settings::BloatTest2 or
|
$Settings::QATest or
|
||||||
$Settings::BloatTest or
|
$Settings::BloatTest2 or
|
||||||
$Settings::RenderPerformanceTest or
|
$Settings::BloatTest or
|
||||||
|
$Settings::RenderPerformanceTest or
|
||||||
$Settings::RunUnitTests) {
|
$Settings::RunUnitTests) {
|
||||||
|
|
||||||
# Chances are we will be timing these tests. Bring gettime() into memory
|
# Chances are we will be timing these tests. Bring gettime() into memory
|
||||||
|
@ -2232,6 +2233,29 @@ sub run_all_tests {
|
||||||
$build_dir,
|
$build_dir,
|
||||||
$app_args);
|
$app_args);
|
||||||
}
|
}
|
||||||
|
# New layout performance test.
|
||||||
|
if ($Settings::LayoutPerformanceLocalTest and $test_result eq 'success') {
|
||||||
|
my $app_args = [$binary];
|
||||||
|
if ($Settings::BinaryName eq 'Camino') {
|
||||||
|
push(@$app_args, '-url');
|
||||||
|
}
|
||||||
|
|
||||||
|
# When I found this, it avoided setting the profile for Firefox.
|
||||||
|
# That didn't work on a tinderbox that had multiple profiles.
|
||||||
|
# Now, it will set the profile if it's not 'default' on the assumption
|
||||||
|
# that existing tinderboxes were all using 'default' anyway. Why
|
||||||
|
# so careful? I'm afraid of things like bug 112767, and I assume this
|
||||||
|
# had been done for a reason. -mm
|
||||||
|
unless ($Settings::BinaryName eq "TestGtkEmbed" ||
|
||||||
|
($Settings::BinaryName =~ /^firefox/ && $Settings::MozProfileName eq 'default') ||
|
||||||
|
$Settings::BinaryName eq 'Camino') {
|
||||||
|
push(@$app_args, "-P", $Settings::MozProfileName);
|
||||||
|
}
|
||||||
|
|
||||||
|
$test_result = LayoutPerformanceLocalTest("LayoutPerformanceLocalTest",
|
||||||
|
$build_dir,
|
||||||
|
$app_args);
|
||||||
|
}
|
||||||
|
|
||||||
# DHTML performance test.
|
# DHTML performance test.
|
||||||
if ($Settings::DHTMLPerformanceTest and $test_result eq 'success') {
|
if ($Settings::DHTMLPerformanceTest and $test_result eq 'success') {
|
||||||
|
@ -2586,6 +2610,62 @@ sub LayoutPerformanceTest {
|
||||||
return $layout_test_result;
|
return $layout_test_result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub LayoutPerformanceLocalTest {
|
||||||
|
my ($test_name, $build_dir, $args) = @_;
|
||||||
|
my $layout_test_result;
|
||||||
|
my $layout_time;
|
||||||
|
my $layout_time_details;
|
||||||
|
my $binary_log = "$build_dir/$test_name.log";
|
||||||
|
my $url = "http://localhost/pageload/cycler.html";
|
||||||
|
|
||||||
|
# Settle OS.
|
||||||
|
run_system_cmd("sync; sleep 5", 35);
|
||||||
|
|
||||||
|
$layout_time = AliveTestReturnToken($test_name,
|
||||||
|
$build_dir,
|
||||||
|
[@$args, $url],
|
||||||
|
$Settings::LayoutPerformanceLocalTestTimeout,
|
||||||
|
"_x_x_mozilla_page_load",
|
||||||
|
",");
|
||||||
|
|
||||||
|
if($layout_time) {
|
||||||
|
chomp($layout_time);
|
||||||
|
my @times = split(',', $layout_time);
|
||||||
|
$layout_time = $times[0]; # Set layout time to first number.
|
||||||
|
} else {
|
||||||
|
print_log "TinderboxPrint:Tp2:[CRASH]\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
# Set test status.
|
||||||
|
if($layout_time) {
|
||||||
|
$layout_test_result = 'success';
|
||||||
|
} else {
|
||||||
|
$layout_test_result = 'testfailed';
|
||||||
|
print_log "LayoutPerformanceLocalTest: test failed\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
if($layout_test_result eq 'success') {
|
||||||
|
my $tp_prefix = "";
|
||||||
|
if($Settings::BinaryName eq "TestGtkEmbed") {
|
||||||
|
$tp_prefix = "m";
|
||||||
|
}
|
||||||
|
|
||||||
|
print_log_test_result_ms('pageload2',
|
||||||
|
'Avg of the median per url pageload time',
|
||||||
|
$layout_time, 'Tp2');
|
||||||
|
|
||||||
|
# Pull out detail data from log.
|
||||||
|
my $raw_data = extract_token_from_file($binary_log, "_x_x_mozilla_page_load_details", ",");
|
||||||
|
chomp($raw_data);
|
||||||
|
|
||||||
|
if($Settings::TestsPhoneHome) {
|
||||||
|
send_results_to_server($layout_time, $raw_data, "pageload2");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $layout_test_result;
|
||||||
|
}
|
||||||
|
|
||||||
sub DHTMLPerformanceTest {
|
sub DHTMLPerformanceTest {
|
||||||
my ($test_name, $build_dir, $args) = @_;
|
my ($test_name, $build_dir, $args) = @_;
|
||||||
my $dhtml_test_result;
|
my $dhtml_test_result;
|
||||||
|
|
|
@ -70,6 +70,7 @@ $EmbedCodesizeTest = 0; # mZ, require mozilla/tools/codesigns
|
||||||
$MailBloatTest = 0;
|
$MailBloatTest = 0;
|
||||||
$EmbedTest = 0; # Assumes you wanted $BuildEmbed=1
|
$EmbedTest = 0; # Assumes you wanted $BuildEmbed=1
|
||||||
$LayoutPerformanceTest = 0; # Tp
|
$LayoutPerformanceTest = 0; # Tp
|
||||||
|
$LayoutPerformanceLocalTest = 0; # Tp2
|
||||||
$DHTMLPerformanceTest = 0; # Tdhtml
|
$DHTMLPerformanceTest = 0; # Tdhtml
|
||||||
$QATest = 0;
|
$QATest = 0;
|
||||||
$XULWindowOpenTest = 0; # Txul
|
$XULWindowOpenTest = 0; # Txul
|
||||||
|
@ -113,6 +114,7 @@ $XpcomGlueTestTimeout = 15;
|
||||||
$CodesizeTestTimeout = 900; # seconds
|
$CodesizeTestTimeout = 900; # seconds
|
||||||
$CodesizeTestType = "auto"; # {"auto"|"base"}
|
$CodesizeTestType = "auto"; # {"auto"|"base"}
|
||||||
$LayoutPerformanceTestTimeout = 1200; # entire test, seconds
|
$LayoutPerformanceTestTimeout = 1200; # entire test, seconds
|
||||||
|
$LayoutPerformanceLocalTestTimeout = 1200; # entire test, seconds
|
||||||
$DHTMLPerformanceTestTimeout = 1200; # entire test, seconds
|
$DHTMLPerformanceTestTimeout = 1200; # entire test, seconds
|
||||||
$QATestTimeout = 1200; # entire test, seconds
|
$QATestTimeout = 1200; # entire test, seconds
|
||||||
$LayoutPerformanceTestPageTimeout = 30000; # each page, ms
|
$LayoutPerformanceTestPageTimeout = 30000; # each page, ms
|
||||||
|
|
Загрузка…
Ссылка в новой задаче