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