From c6633f21a49c90ab7c37076d79c286bbf3438c1f Mon Sep 17 00:00:00 2001 From: Yusuke Endoh Date: Thu, 12 Mar 2020 15:30:20 +0900 Subject: [PATCH] Update some syslog tests to absurb the format change of FreeBSD syslog FreeBSD ``` $ ruby -rsyslog -e 'Syslog.open("rubyspec", Syslog::LOG_PERROR) {|s| s.log(Syslog::LOG_ALERT, "Hello") }' rubyspec 78462 - - Hello ``` Linux ``` $ ruby -rsyslog -e 'Syslog.open("rubyspec", Syslog::LOG_PERROR) {|s| s.log(Syslog::LOG_ALERT, "Hello") }' rubyspec: Hello ``` https://github.com/freebsd/freebsd/commit/591ef7c8076109cff3c41f9bb50da996a34121e9 --- spec/ruby/library/syslog/log_spec.rb | 6 +++--- spec/ruby/library/syslog/shared/log.rb | 7 +++---- test/test_syslog.rb | 7 ++++--- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/spec/ruby/library/syslog/log_spec.rb b/spec/ruby/library/syslog/log_spec.rb index d0eaea2a94..8589fb1f73 100644 --- a/spec/ruby/library/syslog/log_spec.rb +++ b/spec/ruby/library/syslog/log_spec.rb @@ -20,7 +20,7 @@ platform_is_not :windows do s.log(Syslog::LOG_ALERT, "Hello") s.log(Syslog::LOG_CRIT, "World") end - }.should output_to_fd("rubyspec: Hello\nrubyspec: World\n", $stderr) + }.should output_to_fd(/\Arubyspec(?::| \d+ - -) Hello\nrubyspec(?::| \d+ - -) World\n\z/, $stderr) end it "accepts undefined priorities" do @@ -29,7 +29,7 @@ platform_is_not :windows do s.log(1337, "Hello") end # use a regex since it'll output unknown facility/priority messages - }.should output_to_fd(/rubyspec: Hello/, $stderr) + }.should output_to_fd(/rubyspec(?::| \d+ - -) Hello\n\z/, $stderr) end it "fails with TypeError on nil log messages" do @@ -49,7 +49,7 @@ platform_is_not :windows do Syslog.open("rubyspec", Syslog::LOG_PERROR) do |s| s.log(Syslog::LOG_ALERT, "%s x %d", "chunky bacon", 2) end - }.should output_to_fd("rubyspec: chunky bacon x 2\n", $stderr) + }.should output_to_fd(/rubyspec(?::| \d+ - -) chunky bacon x 2\n\z/, $stderr) end end end diff --git a/spec/ruby/library/syslog/shared/log.rb b/spec/ruby/library/syslog/shared/log.rb index c77ff6dd95..12e4ea8366 100644 --- a/spec/ruby/library/syslog/shared/log.rb +++ b/spec/ruby/library/syslog/shared/log.rb @@ -13,7 +13,7 @@ describe :syslog_log, shared: true do Syslog.open("rubyspec", Syslog::LOG_PERROR) do Syslog.send(@method, "Hello") end - }.should output_to_fd("rubyspec: Hello\n", $stderr) + }.should output_to_fd(/\Arubyspec(?::| \d+ - -) Hello\n\z/, $stderr) end it "accepts sprintf arguments" do @@ -22,19 +22,18 @@ describe :syslog_log, shared: true do Syslog.send(@method, "Hello %s", "world") Syslog.send(@method, "%d dogs", 2) end - }.should output_to_fd("rubyspec: Hello world\nrubyspec: 2 dogs\n", $stderr) + }.should output_to_fd(/\Arubyspec(?::| \d+ - -) Hello world\nrubyspec(?::| \d+ - -) 2 dogs\n\z/, $stderr) end it "works as an alias for Syslog.log" do level = Syslog.const_get "LOG_#{@method.to_s.upcase}" - response = "rubyspec: Hello\n" -> { Syslog.open("rubyspec", Syslog::LOG_PERROR) do Syslog.send(@method, "Hello") Syslog.log(level, "Hello") end # make sure the same thing is written to $stderr. - }.should output_to_fd(response * 2, $stderr) + }.should output_to_fd(/\A(?:rubyspec(?::| \d+ - -) Hello\n){2}\z/, $stderr) end end end diff --git a/test/test_syslog.rb b/test/test_syslog.rb index 5327814f7a..842ae8df49 100644 --- a/test/test_syslog.rb +++ b/test/test_syslog.rb @@ -113,7 +113,7 @@ class TestSyslog < Test::Unit::TestCase end def syslog_line_regex(ident, message) - /(?:^| )#{Regexp.quote(ident)}(?:\[([1-9][0-9]*)\])?(?: |[: ].* )#{Regexp.quote(message)}$/ + /(?:^| )#{Regexp.quote(ident)}(?:\[([1-9][0-9]*)\])?(?: | ([1-9][0-9]*) - - ||[: ].* )#{Regexp.quote(message)}$/ end def test_log @@ -170,8 +170,9 @@ class TestSyslog < Test::Unit::TestCase end m = re.match(line) assert_not_nil(m) - assert_not_nil(m[1]) - assert_equal(pid, m[1].to_i) + output_pid = m[1] || m[2] + assert_not_nil(output_pid) + assert_equal(pid, output_pid.to_i) } } end