aboutsummaryrefslogtreecommitdiffstats
path: root/spec
diff options
context:
space:
mode:
authorThe Bundler Bot <bot@bundler.io>2016-12-27 15:32:31 +0000
committerThe Bundler Bot <bot@bundler.io>2016-12-27 15:32:31 +0000
commit28b2d86db1963cb821b443e32c19104d048a901b (patch)
tree61c716f9ce41f74718538377ea4fb646707ebfa2 /spec
parent159c7dc8566f9bdd54f6d877658ad29397e2ec67 (diff)
parent9f16e683d56dc12d50bad2b1811b87678ca5cf36 (diff)
downloadbundler-28b2d86db1963cb821b443e32c19104d048a901b.tar.gz
Auto merge of #5278 - bundler:seg-worker-thread-creation-failure, r=indirect
[Worker] Fail gracefully when creating threads fails
Diffstat (limited to 'spec')
-rw-r--r--spec/bundler/worker_spec.rb22
1 files changed, 22 insertions, 0 deletions
diff --git a/spec/bundler/worker_spec.rb b/spec/bundler/worker_spec.rb
new file mode 100644
index 00000000..786778b0
--- /dev/null
+++ b/spec/bundler/worker_spec.rb
@@ -0,0 +1,22 @@
+# frozen_string_literal: true
+require "spec_helper"
+require "bundler/worker"
+
+describe Bundler::Worker do
+ let(:size) { 5 }
+ let(:name) { "Spec Worker" }
+ let(:function) { proc {|object, worker_number| [object, worker_number] } }
+ subject { described_class.new(size, name, function) }
+
+ after { subject.stop }
+
+ describe "#initialize" do
+ context "when Thread.start raises ThreadError" do
+ it "raises when no threads can be created" do
+ allow(Thread).to receive(:start).and_raise(ThreadError, "error creating thread")
+
+ expect { subject.enq "a" }.to raise_error(Bundler::ThreadCreationError, "Failed to create threads for the Spec Worker worker: error creating thread")
+ end
+ end
+ end
+end