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

2018-08-05 Thread Chen Qi
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 it to check both
'syslogd' and 'syslog-ng'.

Also, when the test case fails, what I get is:
| AssertionError: 1 != 0 : No syslogd process; ps output:


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
this problem. After the change, it looks like:
| AssertionError: False is not true : No syslog daemon process; ps output:
|   PID USER   VSZ STAT COMMAND
| 1 root 16476 S{systemd} /sbin/init
| 2 root 0 SW   [kthreadd]
| 3 root 0 IW   [kworker/0:0]
...

Signed-off-by: Chen Qi 
---
 meta/lib/oeqa/runtime/cases/oe_syslog.py | 8 +---
 1 file changed, 5 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..a92a1f2 100644
--- a/meta/lib/oeqa/runtime/cases/oe_syslog.py
+++ b/meta/lib/oeqa/runtime/cases/oe_syslog.py
@@ -10,10 +10,12 @@ 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
+status, output = self.target.run(self.tc.target_cmds['ps'])
+msg = "Failed to execute %s" % self.tc.target_cmds['ps']
 self.assertEqual(status, 0, msg=msg)
+msg = "No syslog daemon process; %s output:\n%s" % 
(self.tc.target_cmds['ps'], output)
+hasdaemon = "syslogd" in output or "syslog-ng" in output
+self.assertTrue(hasdaemon, msg=msg)
 
 class SyslogTestConfig(OERuntimeTestCase):
 
-- 
1.9.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2018-08-05 Thread ChenQi

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:



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:
UIDPID  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 
---
  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


--
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2018-08-03 Thread Richard Purdie
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:
> 
> 
> 
> 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:
> > UIDPID  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 
> ---
>  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
-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core


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

2018-08-03 Thread Chen Qi
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:


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:
| UIDPID  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 
---
 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)
 
 class SyslogTestConfig(OERuntimeTestCase):
-- 
1.9.1

-- 
___
Openembedded-core mailing list
Openembedded-core@lists.openembedded.org
http://lists.openembedded.org/mailman/listinfo/openembedded-core