On Thu, 2023-02-16 at 09:56 +0100, Alexis Lothoré wrote:
> On 2/16/23 01:02, Richard Purdie wrote:
> > On Tue, 2023-02-14 at 17:53 +0100, Alexis Lothoré via
> > lists.openembedded.org wrote:
> > > From: Alexis Lothoré <alexis.loth...@bootlin.com>
> > > * this serie prioritize retro-compatibility: if the base test is older 
> > > (ie: it
> > > does not have the needed metadata), it will consider tests as "comparable"
> > > * additionally to tests added in oeqa test cases, some "best effort" 
> > > manual
> > > testing has been done, with the following cases:
> > >   - run a basic test (e.g: `oeselftest -r tinfoils`), collect test 
> > > result, break
> > >     test, collect result, ensure tests are compared. Change oeselftest
> > >     parameters, ensure tests are not compared
> > >   - collect base and target tests results from 4.2_M2 regression report,
> > >     manually add new metadata to some tests, replay regression report, 
> > > ensure
> > >     that regressions are kept or discarded depending on the metadata
> > 
> > I think this is heading in the right direction. Firstly, can we put
> > some kind of test script into OE-Core for making debugging/testing this
> > easier?
> > 
> > I'm wondering if we can take some of the code from qa_send_email and
> > move it into OE-Core such that I could do something like:
> > 
> > show-regression-report 4.2_M1 4.2_M2

I was thinking "yocto-testresult-query regression-report" might be a
better name/command, then it can default to using the yocto-testresults
repo and resolving yocto tags. You'll also likely want to specify a
workdir for the operation but those are implementation details :)

> > 
> > which would then resolve those two tags to commits, find the
> > testresults repo, fetch the data depth1 then call resulttool regression
> > on them.
> 
> That totally makes sense, it will make future change easier to test, thanks 
> for
> the suggestion. I will think about how I can rework/transfer some code to do
> that. I feel that one thing could still be troublesome to do so: since there
> will be linked modification in yocto-autobuilder-helper and openembedded, do 
> you
> know if yocto-autobuilder-helper is fetched on same branch family as all
> repositories needed for build ? From a quick reading, I see that it is by
> default on "master" in config.py in yocto-autobuilder2 repository, so I think 
> it
> is always on master, which will be an issue to solve ?

Unlike yocto-autobuilder2, there is a branch of yocto-autobuilder-
helper per release. We can therefore move code from there to OE-Core on
the master branch and we'll be ok. It will be a small headache for SWAT
whilst we test it but Alexandre is on cc and will cope :).

> > 
> > I did that manually to experiment. I realised that if we do something
> > like:
> > 
> >     if "MACHINE" in base_configuration and "MACHINE" in 
> > target_configuration:
> >         if base_configuration["MACHINE"] != target_configuration["MACHINE"]:
> >             print("Skipping")
> >             return False
> > 
> > in metadata_matches() we can skip a lot of mismatched combinations even
> > with the older test results.
> 
> Indeed, comparing MACHINE when present on both results can help too. I may 
> have
> skipped this because of confusion about our previous discussion on some tests
> being "cross-compared" while other are "strictly" compared ! I will ensure 
> that
> most of scenarios allow comparing MACHINE, and if so, I will add it in
> metadata_matches to be checked first (because cheap to test), and if it 
> matches,
> check OESELFTEST_METADATA too (more expensive)

MACHINE should always match, that is fine. What doesn't need to match
are the distros and so on.

> > I think we also should be able to use some
> > pattern matching to generate a dummy OESELFTEST_METADATA section for
> > older data which doesn't have it. For example, the presence of meta_ide
> > tests indicates one particular type of test. Combined with the MACHINE
> > match, this should let us compare old and new data? That would mean
> > metadata_matches() would need to see into the actual results too.
> 
> I thought about this possibility while starting to work on this (checking for
> existing metadata to kind of generate/guess test configuration), but I have 
> felt
> that it would need too much "business logic" encoding in resulttool scripts,
> which could easily break if we want to change some tests configuration. I 
> mean,
> if someone changes some parameters passed to oe-selftest in builders
> configuration, he will very probably not remember to update some "guess" 
> filters
> in resulttool.

I think it will be important/useful to have good regression reports
against existing test results (e.g. ultimately on our LTS release
branches too). Whilst I don't normally like hardcoding things like
this, I think in this case the benefit outweighs the ugliness as long
as it "fades" over time which it will if we add proper metadata going
forward.

> I will start working on new revision of this series based on your comments

Sounds good, thanks!

Cheers,

Richard
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#177282): 
https://lists.openembedded.org/g/openembedded-core/message/177282
Mute This Topic: https://lists.openembedded.org/mt/96964070/21656
Group Owner: openembedded-core+ow...@lists.openembedded.org
Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub 
[arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to