Commit 27a1829

mokha <mokha@cisco.com>
2019-03-16 17:31:20
try to overwhelm server across multiple threads.
1 parent a2c68af
Changed files (1)
spec
spec/minbox/server_spec.rb
@@ -104,6 +104,29 @@ RSpec.describe Minbox::Server do
         specify { expect(result).to end_with("DONE\n") }
         specify { expect(result).to include('250 OK') }
       end
+
+      context "when sending multiple emails from multiple threads" do
+        let!(:email) { Faker::Internet.email }
+        let!(:mail) { create_mail }
+        let!(:mail_string) { mail.to_s  }
+
+        specify do
+          threads = []
+          10.times do |n|
+            threads << Thread.new do
+              i = rand(10)
+              result = Net::SMTP.start(host, port) do |smtp|
+                i.times do
+                  smtp.send_message(mail_string, email, email)
+                end
+              end
+              expect(result).to eql(i)
+            end
+
+            threads.map(&:join)
+          end
+        end
+      end
     end
   end
 end