aboutsummaryrefslogtreecommitdiffstats
path: root/python/servo
diff options
context:
space:
mode:
authorCorey Farwell <coreyf@rwell.org>2015-08-10 08:57:24 -0400
committerCorey Farwell <coreyf@rwell.org>2015-08-10 08:59:54 -0400
commitf873db5ab0371b624da23325e12a39d05b72c92b (patch)
tree41e804149bc48eb75e1307937ba669ffd6a3cd08 /python/servo
parent53748129321d2c439590368895765f7c93aee8c7 (diff)
downloadservo-f873db5ab0371b624da23325e12a39d05b72c92b.tar.gz
servo-f873db5ab0371b624da23325e12a39d05b72c92b.zip
Allow Servo tests to be built/run with --release mode
Fixes #5075
Diffstat (limited to 'python/servo')
-rw-r--r--python/servo/build_commands.py6
-rw-r--r--python/servo/testing_commands.py25
2 files changed, 20 insertions, 11 deletions
diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py
index 12f0c909ddd..0440976c280 100644
--- a/python/servo/build_commands.py
+++ b/python/servo/build_commands.py
@@ -314,11 +314,15 @@ class MachCommands(CommandBase):
@CommandArgument('--jobs', '-j',
default=None,
help='Number of jobs to run in parallel')
- def build_tests(self, jobs=None):
+ @CommandArgument('--release', default=False, action="store_true",
+ help="Build tests with release mode")
+ def build_tests(self, jobs=None, release=False):
self.ensure_bootstrapped()
args = ["cargo", "test", "--no-run"]
if is_headless_build():
args += ["--no-default-features", "--features", "headless"]
+ if release:
+ args += ["--release"]
return subprocess.call(
args,
env=self.build_env(), cwd=self.servo_crate())
diff --git a/python/servo/testing_commands.py b/python/servo/testing_commands.py
index 76e5bf9cb79..450fc4db455 100644
--- a/python/servo/testing_commands.py
+++ b/python/servo/testing_commands.py
@@ -41,27 +41,29 @@ class MachCommands(CommandBase):
if not hasattr(self.context, "built_tests"):
self.context.built_tests = False
- def ensure_built_tests(self):
+ def ensure_built_tests(self, release=False):
if self.context.built_tests:
return
- returncode = Registrar.dispatch('build-tests', context=self.context)
+ returncode = Registrar.dispatch(
+ 'build-tests', context=self.context, release=release)
if returncode:
sys.exit(returncode)
self.context.built_tests = True
- def find_test(self, prefix):
+ def find_test(self, prefix, release=False):
+ build_mode = "release" if release else "debug"
target_contents = os.listdir(path.join(
- self.get_target_dir(), "debug"))
+ self.get_target_dir(), build_mode))
for filename in target_contents:
if filename.startswith(prefix + "-"):
filepath = path.join(
- self.get_target_dir(), "debug", filename)
+ self.get_target_dir(), build_mode, filename)
if path.isfile(filepath) and os.access(filepath, os.X_OK):
return filepath
- def run_test(self, prefix, args=[]):
- t = self.find_test(prefix)
+ def run_test(self, prefix, args=[], release=False):
+ t = self.find_test(prefix, release=release)
if t:
return subprocess.call([t] + args, env=self.build_env())
@@ -160,6 +162,8 @@ class MachCommands(CommandBase):
category='testing')
@CommandArgument('--kind', '-k', default=DEFAULT_RENDER_MODE,
help=HELP_RENDER_MODE)
+ @CommandArgument('--release', '-r', action='store_true',
+ help='Run with a release build of Servo')
@CommandArgument('--name', default=None,
help="Only run tests that match this pattern. If the "
"path to the ref test directory is included, it "
@@ -167,9 +171,10 @@ class MachCommands(CommandBase):
@CommandArgument(
'servo_params', default=None, nargs=argparse.REMAINDER,
help="Command-line arguments to be passed through to Servo")
- def test_ref(self, kind=DEFAULT_RENDER_MODE, name=None, servo_params=None):
+ def test_ref(self, kind=DEFAULT_RENDER_MODE, name=None, servo_params=None,
+ release=False):
self.ensure_bootstrapped()
- self.ensure_built_tests()
+ self.ensure_built_tests(release=release)
assert kind is not None, 'kind cannot be None, see help'
kinds = ["cpu", "gpu"] if kind == 'both' else [kind]
@@ -193,7 +198,7 @@ class MachCommands(CommandBase):
test_args.append(name)
if servo_params is not None:
test_args += ["--"] + servo_params
- ret = self.run_test("reftest", test_args)
+ ret = self.run_test("reftest", test_args, release=release)
error = error or ret != 0
elapsed = time() - test_start