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

Trevor Gamblin trevor.gamblin at windriver.com
Sun Jan 19 14:32:55 UTC 2020


On 1/19/20 7:15 AM, Richard Purdie wrote:

> 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)
This is promising. I'll dig into it tonight/tomorrow.
>
> Cheers,
>
> Richard
>
>


More information about the Openembedded-core mailing list