oe_syslog.py 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from oeqa.runtime.case import OERuntimeTestCase
  2. from oeqa.core.decorator.depends import OETestDepends
  3. from oeqa.core.decorator.data import skipIfDataVar
  4. from oeqa.runtime.decorator.package import OEHasPackage
  5. class SyslogTest(OERuntimeTestCase):
  6. @OETestDepends(['ssh.SSHTest.test_ssh'])
  7. @OEHasPackage(["busybox-syslog", "sysklogd", "rsyslog", "syslog-ng"])
  8. def test_syslog_running(self):
  9. status, output = self.target.run(self.tc.target_cmds['ps'])
  10. msg = "Failed to execute %s" % self.tc.target_cmds['ps']
  11. self.assertEqual(status, 0, msg=msg)
  12. msg = "No syslog daemon process; %s output:\n%s" % (self.tc.target_cmds['ps'], output)
  13. hasdaemon = "syslogd" in output or "syslog-ng" in output
  14. self.assertTrue(hasdaemon, msg=msg)
  15. class SyslogTestConfig(OERuntimeTestCase):
  16. @OETestDepends(['oe_syslog.SyslogTest.test_syslog_running'])
  17. def test_syslog_logger(self):
  18. status, output = self.target.run('logger foobar')
  19. msg = "Can't log into syslog. Output: %s " % output
  20. self.assertEqual(status, 0, msg=msg)
  21. status, output = self.target.run('grep foobar /var/log/messages')
  22. if status != 0:
  23. if self.tc.td.get("VIRTUAL-RUNTIME_init_manager") == "systemd":
  24. status, output = self.target.run('journalctl -o cat | grep foobar')
  25. else:
  26. status, output = self.target.run('logread | grep foobar')
  27. msg = ('Test log string not found in /var/log/messages or logread.'
  28. ' Output: %s ' % output)
  29. self.assertEqual(status, 0, msg=msg)
  30. @OETestDepends(['oe_syslog.SyslogTest.test_syslog_running'])
  31. def test_syslog_restart(self):
  32. if "systemd" != self.tc.td.get("VIRTUAL-RUNTIME_init_manager", ""):
  33. (_, _) = self.target.run('/etc/init.d/syslog restart')
  34. else:
  35. (_, _) = self.target.run('systemctl restart syslog.service')
  36. @OETestDepends(['oe_syslog.SyslogTestConfig.test_syslog_logger'])
  37. @OEHasPackage(["busybox-syslog"])
  38. @skipIfDataVar('VIRTUAL-RUNTIME_init_manager', 'systemd',
  39. 'Not appropiate for systemd image')
  40. def test_syslog_startup_config(self):
  41. cmd = 'echo "LOGFILE=/var/log/test" >> /etc/syslog-startup.conf'
  42. self.target.run(cmd)
  43. status, output = self.target.run('/etc/init.d/syslog restart')
  44. msg = ('Could not restart syslog service. Status and output:'
  45. ' %s and %s' % (status,output))
  46. self.assertEqual(status, 0, msg)
  47. cmd = 'logger foobar && grep foobar /var/log/test'
  48. status,output = self.target.run(cmd)
  49. msg = 'Test log string not found. Output: %s ' % output
  50. self.assertEqual(status, 0, msg=msg)
  51. cmd = "sed -i 's#LOGFILE=/var/log/test##' /etc/syslog-startup.conf"
  52. self.target.run(cmd)
  53. self.target.run('/etc/init.d/syslog restart')