check: Warn users with nonzero RLIMIT_CORE
This commit is contained in:
parent
0c9de8140b
commit
7a4615e447
|
@ -166,7 +166,7 @@ $(foreach file,$(wildcard $(S)src/doc/trpl/*.md), \
|
|||
######################################################################
|
||||
|
||||
# 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
|
||||
|
||||
# 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.
|
||||
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.
|
||||
#
|
||||
# Issue #17883: build check-secondary first so hidden dependencies in
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
#!/usr/bin/env python
|
||||
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 sys.platform in platforms:
|
||||
func()
|
||||
return inner
|
||||
return decorator
|
||||
|
||||
|
||||
@only_on(('linux', 'darwin'))
|
||||
def check_rlimit_core():
|
||||
soft, hard = resource.getrlimit(resource.RLIMIT_CORE)
|
||||
if soft > 0:
|
||||
error_unless_permitted('ALLOW_NONZERO_ULIMIT',
|
||||
("The rust test suite will segfault many rustc's in the debuginfo phase.\n"
|
||||
"set ALLOW_NONZERO_ULIMIT to ignore this warning\n"))
|
||||
|
||||
|
||||
def main():
|
||||
check_rlimit_core()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
sys.exit(STATUS)
|
Loading…
Reference in New Issue