mirror of
https://github.com/servo/servo.git
synced 2025-06-06 16:45:39 +00:00
Use headless rendering for performance test
This commit is contained in:
parent
d941c5b916
commit
9aaa088624
2 changed files with 31 additions and 25 deletions
|
@ -43,6 +43,7 @@ def get_servo_command(url):
|
||||||
ua_script_path = "{}/user-agent-js".format(os.getcwd())
|
ua_script_path = "{}/user-agent-js".format(os.getcwd())
|
||||||
return ["../../../target/release/servo", url,
|
return ["../../../target/release/servo", url,
|
||||||
"--userscripts", ua_script_path,
|
"--userscripts", ua_script_path,
|
||||||
|
"--headless",
|
||||||
"-x", "-o", "output.png"]
|
"-x", "-o", "output.png"]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -162,6 +162,8 @@ class MachCommands(CommandBase):
|
||||||
description='Run the page load performance test',
|
description='Run the page load performance test',
|
||||||
category='testing')
|
category='testing')
|
||||||
def test_perf(self):
|
def test_perf(self):
|
||||||
|
self.set_software_rendering_env(True)
|
||||||
|
|
||||||
self.ensure_bootstrapped()
|
self.ensure_bootstrapped()
|
||||||
env = self.build_env()
|
env = self.build_env()
|
||||||
return call(["bash", "test_perf.sh"],
|
return call(["bash", "test_perf.sh"],
|
||||||
|
@ -422,31 +424,7 @@ class MachCommands(CommandBase):
|
||||||
|
|
||||||
# Helper for test_css and test_wpt:
|
# Helper for test_css and test_wpt:
|
||||||
def wptrunner(self, run_file, **kwargs):
|
def wptrunner(self, run_file, **kwargs):
|
||||||
# On Linux and mac, find the OSMesa software rendering library and
|
self.set_software_rendering_env(kwargs['release'])
|
||||||
# add it to the dynamic linker search path.
|
|
||||||
if sys.platform.startswith('linux'):
|
|
||||||
try:
|
|
||||||
args = [self.get_binary_path(kwargs["release"], not kwargs["release"])]
|
|
||||||
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]), "out", "lib", "gallium")
|
|
||||||
os.environ["LD_LIBRARY_PATH"] = osmesa_path
|
|
||||||
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
|
||||||
except BuildNotFound:
|
|
||||||
# This can occur when cross compiling (e.g. arm64), in which case
|
|
||||||
# we won't run the tests anyway so can safely ignore this step.
|
|
||||||
pass
|
|
||||||
if sys.platform.startswith('darwin'):
|
|
||||||
try:
|
|
||||||
args = [self.get_binary_path(kwargs["release"], not kwargs["release"])]
|
|
||||||
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
|
||||||
"out", "src", "gallium", "targets", "osmesa", ".libs")
|
|
||||||
glapi_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
|
||||||
"out", "src", "mapi", "shared-glapi", ".libs")
|
|
||||||
os.environ["DYLD_LIBRARY_PATH"] = osmesa_path + ":" + glapi_path
|
|
||||||
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
|
||||||
except BuildNotFound:
|
|
||||||
# This can occur when cross compiling (e.g. arm64), in which case
|
|
||||||
# we won't run the tests anyway so can safely ignore this step.
|
|
||||||
pass
|
|
||||||
|
|
||||||
os.environ["RUST_BACKTRACE"] = "1"
|
os.environ["RUST_BACKTRACE"] = "1"
|
||||||
kwargs["debug"] = not kwargs["release"]
|
kwargs["debug"] = not kwargs["release"]
|
||||||
|
@ -658,6 +636,33 @@ class MachCommands(CommandBase):
|
||||||
return check_call(
|
return check_call(
|
||||||
[run_file, "|".join(tests), bin_path, base_dir])
|
[run_file, "|".join(tests), bin_path, base_dir])
|
||||||
|
|
||||||
|
def set_software_rendering_env(self, use_release):
|
||||||
|
# On Linux and mac, find the OSMesa software rendering library and
|
||||||
|
# add it to the dynamic linker search path.
|
||||||
|
if sys.platform.startswith('linux'):
|
||||||
|
try:
|
||||||
|
args = [self.get_binary_path(use_release, not use_release)]
|
||||||
|
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]), "out", "lib", "gallium")
|
||||||
|
os.environ["LD_LIBRARY_PATH"] = osmesa_path
|
||||||
|
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
||||||
|
except BuildNotFound:
|
||||||
|
# This can occur when cross compiling (e.g. arm64), in which case
|
||||||
|
# we won't run the tests anyway so can safely ignore this step.
|
||||||
|
pass
|
||||||
|
elif sys.platform.startswith('darwin'):
|
||||||
|
try:
|
||||||
|
args = [self.get_binary_path(use_release, not use_release)]
|
||||||
|
osmesa_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
||||||
|
"out", "src", "gallium", "targets", "osmesa", ".libs")
|
||||||
|
glapi_path = path.join(find_dep_path_newest('osmesa-src', args[0]),
|
||||||
|
"out", "src", "mapi", "shared-glapi", ".libs")
|
||||||
|
os.environ["DYLD_LIBRARY_PATH"] = osmesa_path + ":" + glapi_path
|
||||||
|
os.environ["GALLIUM_DRIVER"] = "softpipe"
|
||||||
|
except BuildNotFound:
|
||||||
|
# This can occur when cross compiling (e.g. arm64), in which case
|
||||||
|
# we won't run the tests anyway so can safely ignore this step.
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
def create_parser_create():
|
def create_parser_create():
|
||||||
import argparse
|
import argparse
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue