From: Rasmus Villemoes <rasmus.villemoes@prevas.dk>
To: Tom Rini <trini@konsulko.com>, Bin Meng <bmeng.cn@gmail.com>
Cc: Simon Glass <sjg@chromium.org>,
U-Boot Mailing List <u-boot@lists.denx.de>
Subject: Re: an off-by-one error in dm_test_rtc_set_get()?
Date: Thu, 28 Oct 2021 09:22:30 +0200 [thread overview]
Message-ID: <d8a1cfea-5084-a085-a152-5b95b40e156f@prevas.dk> (raw)
In-Reply-To: <20211027132247.GU8284@bill-the-cat>
On 27/10/2021 15.22, Tom Rini wrote:
> On Wed, Oct 27, 2021 at 12:43:38PM +0800, Bin Meng wrote:
>> Hi Simon,
>>
>> gitlab reported the following test error below:
>>
>> =================================== FAILURES ===================================
>> __________________________ test_ut[ut_dm_rtc_set_get] __________________________
>> test/py/tests/test_ut.py:43: in test_ut
>> assert output.endswith('Failures: 0')
>> E AssertionError: assert False
>> E + where False = <built-in method endswith of str object at
>> 0x7f3bb792dcb0>('Failures: 0')
>> E + where <built-in method endswith of str object at 0x7f3bb792dcb0> =
>> 'Test: dm_test_rtc_set_get: rtc.c\r\r\nexpected: 27/10/2021
>> 03:38:15\r\r\nactual: 27/10/2021 03:38:14\r\r\ntest/dm/rtc...w, &cmp,
>> 1): Expected 0x0 (0), got 0xffffffea (-22)\r\r\nTest:
>> dm_test_rtc_set_get: rtc.c (flat tree)\r\r\nFailures: 1'.endswith
>> ----------------------------- Captured stdout call -----------------------------
>> =>
>>
>> See https://source.denx.de/u-boot/custodians/u-boot-x86/-/jobs/341905
>>
>> But the same branch same commit, azure test results passed:
>> https://dev.azure.com/bmeng/GitHub/_build/results?buildId=460&view=results
>>
>> It looks like the error is an off-by-one where actual time is 1 second
>> behind the expected time?
>>
>> expected: 27/10/2021 03:38:15
>> actual: 27/10/2021 03:38:14
>>
>> Is this a known issue?
>
> Yes, which is why the test checks for a certain amount of "fuzz" around
> the return value.
You said the same thing about dm_test_rtc_reset() in
https://lore.kernel.org/u-boot/20210831124441.GC858@bill-the-cat/ , but
I can't find anything about any fuzz in the code. Could you point out
where you think that's implemented? In both cases, the expected and
actual values were just 1 from each other, and I fail to see how any
fuzz value could be smaller than that.
I've wondered about if we need to increase that value
> slightly sometimes, or just live with hitting the re-run failed jobs
> button on whatever CI system was a bit too slow sometimes.
It has nothing to do with a CI being slow, it's plain and simple buggy
test code AFAICT. It's essentially "assert(time(NULL) == time(NULL))".
If a call to time() takes 1us, do this a million times and it will on
average fail once. Obviously, a loaded system increases the chance of
being preempted between the two calls and hence effectively increases
the delta and proportionally the probability of hitting this.
Rasmus
next prev parent reply other threads:[~2021-10-28 7:22 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-10-27 4:43 an off-by-one error in dm_test_rtc_set_get()? Bin Meng
2021-10-27 13:22 ` Tom Rini
2021-10-27 13:43 ` Bin Meng
2021-10-28 7:22 ` Rasmus Villemoes [this message]
2021-10-28 11:58 ` Tom Rini
2021-11-25 0:11 ` Simon Glass
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=d8a1cfea-5084-a085-a152-5b95b40e156f@prevas.dk \
--to=rasmus.villemoes@prevas.dk \
--cc=bmeng.cn@gmail.com \
--cc=sjg@chromium.org \
--cc=trini@konsulko.com \
--cc=u-boot@lists.denx.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox