summaryrefslogtreecommitdiff
path: root/spec/default.mspec
diff options
context:
space:
mode:
authornobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-04-05 01:36:21 +0000
committernobu <nobu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-04-05 01:36:21 +0000
commit18f4cf13b5dbdd3c72067b3717763646bd61b5ce (patch)
tree33979a77000debf0e5676137d7490df84c407052 /spec/default.mspec
parent733f6496e470a51e07e6163645f7e949a636454f (diff)
default.mspec: job server
* spec/default.mspec: override MSpecScript#cores by the tokens from the parent make job server. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@58251 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/default.mspec')
-rw-r--r--spec/default.mspec25
1 files changed, 25 insertions, 0 deletions
diff --git a/spec/default.mspec b/spec/default.mspec
index 4f2c062386..082d432c7f 100644
--- a/spec/default.mspec
+++ b/spec/default.mspec
@@ -24,3 +24,28 @@ class MSpecScript
--
]
end
+
+class MSpecScript
+ if /(?:\A|\s)--jobserver-(?:auth|fds)=(\d+),(\d+)/ =~ ENV["MAKEFLAGS"]
+ begin
+ r = IO.for_fd($1.to_i(10), "rb", autoclose: false)
+ w = IO.for_fd($2.to_i(10), "wb", autoclose: false)
+ rescue
+ r.close if r
+ else
+ jobtokens = r.read_nonblock(1024)
+ cores = jobtokens.size
+ if cores > 0
+ jobserver = w
+ at_exit {
+ jobserver.print(jobtokens)
+ jobserver.close
+ }
+ end
+ remove_method :cores
+ define_method(:cores) do
+ cores
+ end
+ end
+ end
+end