mirror of
https://github.com/servo/servo.git
synced 2025-06-13 19:04:30 +00:00
parent
5374812932
commit
f873db5ab0
2 changed files with 20 additions and 11 deletions
|
@ -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())
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue