diff --git a/etc/ci/buildbot_steps.yml b/etc/ci/buildbot_steps.yml index 0b6ae34f92b9..19d67c02f25f 100644 --- a/etc/ci/buildbot_steps.yml +++ b/etc/ci/buildbot_steps.yml @@ -55,15 +55,15 @@ linux-dev: - bash ./etc/ci/check_no_panic.sh linux-rel-wpt: - - ./mach build --release + - ./mach build --release --with-debug-assertions - ./mach test-wpt-failure - ./mach test-wpt --release --processes 24 --log-raw test-wpt.log --log-errorsummary wpt-errorsummary.log - ./mach test-wpt --release --binary-arg=--multiprocess --processes 24 --log-raw test-wpt-mp.log --log-errorsummary wpt-mp-errorsummary.log eventsource linux-rel-css: - - ./mach build --release + - ./mach build --release --with-debug-assertions - ./mach test-css --release --processes 16 --log-raw test-css.log --log-errorsummary css-errorsummary.log - - ./mach build-cef --release + - ./mach build-cef --release --with-debug-assertions - ./mach build-geckolib --release - ./mach test-stylo --release - bash ./etc/ci/lockfile_changed.sh diff --git a/python/servo/build_commands.py b/python/servo/build_commands.py index 8f05c3e3376f..b78a286be61d 100644 --- a/python/servo/build_commands.py +++ b/python/servo/build_commands.py @@ -153,8 +153,13 @@ class MachCommands(CommandBase): help='Print verbose output') @CommandArgument('params', nargs='...', help="Command-line arguments to be passed through to Cargo") + @CommandArgument('--with-debug-assertions', + default=None, + action='store_true', + help='Enable debug assertions in release') def build(self, target=None, release=False, dev=False, jobs=None, - features=None, android=None, verbose=False, debug_mozjs=False, params=None): + features=None, android=None, verbose=False, debug_mozjs=False, params=None, + with_debug_assertions=False): if android is None: android = self.config["build"]["android"] features = features or self.servo_features() @@ -217,10 +222,7 @@ def build(self, target=None, release=False, dev=False, jobs=None, build_start = time() env = self.build_env(target=target, is_build=True) - # TODO: If this ends up making it, we should probably add a - # --release-with-debug-assertions option or similar, so it's easier to - # build locally. - if env.get("SERVO_ENABLE_DEBUG_ASSERTIONS", None): + if with_debug_assertions: env["RUSTFLAGS"] = "-C debug_assertions" if android: @@ -339,7 +341,12 @@ def build(self, target=None, release=False, dev=False, jobs=None, @CommandArgument('--release', '-r', action='store_true', help='Build in release mode') - def build_cef(self, jobs=None, verbose=False, release=False): + @CommandArgument('--with-debug-assertions', + default=None, + action='store_true', + help='Enable debug assertions in release') + def build_cef(self, jobs=None, verbose=False, release=False, + with_debug_assertions=False): self.ensure_bootstrapped() ret = None @@ -358,10 +365,7 @@ def build_cef(self, jobs=None, verbose=False, release=False): build_start = time() env = self.build_env(is_build=True) - # TODO: If this ends up making it, we should probably add a - # --release-with-debug-assertions option or similar, so it's easier to - # build locally. - if env.get("SERVO_ENABLE_DEBUG_ASSERTIONS", None): + if with_debug_assertions: env["RUSTFLAGS"] = "-C debug_assertions" with cd(path.join("ports", "cef")):