[OE-core] [PATCH 1/1] oe_syslog.py: fix for syslog-ng

ChenQi Qi.Chen at windriver.com
Mon Aug 6 01:44:52 UTC 2018


On 08/04/2018 12:40 AM, Richard Purdie wrote:
> On Fri, 2018-08-03 at 16:27 +0800, Chen Qi wrote:
>> When using syslog-ng as the syslog provider, oe_syslog test case
>> fails
>> because it cannot find the syslog daemon. This is because it greps
>> for
>> 'syslogd' but syslog-ng's daemon is 'syslog-ng'. So fix the grep
>> command
>> to also consider syslog-ng.
>>
>> Also, when the test case fails, what I get is:
>>> AssertionError: 1 != 0 : No syslogd process; ps output:
>> <empty here>
>>
>> This does not help user. The output is actually from the 'PS | GREP'
>> command.
>> And when the 'PS | GREP' command fails, the output is always empty.
>> So also
>> fix it to actually output the ps information. After the change, it
>> looks like:
>>> AssertionError: 1 != 0 : No syslogd process; ps -ef output:
>>> UID        PID  PPID  C STIME TTY          TIME CMD
>>> root         1     0 28 07:35 ?        00:00:19 /sbin/init
>>> root         2     0  0 07:35 ?        00:00:00 [kthreadd]
>>> root         3     2  0 07:35 ?        00:00:00 [kworker/0:0]
>> ...
>>
>> Signed-off-by: Chen Qi <Qi.Chen at windriver.com>
>> ---
>>   meta/lib/oeqa/runtime/cases/oe_syslog.py | 7 ++++---
>>   1 file changed, 4 insertions(+), 3 deletions(-)
>>
>> diff --git a/meta/lib/oeqa/runtime/cases/oe_syslog.py
>> b/meta/lib/oeqa/runtime/cases/oe_syslog.py
>> index 935f10f..23abae3 100644
>> --- a/meta/lib/oeqa/runtime/cases/oe_syslog.py
>> +++ b/meta/lib/oeqa/runtime/cases/oe_syslog.py
>> @@ -10,9 +10,10 @@ class SyslogTest(OERuntimeTestCase):
>>       @OETestDepends(['ssh.SSHTest.test_ssh'])
>>       @OEHasPackage(["busybox-syslog", "sysklogd", "rsyslog", "syslog-
>> ng"])
>>       def test_syslog_running(self):
>> -        cmd = '%s  | grep -i [s]yslogd' % self.tc.target_cmds['ps']
>> -        status, output = self.target.run(cmd)
>> -        msg = "No syslogd process; ps output: %s" % output
>> +        cmd = '%s  | grep -iE "[s]yslogd|[s]yslog-ng"' %
>> self.tc.target_cmds['ps']
>> +        status, _ = self.target.run(cmd)
>> +        _, output = self.target.run(self.tc.target_cmds['ps'])
>> +        msg = "No syslogd process; %s output:\n%s" %
>> (self.tc.target_cmds['ps'], output)
>>           self.assertEqual(status, 0, msg=msg)
> Rather than getting the output of "ps" again if the test failed (which
> may then be different), could we just get the output of ps and then
> test for the presence of syslog using python, sharing the output of ps
> if the match isn't found?
>
> Cheers,
>
> Richard
>
Yes, it is better. I'll send out V2.

Best Regards,
Chen Qi





More information about the Openembedded-core mailing list