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