Extended maintenance of Ruby versions 1.8.7 and 1.9.2 ended on July 31, 2014. Read more

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