[PATCH] test/py: Add a report show test durations

Simon Glass sjg at chromium.org
Sat Jan 25 23:50:02 CET 2025


Hi Tom,

On Sat, 25 Jan 2025 at 15:01, Tom Rini <trini at konsulko.com> wrote:
>
> On Sat, Jan 25, 2025 at 02:36:52PM -0700, Simon Glass wrote:
> > Hi Tom,
> >
> > On Sat, 25 Jan 2025 at 11:30, Tom Rini <trini at konsulko.com> wrote:
> > >
> > > On Sat, Jan 25, 2025 at 10:14:05AM -0700, Simon Glass wrote:
> > > > Hi Tom,
> > > >
> > > > On Fri, 24 Jan 2025 at 12:21, Tom Rini <trini at konsulko.com> wrote:
> > > > >
> > > > > On Fri, Jan 24, 2025 at 11:56:04AM -0700, Simon Glass wrote:
> > > > >
> > > > > > Execution time varies widely with the existing tests. Provides a summary
> > > > > > of the time taken for each test, along with a histogram.
> > > > > >
> > > > > > Example:
> > > > > >
> > > > > >    Duration : Number of tests
> > > > > >    ======== : ========================================
> > > > > >        <1ms :  1
> > > > > >        <8ms :  1
> > > > > >       <20ms : # 20
> > > > > >       <30ms : ######## 127
> > > > > >       <50ms : ######################################## 582
> > > > > >       <75ms : ####### 102
> > > > > >      <100ms : ## 39
> > > > > >      <200ms : ##### 86
> > > > > >      <300ms : # 29
> > > > > >      <500ms : ## 42
> > > > > >      <750ms : # 16
> > > > > >       <1.0s : # 15
> > > > > >       <2.0s : # 23
> > > > > >       <3.0s :  13
> > > > > >       <5.0s :  9
> > > > > >       <7.5s :  1
> > > > > >      <10.0s :  6
> > > > > >      <20.0s :  12
> > > > > >
> > > > > > Signed-off-by: Simon Glass <sjg at chromium.org>
> > > > > > ---
> > > > > >
> > > > > >  test/py/conftest.py | 77 +++++++++++++++++++++++++++++++++++++++++++++
> > > > > >  1 file changed, 77 insertions(+)
> > > > >
> > > > > Whitespace issues aside,
> > > >
> > > > Do you mean the blank lines? pylint wants those for top-level items.
> > >
> > > That's weird but OK.
> > >
> > > >  we should probably not do this every time, just
> > > > > when requested.
> > > >
> > > > I'd like to see it on each run, actually. It doesn't take any time to
> > > > calculate and it lets us see where the time is going.
> > >
> > > We already print the full time, and I think knowing what the tests are
> > > that take so long, so that we can see if there's anything to do about
> > > it, would be more helpful. The general feedback about our pytests today
> > > is they're already too verbose in the normal case.
> >
> > This is what is shown in the full output (although with CI you have to
> > download the files to see it):
> >
> > [-] Section: Timing Report
> [snip]
>
> This is handy as a one-off, and maybe hints at a few tests to look at
> more, but perhaps it's mostly "is what it is" tests (and not just the
> sleep test).

Perhaps, but I would hope we could speed some of these up, or reduce
the number of variations.
>
> > TIME: SINCE-SECTION: 0:00:00.004227
> >
> > This is just the summary which is visible in CI:
> >
> > [-] Section: Timing Summary
> > TIME: NOW: 2025/01/25 14:28:57.730179
> > TIME: SINCE-PREV: 0:00:00.004234
> > TIME: SINCE-START: 0:02:00.307984
> > TIME: SINCE-SECTION: 0:00:00.000041
> > Duration : Number of tests
> > ======== : ========================================
> >     <4ms :  1
> >     <8ms :  1
> >    <10ms :  3
> >    <20ms : #### 47
> >    <30ms : ######################################## 377
> >    <40ms : ############################# 278
> >    <50ms : ####### 69
> >    <75ms : #### 47
> >   <100ms : # 18
> >   <200ms : ### 29
> >   <300ms : # 15
> >   <400ms : # 13
> >   <500ms :  8
> >   <750ms :  6
> >    <1.0s :  2
> >    <2.0s :  9
> >    <3.0s :  3
> >    <4.0s :  4
> >    <5.0s :  2
> >    <7.5s :  2
> >   <20.0s :  1
> >
> > So what do you think would make most sense?
>
> By default, neither of these, and only when requested. Looking over at
> one of your runs, no, I don't want to waste more output space. If you
> must do something, log it off to examine later and not add to the main
> output.

OK, I'll just put it in my tree for now.

BTW what do you mean by 'by default'? What other way of running would
there be? Are you thinking of a CI flag?

Regards,
Simon


More information about the U-Boot mailing list