test: inherit JOBS from environment
authorJohan Bergström <bugs@bergstroem.nu>
Thu, 31 Dec 2015 06:32:42 +0000 (17:32 +1100)
committerMyles Borins <mborins@us.ibm.com>
Tue, 19 Jan 2016 19:52:35 +0000 (11:52 -0800)
In some virtualized environments the amount of available resources
are misleading; for instance `multiprocessing.cpu_count()` on our current
4-core smartos vm's returns `48`. This is not a bug, merely how the vm
host provides information about available hardware.

Avoid running into issues by overriding `cpu_count()` with `JOBS`.

PR-URL: https://github.com/nodejs/node/pull/4495
Reviewed-By: Brian White <mscdex@mscdex.net>
tools/test.py

index 4baca76..a864b0e 100755 (executable)
@@ -1337,7 +1337,10 @@ def ProcessOptions(options):
       print "The test group to run (n) must be smaller than number of groups (m)."
       return False
   if options.J:
-    options.j = multiprocessing.cpu_count()
+    # inherit JOBS from environment if provided. some virtualised systems
+    # tends to exaggerate the number of available cpus/cores.
+    cores = os.environ.get('JOBS')
+    options.j = int(cores) if cores is not None else multiprocessing.cpu_count()
   if options.flaky_tests not in ["run", "skip", "dontcare"]:
     print "Unknown flaky-tests mode %s" % options.flaky_tests
     return False