PageRenderTime 53ms CodeModel.GetById 24ms RepoModel.GetById 0ms app.codeStats 0ms

/source/ruby-enterprise-1.8.7-2011.01/source/ext/syslog/test.rb

https://github.com/akiernan/omnibus
Ruby | 164 lines | 112 code | 40 blank | 12 comment | 4 complexity | 343472cbf47ad01cff4231e3d2dc24e3 MD5 | raw file
Possible License(s): Apache-2.0, BSD-3-Clause
  1. #!/usr/bin/env ruby
  2. # $RoughId: test.rb,v 1.9 2002/02/25 08:20:14 knu Exp $
  3. # $Id$
  4. # Please only run this test on machines reasonable for testing.
  5. # If in doubt, ask your admin.
  6. require 'test/unit'
  7. # Prepend current directory to load path for testing.
  8. $:.unshift('.')
  9. require 'syslog'
  10. class TestSyslog < Test::Unit::TestCase
  11. def test_new
  12. assert_raises(NoMethodError) {
  13. Syslog.new
  14. }
  15. end
  16. def test_instance
  17. sl1 = Syslog.instance
  18. sl2 = Syslog.open
  19. sl3 = Syslog.instance
  20. assert_equal(Syslog, sl1)
  21. assert_equal(Syslog, sl2)
  22. assert_equal(Syslog, sl3)
  23. ensure
  24. Syslog.close if Syslog.opened?
  25. end
  26. def test_open
  27. # default parameters
  28. Syslog.open
  29. assert_equal($0, Syslog.ident)
  30. assert_equal(Syslog::LOG_PID | Syslog::LOG_CONS, Syslog.options)
  31. assert_equal(Syslog::LOG_USER, Syslog.facility)
  32. # open without close
  33. assert_raises(RuntimeError) {
  34. Syslog.open
  35. }
  36. Syslog.close
  37. # given parameters
  38. Syslog.open("foo", Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog::LOG_DAEMON)
  39. assert_equal('foo', Syslog.ident)
  40. assert_equal(Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog.options)
  41. assert_equal(Syslog::LOG_DAEMON, Syslog.facility)
  42. Syslog.close
  43. # default parameters again (after close)
  44. Syslog.open
  45. Syslog.close
  46. assert_equal(nil, Syslog.ident)
  47. assert_equal(nil, Syslog.options)
  48. assert_equal(nil, Syslog.facility)
  49. # block
  50. param = nil
  51. Syslog.open { |param| }
  52. assert_equal(Syslog, param)
  53. ensure
  54. Syslog.close if Syslog.opened?
  55. end
  56. def test_opened?
  57. assert_equal(false, Syslog.opened?)
  58. Syslog.open
  59. assert_equal(true, Syslog.opened?)
  60. Syslog.close
  61. assert_equal(false, Syslog.opened?)
  62. Syslog.open {
  63. assert_equal(true, Syslog.opened?)
  64. }
  65. assert_equal(false, Syslog.opened?)
  66. end
  67. def test_close
  68. assert_raises(RuntimeError) {
  69. Syslog.close
  70. }
  71. end
  72. def test_mask
  73. assert_equal(nil, Syslog.mask)
  74. Syslog.open
  75. orig = Syslog.mask
  76. Syslog.mask = Syslog.LOG_UPTO(Syslog::LOG_ERR)
  77. assert_equal(Syslog.LOG_UPTO(Syslog::LOG_ERR), Syslog.mask)
  78. Syslog.mask = Syslog.LOG_MASK(Syslog::LOG_CRIT)
  79. assert_equal(Syslog.LOG_MASK(Syslog::LOG_CRIT), Syslog.mask)
  80. Syslog.mask = orig
  81. ensure
  82. Syslog.close if Syslog.opened?
  83. end
  84. def test_log
  85. stderr = IO::pipe
  86. pid = fork {
  87. stderr[0].close
  88. STDERR.reopen(stderr[1])
  89. stderr[1].close
  90. options = Syslog::LOG_PERROR | Syslog::LOG_NDELAY
  91. Syslog.open("syslog_test", options) { |sl|
  92. sl.log(Syslog::LOG_NOTICE, "test1 - hello, %s!", "world")
  93. sl.notice("test1 - hello, %s!", "world")
  94. }
  95. Syslog.open("syslog_test", options | Syslog::LOG_PID) { |sl|
  96. sl.log(Syslog::LOG_CRIT, "test2 - pid")
  97. sl.crit("test2 - pid")
  98. }
  99. exit!
  100. }
  101. stderr[1].close
  102. Process.waitpid(pid)
  103. # LOG_PERROR is not yet implemented on Cygwin.
  104. return if RUBY_PLATFORM =~ /cygwin/
  105. 2.times {
  106. assert_equal("syslog_test: test1 - hello, world!\n", stderr[0].gets)
  107. }
  108. 2.times {
  109. assert_equal(format("syslog_test[%d]: test2 - pid\n", pid), stderr[0].gets)
  110. }
  111. end
  112. def test_inspect
  113. Syslog.open { |sl|
  114. assert_equal(format('<#%s: opened=true, ident="%s", options=%d, facility=%d, mask=%d>',
  115. Syslog,
  116. sl.ident,
  117. sl.options,
  118. sl.facility,
  119. sl.mask),
  120. sl.inspect)
  121. }
  122. assert_equal(format('<#%s: opened=false>', Syslog), Syslog.inspect)
  123. end
  124. end