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

Richard Purdie richard.purdie at linuxfoundation.org
Sat Jan 18 23:16:11 UTC 2020


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

Cheers,

Richard



More information about the Openembedded-core mailing list