mirror of
https://github.com/rust-lang/rust
synced 2024-09-05 08:37:14 +00:00
Auto merge of #23678 - richo:check-flightcheck, r=alexcrichton
Rationale for this, is that I lurked `ulimit -c unlimited` into my .profile to debug an unrelated crash, that I kept forgetting to set before hand. I then ran the test suite and discovered that I had 150 gigs of core dumps in `/cores`. Very open to another approach, or to setting the limit to something higher than 0, but I think it would be nice if the build system tried to save you from yourself here.
This commit is contained in:
commit
d754722a04
|
@ -166,7 +166,7 @@ $(foreach file,$(wildcard $(S)src/doc/trpl/*.md), \
|
||||||
######################################################################
|
######################################################################
|
||||||
|
|
||||||
# The main testing target. Tests lots of stuff.
|
# The main testing target. Tests lots of stuff.
|
||||||
check: cleantmptestlogs cleantestlibs all check-stage2 tidy
|
check: check-sanitycheck cleantmptestlogs cleantestlibs all check-stage2 tidy
|
||||||
$(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
|
$(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
|
||||||
|
|
||||||
# As above but don't bother running tidy.
|
# As above but don't bother running tidy.
|
||||||
|
@ -193,6 +193,11 @@ check-docs: cleantestlibs cleantmptestlogs check-stage2-docs
|
||||||
# Not run as part of the normal test suite, but tested by bors on checkin.
|
# Not run as part of the normal test suite, but tested by bors on checkin.
|
||||||
check-secondary: check-build-compiletest check-build-lexer-verifier check-lexer check-pretty
|
check-secondary: check-build-compiletest check-build-lexer-verifier check-lexer check-pretty
|
||||||
|
|
||||||
|
.PHONY: check-sanitycheck
|
||||||
|
|
||||||
|
check-sanitycheck:
|
||||||
|
$(Q)$(CFG_PYTHON) $(S)src/etc/check-sanitycheck.py
|
||||||
|
|
||||||
# check + check-secondary.
|
# check + check-secondary.
|
||||||
#
|
#
|
||||||
# Issue #17883: build check-secondary first so hidden dependencies in
|
# Issue #17883: build check-secondary first so hidden dependencies in
|
||||||
|
|
54
src/etc/check-sanitycheck.py
Normal file
54
src/etc/check-sanitycheck.py
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
#!/usr/bin/env python
|
||||||
|
#
|
||||||
|
# Copyright 2012-2014 The Rust Project Developers. See the COPYRIGHT
|
||||||
|
# file at the top-level directory of this distribution and at
|
||||||
|
# http://rust-lang.org/COPYRIGHT.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
||||||
|
# <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
||||||
|
# option. This file may not be copied, modified, or distributed
|
||||||
|
# except according to those terms.
|
||||||
|
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
import functools
|
||||||
|
import resource
|
||||||
|
|
||||||
|
STATUS = 0
|
||||||
|
|
||||||
|
|
||||||
|
def error_unless_permitted(env_var, message):
|
||||||
|
global STATUS
|
||||||
|
if not os.getenv(env_var):
|
||||||
|
sys.stderr.write(message)
|
||||||
|
STATUS = 1
|
||||||
|
|
||||||
|
|
||||||
|
def only_on(platforms):
|
||||||
|
def decorator(func):
|
||||||
|
@functools.wraps(func)
|
||||||
|
def inner():
|
||||||
|
if any(map(lambda x: sys.platform.startswith(x), platforms)):
|
||||||
|
func()
|
||||||
|
return inner
|
||||||
|
return decorator
|
||||||
|
|
||||||
|
|
||||||
|
@only_on(('linux', 'darwin', 'freebsd', 'openbsd'))
|
||||||
|
def check_rlimit_core():
|
||||||
|
soft, hard = resource.getrlimit(resource.RLIMIT_CORE)
|
||||||
|
if soft > 0:
|
||||||
|
error_unless_permitted('ALLOW_NONZERO_RLIMIT_CORE', """\
|
||||||
|
RLIMIT_CORE is set to a nonzero value (%d). During debuginfo, the test suite
|
||||||
|
will segfault many rustc's, creating many potentially large core files.
|
||||||
|
set ALLOW_NONZERO_RLIMIT_CORE to ignore this warning
|
||||||
|
""" % (soft))
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
check_rlimit_core()
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
main()
|
||||||
|
sys.exit(STATUS)
|
Loading…
Reference in a new issue