[PATCH v3 0/6] scripts/resulttool/regression: add metadata filtering
Alexis Lothoré
From: Alexis Lothoré <alexis.lothore@...>
Hello, this new series is the follow-up of [1] to make regression reports more meaningful, by reducing noise and false positives. Change since v2: - add filtering on MACHINE field from test results configuration: the MACHINE should always match - add "metadata guessing" mechanism based on Richard proposal ([2]). Up to the point where this series will be merged, tests results stored in git are not enriched with OESELFTEST_METADATA. To allow proper test comparison even with those tests, try to guess what oeselftest command line has been used to run the corresponding tests, and generate OESELFTEST_METADATA accordingly - add new tool to ease test results usage: yocto_testresults_query. For now the tool only manages regression report and is a thin layer between send-qa-email (in yocto-autobuilder-helper) and resulttool. Its main role is to translate regression reports arguments (which are tags or branches) to fixed revisions and to call resulttool accordingly. Most of its code is a transfer from send-qa-email (another series for the autobuilder will follow this one to make send-qa-email use this new helper, but this current series works independently) Example: "yocto_testresults_query.py regression-report 4.2_M1 4.2_M2" will replay the regression report generated when the 4.2_M2 has been generated. Change since v1: - properly configure "From" field in series With those improvements, the regression report is significantly reduced and some useful data start to emerge from the removed noise: - with the MACHINE filtering, the 4.2_M2 report goes from 5.5GB to 627MB - with the OESELFTEST_METADATA enrichment + metadata guessing for older tests, the report goes from 627MB to 1.5MB After manual inspection on some entries, the remaining oeselftest regression raised in the report seems valid. There are still some issues to tackle: - it seems that now one major remaining source of noise is on the "runtime" tests (comparison to tests not run on "target" results) - when a ptest managed by oe-selftest fails, I guess the remaining tests are not run, so when 1 failure is logged, we have many "PASSED->None" transitions in regression report, we should probably silence it. - some transitions appear as regression while those are in fact improvements (e.g: "UNRESOLVED->PASSED") [1] https://lore.kernel.org/openembedded-core/20230214165309.63527-1-alexis.lothore@bootlin.com/ [2] https://lore.kernel.org/openembedded-core/124b9c9667b038b8502f6457ba7d894fc4ef3c58.camel@linuxfoundation.org/ Alexis Lothoré (6): scripts/oe-selftest: append metadata to tests results scripts/resulttool/regression: remove unused import scripts/resulttool/regression: add metadata filtering for oeselftest oeqa/selftest/resulttool: add test for metadata filtering on regression scripts: add new helper for regression report generation oeqa/selftest: add test for yocto_testresults_query.py .../oeqa/selftest/cases/resulttooltests.py | 137 +++++++++++++++ .../cases/yoctotestresultsquerytests.py | 39 +++++ meta/lib/oeqa/selftest/context.py | 15 +- scripts/lib/resulttool/regression.py | 163 +++++++++++++++++- scripts/yocto_testresults_query.py | 106 ++++++++++++ 5 files changed, 458 insertions(+), 2 deletions(-) create mode 100644 meta/lib/oeqa/selftest/cases/yoctotestresultsquerytests.py create mode 100755 scripts/yocto_testresults_query.py -- 2.39.1 |
|