servo: Merge #14025 - Add --with-debug-assertions flag for Mach (from iamrohit7:debug-assertions); r=Wafflespeanut

I tested out building a release with the flag and added a `debug_assert!(false)` in `fn main` and it panicked.
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14009  (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because they are manually tested

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

Source-Repo: https://github.com/servo/servo
Source-Revision: dbce416ad436b9a3a007181fbd5d0f158cd7d9e4
This commit is contained in:
Rohit Burra 2016-11-05 22:57:44 -05:00
Родитель b307697b98
Коммит 42d578b558
2 изменённых файлов: 17 добавлений и 13 удалений

Просмотреть файл

@ -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

Просмотреть файл

@ -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 @@ class MachCommands(CommandBase):
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 @@ class MachCommands(CommandBase):
@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 @@ class MachCommands(CommandBase):
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")):