In Files

  • syslog/test.rb

Class/Module Index [+]

Quicksearch

TestSyslog

Public Instance Methods

test_close() click to toggle source
 
               # File syslog/test.rb, line 90
def test_close
  assert_raises(RuntimeError) {
    Syslog.close
  }
end
            
test_inspect() click to toggle source
 
               # File syslog/test.rb, line 151
def test_inspect
  Syslog.open { |sl|
    assert_equal(format('<#%s: opened=true, ident="%s", options=%d, facility=%d, mask=%d>',
                        Syslog,
                        sl.ident,
                        sl.options,
                        sl.facility,
                        sl.mask),
                 sl.inspect)
  }

  assert_equal(format('<#%s: opened=false>', Syslog), Syslog.inspect)
end
            
test_instance() click to toggle source
 
               # File syslog/test.rb, line 22
def test_instance
  sl1 = Syslog.instance
  sl2 = Syslog.open
  sl3 = Syslog.instance

  assert_equal(Syslog, sl1)
  assert_equal(Syslog, sl2)
  assert_equal(Syslog, sl3)
ensure
  Syslog.close if Syslog.opened?
end
            
test_log() click to toggle source
 
               # File syslog/test.rb, line 114
def test_log
  stderr = IO::pipe

  pid = fork {
    stderr[0].close
    STDERR.reopen(stderr[1])
    stderr[1].close

    options = Syslog::LOG_PERROR | Syslog::LOG_NDELAY

    Syslog.open("syslog_test", options) { |sl|
      sl.log(Syslog::LOG_NOTICE, "test1 - hello, %s!", "world")
      sl.notice("test1 - hello, %s!", "world")
    }

    Syslog.open("syslog_test", options | Syslog::LOG_PID) { |sl|
      sl.log(Syslog::LOG_CRIT, "test2 - pid")
      sl.crit("test2 - pid")
    }
    exit!
  }

  stderr[1].close
  Process.waitpid(pid)

  # LOG_PERROR is not yet implemented on Cygwin.
  return if RUBY_PLATFORM =~ /cygwin/

  2.times {
    assert_equal("syslog_test: test1 - hello, world!\n", stderr[0].gets)
  }

  2.times {
    assert_equal(format("syslog_test[%d]: test2 - pid\n", pid), stderr[0].gets)
  }
end
            
test_mask() click to toggle source
 
               # File syslog/test.rb, line 96
def test_mask
  assert_equal(nil, Syslog.mask)

  Syslog.open

  orig = Syslog.mask

  Syslog.mask = Syslog.LOG_UPTO(Syslog::LOG_ERR)
  assert_equal(Syslog.LOG_UPTO(Syslog::LOG_ERR), Syslog.mask)

  Syslog.mask = Syslog.LOG_MASK(Syslog::LOG_CRIT)
  assert_equal(Syslog.LOG_MASK(Syslog::LOG_CRIT), Syslog.mask)

  Syslog.mask = orig
ensure
  Syslog.close if Syslog.opened?
end
            
test_new() click to toggle source
 
               # File syslog/test.rb, line 16
def test_new
  assert_raises(NoMethodError) {
    Syslog.new
  }
end
            
test_open() click to toggle source
 
               # File syslog/test.rb, line 34
def test_open
  # default parameters
  Syslog.open

  assert_equal($0, Syslog.ident)
  assert_equal(Syslog::LOG_PID | Syslog::LOG_CONS, Syslog.options)
  assert_equal(Syslog::LOG_USER, Syslog.facility)

  # open without close
  assert_raises(RuntimeError) {
    Syslog.open
  }

  Syslog.close

  # given parameters
  Syslog.open("foo", Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog::LOG_DAEMON) 

  assert_equal('foo', Syslog.ident)
  assert_equal(Syslog::LOG_NDELAY | Syslog::LOG_PERROR, Syslog.options)
  assert_equal(Syslog::LOG_DAEMON, Syslog.facility)

  Syslog.close

  # default parameters again (after close)
  Syslog.open
  Syslog.close

  assert_equal(nil, Syslog.ident)
  assert_equal(nil, Syslog.options)
  assert_equal(nil, Syslog.facility)

  # block
  param = nil
  Syslog.open { |param| }
  assert_equal(Syslog, param)
ensure
  Syslog.close if Syslog.opened?
end
            
test_opened?() click to toggle source
 
               # File syslog/test.rb, line 74
def test_opened?
  assert_equal(false, Syslog.opened?)

  Syslog.open
  assert_equal(true, Syslog.opened?)

  Syslog.close
  assert_equal(false, Syslog.opened?)

  Syslog.open {
    assert_equal(true, Syslog.opened?)
  }

  assert_equal(false, Syslog.opened?)
end
            

Commenting is here to help enhance the documentation. For example, code samples, or clarification of the documentation.

If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.

If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.

If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.

blog comments powered by Disqus