mirror of
https://github.com/servo/servo.git
synced 2025-07-30 10:40:27 +01:00
parent
5374812932
commit
f873db5ab0
2 changed files with 20 additions and 11 deletions
|
@ -314,11 +314,15 @@ class MachCommands(CommandBase):
|
||||||
@CommandArgument('--jobs', '-j',
|
@CommandArgument('--jobs', '-j',
|
||||||
default=None,
|
default=None,
|
||||||
help='Number of jobs to run in parallel')
|
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()
|
self.ensure_bootstrapped()
|
||||||
args = ["cargo", "test", "--no-run"]
|
args = ["cargo", "test", "--no-run"]
|
||||||
if is_headless_build():
|
if is_headless_build():
|
||||||
args += ["--no-default-features", "--features", "headless"]
|
args += ["--no-default-features", "--features", "headless"]
|
||||||
|
if release:
|
||||||
|
args += ["--release"]
|
||||||
return subprocess.call(
|
return subprocess.call(
|
||||||
args,
|
args,
|
||||||
env=self.build_env(), cwd=self.servo_crate())
|
env=self.build_env(), cwd=self.servo_crate())
|
||||||
|
|
|
@ -41,27 +41,29 @@ class MachCommands(CommandBase):
|
||||||
if not hasattr(self.context, "built_tests"):
|
if not hasattr(self.context, "built_tests"):
|
||||||
self.context.built_tests = False
|
self.context.built_tests = False
|
||||||
|
|
||||||
def ensure_built_tests(self):
|
def ensure_built_tests(self, release=False):
|
||||||
if self.context.built_tests:
|
if self.context.built_tests:
|
||||||
return
|
return
|
||||||
returncode = Registrar.dispatch('build-tests', context=self.context)
|
returncode = Registrar.dispatch(
|
||||||
|
'build-tests', context=self.context, release=release)
|
||||||
if returncode:
|
if returncode:
|
||||||
sys.exit(returncode)
|
sys.exit(returncode)
|
||||||
self.context.built_tests = True
|
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(
|
target_contents = os.listdir(path.join(
|
||||||
self.get_target_dir(), "debug"))
|
self.get_target_dir(), build_mode))
|
||||||
for filename in target_contents:
|
for filename in target_contents:
|
||||||
if filename.startswith(prefix + "-"):
|
if filename.startswith(prefix + "-"):
|
||||||
filepath = path.join(
|
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):
|
if path.isfile(filepath) and os.access(filepath, os.X_OK):
|
||||||
return filepath
|
return filepath
|
||||||
|
|
||||||
def run_test(self, prefix, args=[]):
|
def run_test(self, prefix, args=[], release=False):
|
||||||
t = self.find_test(prefix)
|
t = self.find_test(prefix, release=release)
|
||||||
if t:
|
if t:
|
||||||
return subprocess.call([t] + args, env=self.build_env())
|
return subprocess.call([t] + args, env=self.build_env())
|
||||||
|
|
||||||
|
@ -160,6 +162,8 @@ class MachCommands(CommandBase):
|
||||||
category='testing')
|
category='testing')
|
||||||
@CommandArgument('--kind', '-k', default=DEFAULT_RENDER_MODE,
|
@CommandArgument('--kind', '-k', default=DEFAULT_RENDER_MODE,
|
||||||
help=HELP_RENDER_MODE)
|
help=HELP_RENDER_MODE)
|
||||||
|
@CommandArgument('--release', '-r', action='store_true',
|
||||||
|
help='Run with a release build of Servo')
|
||||||
@CommandArgument('--name', default=None,
|
@CommandArgument('--name', default=None,
|
||||||
help="Only run tests that match this pattern. If the "
|
help="Only run tests that match this pattern. If the "
|
||||||
"path to the ref test directory is included, it "
|
"path to the ref test directory is included, it "
|
||||||
|
@ -167,9 +171,10 @@ class MachCommands(CommandBase):
|
||||||
@CommandArgument(
|
@CommandArgument(
|
||||||
'servo_params', default=None, nargs=argparse.REMAINDER,
|
'servo_params', default=None, nargs=argparse.REMAINDER,
|
||||||
help="Command-line arguments to be passed through to Servo")
|
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_bootstrapped()
|
||||||
self.ensure_built_tests()
|
self.ensure_built_tests(release=release)
|
||||||
assert kind is not None, 'kind cannot be None, see help'
|
assert kind is not None, 'kind cannot be None, see help'
|
||||||
|
|
||||||
kinds = ["cpu", "gpu"] if kind == 'both' else [kind]
|
kinds = ["cpu", "gpu"] if kind == 'both' else [kind]
|
||||||
|
@ -193,7 +198,7 @@ class MachCommands(CommandBase):
|
||||||
test_args.append(name)
|
test_args.append(name)
|
||||||
if servo_params is not None:
|
if servo_params is not None:
|
||||||
test_args += ["--"] + servo_params
|
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
|
error = error or ret != 0
|
||||||
elapsed = time() - test_start
|
elapsed = time() - test_start
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue