[OE-core] [PATCH] logrotate.py: improve oeqa test implementation

Richard Purdie richard.purdie at linuxfoundation.org
Sun Jan 19 12:15:21 UTC 2020


On Sat, 2020-01-18 at 23:16 +0000, Richard Purdie wrote:
> On Thu, 2020-01-16 at 15:19 -0500, Trevor Gamblin wrote:
> > From: Trevor Gamblin <trevor.gamblin at windriver.com>
> > 
> > See bug https://bugzilla.yoctoproject.org/show_bug.cgi?id=13632
> > 
> > Autobuilder tests occasionally fail, reporting that a new logfile
> > could not be created. While this failure did occur multiple times,
> > it
> > could not be manually reproduced. However, there are issues with
> > the
> > implementation of the logrotate.py script that can be fixed. These
> > changes will help make the failures clearer, should they continue
> > to
> > occur.
> > 
> > Previously, the test_2_logrotate test would, after running the
> > logrotate tool, use "ls -al $HOME/logrotate_dir | wc -l" to count
> > the number of files in the rotation directory and determine if the
> > rotation was successful. The test to see if there are at least
> > three
> > files is problematic, because depending on the version of ls used,
> > it
> > may report the target value of 3 even when there are only hidden
> > files
> > in the directory, potentially reporting a pass for the test when it
> > should actually fail. An example with coreutils:
> > 
> > root at qemux86-64:~# ls -al emptydir/
> > total 2
> > drwxr-xr-x 2 root root 1024 Jan 14 19:50 .
> > drwx------ 3 root root 1024 Jan 14 19:50 ..
> > root at qemux86-64:~#
> > 
> > Where "total" is the number of blocks used. Compare with busybox
> > ls:
> > 
> > root at qemux86-64:~# ls -al emptydir/
> > drwxr-xr-x    2 root     root          1024 Jan 14 19:54 .
> > drwx------    3 root     root          1024 Jan 14 19:54 ..
> > root at qemux86-64:~#
> > 
> > Instead of using ls to verify that a certain number of files exists
> > in $HOME/logrotate_dir, the tests have been changed to rotate two
> > specific logs: the log for wtmp and a new logrotate_testfile
> > created
> > during the second test. Both tests check that the logs are
> > correctly
> > rotated into $HOME/logrotate_dir by using find and grep on the
> > expected filename (e.g. "wtmp" when rotated becomes "wtmp.1", so we
> > check to see that wtmp.1 is present in $HOME/logrotate_dir). In
> > addition, should the test fail, the directory listing is included
> > in
> > the log to aid debugging.
> > 
> > Finally, note that while the autobuilder failures that this patch
> > addresses were only seen during core-image-full-cmdline tests,
> > these
> > changes were successfully tested on core-image-minimal and
> > core-image-sato with the manual addition of logrotate and openssh-
> > sshd
> > to the images.
> > 
> > Signed-off-by: Trevor Gamblin <trevor.gamblin at windriver.com>
> 
> Thanks for this, I haven't looked in detail but test builds came back
> with:
> 
> https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/1464

Also:

https://autobuilder.yoctoproject.org/typhoon/#/builders/64/builds/1467
https://autobuilder.yoctoproject.org/typhoon/#/builders/45/builds/1471
(but there was a pass for the above target too:
https://autobuilder.yoctoproject.org/typhoon/#/builders/45/builds/1468)
https://autobuilder.yoctoproject.org/typhoon/#/builders/76/builds/1464
(interesting 1c and 2c failed)
https://autobuilder.yoctoproject.org/typhoon/#/builders/102/builds/216
(may be related, systemd logrotate failure)

Cheers,

Richard




More information about the Openembedded-core mailing list