diff options
author | Corey Farwell <coreyf@rwell.org> | 2015-08-10 08:57:24 -0400 |
---|---|---|
committer | Corey Farwell <coreyf@rwell.org> | 2015-08-10 08:59:54 -0400 |
commit | f873db5ab0371b624da23325e12a39d05b72c92b (patch) | |
tree | 41e804149bc48eb75e1307937ba669ffd6a3cd08 /python/servo/testing_commands.py | |
parent | 53748129321d2c439590368895765f7c93aee8c7 (diff) | |
download | servo-f873db5ab0371b624da23325e12a39d05b72c92b.tar.gz servo-f873db5ab0371b624da23325e12a39d05b72c92b.zip |
Allow Servo tests to be built/run with --release mode
Fixes #5075
Diffstat (limited to 'python/servo/testing_commands.py')
-rw-r--r-- | python/servo/testing_commands.py | 25 |
1 files changed, 15 insertions, 10 deletions
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 |