From: Nikolai Kondrashov <Nikolai.Kondrashov@redhat.com>
To: kernelci@lists.linux.dev, Dmitry Vyukov <dvyukov@google.com>,
Cristian Marussi <cristian.marussi@arm.com>,
Alice Ferrazzi <alicef@gentoo.org>,
Philip Li <philip.li@intel.com>,
Vishal Bhoj <vishal.bhoj@linaro.org>,
automated-testing@lists.yoctoproject.org,
Tim Bird <Tim.Bird@sony.com>, CKI <cki-project@redhat.com>,
Mark Brown <broonie@kernel.org>,
Johnson George <Johnson.George@microsoft.com>,
Sachin Sant <sachinp@linux.ibm.com>
Subject: KCIDB: Support one more test status
Date: Wed, 19 Apr 2023 20:08:03 +0300 [thread overview]
Message-ID: <45be6714-b818-0be7-3e95-9f69af65096c@redhat.com> (raw)
Hello everyone involved with, or interested in KCIDB,
I would like to make KCIDB I/O schema accept one more test status string:
"MISS" (preliminary name), meaning the test was supposed to run, but didn't
because of a harness/framework/infrastructure/CI system failure.
This would be distinct from the "SKIP" status, meaning the test was supposed
to run, but didn't (or didn't complete), because it was not applicable.
Here's the PR in question: https://github.com/kernelci/kcidb-io/pull/74
I'll merge it in two weeks, on Wed, May 3, if there are no unresolved
objections by that time.
Read on for details, and respond either to this message, or in the PR.
At CKI we have both tests that skip themselves for valid reasons, and tests
that should've executed, but didn't. Because e.g. the previous test has
crashed the machine, or the tested kernel failed to boot. At the same time, we
want to make sure all the tests we planned to execute had their chance.
Before testing, we send our plan to our database as a KCIDB dataset with all
tests listed without the "status" field. According to KCIDB schema/protocol a
missing "status" field simply means no data, and is canonically interpreted as
"execution in progress".
After the testing is done, or we gave up trying, we send the same KCIDB test
objects to the database, but this time only containing whatever results we
got, including the "status" fields. However, with the current set of status
strings [1], the only way we can try to express "wanted to run, but couldn't"
is with "SKIP", which is not supposed to alert anyone, yet this situation
should be treated as a problem.
We propose to call this new status "MISS" (as in "the test result should be
there, but isn't"), and think it would be useful to others as well.
We can break down the testing stack into three layers: the tested code, the
test, and the harness (and everything above it) that runs the test. If we then
express each existing test status as one trinary outcome per each of those
layers, we would get this table (in order of descending status priority):
STATUS CODE TEST HARNESS+ LEGEND
FAIL ❌ ✅ ✅ ❌ - failure
ERROR ➖ ❌ ✅ ✅ - success
PASS ✅ ✅ ✅ ➖ - no data
DONE ➖ ✅ ✅
SKIP ➖ ➖ ✅
➖ ➖ ➖
If you look at the above closely, you will notice one possible state missing
(because we didn't need to express failing harnesses), and that is the status
we want to introduce:
STATUS CODE TEST HARNESS+ LEGEND
FAIL ❌ ✅ ✅ ❌ - failure
ERROR ➖ ❌ ✅ ✅ - success
=> MISS ➖ ➖ ❌ <= ➖ - no data
PASS ✅ ✅ ✅
DONE ➖ ✅ ✅
SKIP ➖ ➖ ✅
➖ ➖ ➖
Please respond with comments, objections, and (counter-)proposals,
if you have them.
Thank you for your attention!
Nick (and the CKI team)
[1] The current set of supported status strings
https://github.com/kernelci/kcidb-io/blob/0bb7ffff3fe012ae138dd2f7c1d817034fe2c0ba/kcidb_io/schema/v04_01.py#L126
next reply other threads:[~2023-04-19 17:08 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-04-19 17:08 Nikolai Kondrashov [this message]
2023-04-19 17:49 ` KCIDB: Support one more test status Mark Brown
2023-04-20 16:50 ` Nikolai Kondrashov
2023-04-19 19:38 ` Bird, Tim
2023-04-20 5:53 ` Guillaume Tucker
2023-04-20 16:37 ` [Automated-testing] " Nikolai Kondrashov
2023-05-05 11:39 ` Guillaume Tucker
2023-05-08 10:16 ` Nikolai Kondrashov
2023-04-20 12:08 ` Nikolai Kondrashov
2023-04-20 21:48 ` Bird, Tim
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=45be6714-b818-0be7-3e95-9f69af65096c@redhat.com \
--to=nikolai.kondrashov@redhat.com \
--cc=Johnson.George@microsoft.com \
--cc=Tim.Bird@sony.com \
--cc=alicef@gentoo.org \
--cc=automated-testing@lists.yoctoproject.org \
--cc=broonie@kernel.org \
--cc=cki-project@redhat.com \
--cc=cristian.marussi@arm.com \
--cc=dvyukov@google.com \
--cc=kernelci@lists.linux.dev \
--cc=philip.li@intel.com \
--cc=sachinp@linux.ibm.com \
--cc=vishal.bhoj@linaro.org \
/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