oe_syslog.py 2.9 KB

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