spec/syslogger_spec.rb in syslogger-1.6.2 vs spec/syslogger_spec.rb in syslogger-1.6.3

- old
+ new

@@ -100,9 +100,43 @@ Syslog.should_receive(:open).with("my_app", Syslog::LOG_PID, Syslog::LOG_USER).and_yield(syslog=double("syslog", :mask= => true)) syslog.should_receive(:log).with(Syslog::LOG_INFO, "yop") logger.write "yop" end + it "should allow multiple instances to log at the same time" do + logger1 = Syslogger.new("my_app1", Syslog::LOG_PID, Syslog::LOG_USER) + logger2 = Syslogger.new("my_app2", Syslog::LOG_PID, Syslog::LOG_USER) + + thread1 = Thread.new do + 5000.times do |i| + logger1.write "logger1" + end + end + + thread2 = Thread.new do + 5000.times do |i| + logger2.write "logger1" + end + end + + thread1.join + thread2.join + end + + it "should not fail under chaos" do + threads = [] + (1..10).each do + threads << Thread.new do + (1..100).each do |index| + logger = Syslogger.new(Thread.current.inspect, Syslog::LOG_PID, Syslog::LOG_USER) + logger.write index + end + end + end + + threads.each{|thread| thread.join } + end + describe "add" do before do @logger = Syslogger.new("my_app", Syslog::LOG_PID, Syslog::LOG_USER) end it "should respond to add" do