]> git.lizzy.rs Git - rust.git/commitdiff
Warn if the test suite is run on Windows in console with non-UTF-8 code page
authorpetrochenkov <vadim.petrochenkov@gmail.com>
Sat, 30 May 2015 16:22:12 +0000 (19:22 +0300)
committerpetrochenkov <vadim.petrochenkov@gmail.com>
Sat, 30 May 2015 16:22:12 +0000 (19:22 +0300)
mk/tests.mk
src/etc/check-sanitycheck.py

index 44c661c4e20ea61bcb77157bb27a2b1904d4006c..fa35bd383b28424bba628ef42363ee154aeb1161 100644 (file)
@@ -172,23 +172,24 @@ 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.
-check-notidy: cleantmptestlogs cleantestlibs all check-stage2
+check-notidy: check-sanitycheck cleantmptestlogs cleantestlibs all check-stage2
        $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
 
 # A slightly smaller set of tests for smoke testing.
-check-lite: cleantestlibs cleantmptestlogs \
+check-lite: check-sanitycheck cleantestlibs cleantmptestlogs \
        $(foreach crate,$(TEST_TARGET_CRATES),check-stage2-$(crate)) \
        check-stage2-rpass check-stage2-rpass-valgrind \
        check-stage2-rfail check-stage2-cfail check-stage2-pfail check-stage2-rmake
        $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
 
 # Only check the 'reference' tests: rpass/cfail/rfail/rmake.
-check-ref: cleantestlibs cleantmptestlogs check-stage2-rpass check-stage2-rpass-valgrind \
-       check-stage2-rfail check-stage2-cfail check-stage2-pfail check-stage2-rmake
+check-ref: check-sanitycheck cleantestlibs cleantmptestlogs check-stage2-rpass \
+       check-stage2-rpass-valgrind check-stage2-rfail check-stage2-cfail check-stage2-pfail \
+       check-stage2-rmake
        $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
 
 # Only check the docs.
-check-docs: cleantestlibs cleantmptestlogs check-stage2-docs
+check-docs: check-sanitycheck cleantestlibs cleantmptestlogs check-stage2-docs
        $(Q)$(CFG_PYTHON) $(S)src/etc/check-summary.py tmp/*.log
 
 # Some less critical tests that are not prone to breakage.
index fc8ed7b383ec5943f7852534e636e3e43d6ca6ad..b3dc290e36b1ff5335a78f470b98f6c70b133b9c 100644 (file)
@@ -11,6 +11,7 @@
 # except according to those terms.
 
 import os
+import subprocess
 import sys
 import functools
 
@@ -45,8 +46,14 @@ will segfault many rustc's, creating many potentially large core files.
 set ALLOW_NONZERO_RLIMIT_CORE to ignore this warning
 """ % (soft))
 
+@only_on(('windows'))
+def check_console_code_page():
+    if "65001" not in subprocess.check_output(['cmd', '/c', 'chcp']):
+        sys.stderr.write('Warning: the console output code page is not UTF-8, \
+some tests may fail. Use `cmd /c "chcp 65001"` to setup UTF-8 code page.\n')
 
 def main():
+    check_console_code_page()
     check_rlimit_core()
 
 if __name__ == '__main__':