We already have a selftest for harness, while there is not usage of FIXTURE_VARIANT.
Patch 2 add FIXTURE_VARIANT usage in the selftest.
Patch 1 is a typo fix.
v2: * drop patch 2 in v1 * adjust patch 2 based on Thomas comment
Wei Yang (2): selftests: harness: correct typo of __constructor_order_forward in comment selftests: harness: Add kselftest harness selftest with variant
tools/testing/selftests/kselftest_harness.h | 2 +- .../kselftest_harness/harness-selftest.c | 30 +++++++++++++++++++ .../harness-selftest.expected | 20 ++++++++++--- 3 files changed, 47 insertions(+), 5 deletions(-)
The name is __constructor_order_forward.
Just correct it.
Signed-off-by: Wei Yang richard.weiyang@gmail.com Cc: Muhammad Usama Anjum usama.anjum@collabora.com Cc: Thomas Weißschuh thomas.weissschuh@linutronix.de Reviewed-by: Thomas Weißschuh thomas.weissschuh@linutronix.de --- tools/testing/selftests/kselftest_harness.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tools/testing/selftests/kselftest_harness.h b/tools/testing/selftests/kselftest_harness.h index 2925e47db995..674a6112e6e1 100644 --- a/tools/testing/selftests/kselftest_harness.h +++ b/tools/testing/selftests/kselftest_harness.h @@ -936,7 +936,7 @@ static inline bool __test_passed(struct __test_metadata *metadata) * list so tests are run in source declaration order. * https://gcc.gnu.org/onlinedocs/gccint/Initialization.html * However, it seems not all toolchains do this correctly, so use - * __constructor_order_foward to detect which direction is called first + * __constructor_order_forward to detect which direction is called first * and adjust list building logic to get things running in the right * direction. */
Each fixture could support variant. Add fixture with variant to verify the behavior, so we can validate for further change.
Signed-off-by: Wei Yang richard.weiyang@gmail.com Cc: Muhammad Usama Anjum usama.anjum@collabora.com Cc: Thomas Weißschuh thomas.weissschuh@linutronix.de
--- v2: * remove testpid * print value in teardown and test itself --- .../kselftest_harness/harness-selftest.c | 30 +++++++++++++++++++ .../harness-selftest.expected | 20 ++++++++++--- 2 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/kselftest_harness/harness-selftest.c b/tools/testing/selftests/kselftest_harness/harness-selftest.c index b555493bdb4d..2a2a91717fce 100644 --- a/tools/testing/selftests/kselftest_harness/harness-selftest.c +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c @@ -118,6 +118,36 @@ TEST_F(fixture_setup_failure, pass) { TH_LOG("after"); }
+FIXTURE(fixture_variant) { +}; + +FIXTURE_VARIANT(fixture_variant) +{ + int value; +}; + +FIXTURE_VARIANT_ADD(fixture_variant, v32) +{ + .value = 32, +}; + +FIXTURE_VARIANT_ADD(fixture_variant, v64) +{ + .value = 64, +}; + +FIXTURE_SETUP(fixture_variant) { + TH_LOG("setup %d", variant->value); +} + +FIXTURE_TEARDOWN(fixture_variant) { + TH_LOG("teardown %d", variant->value); +} + +TEST_F(fixture_variant, pass) { + TH_LOG("test function %d", variant->value); +} + int main(int argc, char **argv) { /* diff --git a/tools/testing/selftests/kselftest_harness/harness-selftest.expected b/tools/testing/selftests/kselftest_harness/harness-selftest.expected index 97e1418c1c7e..0c19794e018d 100644 --- a/tools/testing/selftests/kselftest_harness/harness-selftest.expected +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.expected @@ -1,6 +1,6 @@ TAP version 13 -1..9 -# Starting 9 tests from 4 test cases. +1..11 +# Starting 11 tests from 6 test cases. # RUN global.standalone_pass ... # harness-selftest.c:19:standalone_pass:before # harness-selftest.c:23:standalone_pass:after @@ -60,5 +60,17 @@ ok 8 fixture_parent.pass # pass: Test terminated by assertion # FAIL fixture_setup_failure.pass not ok 9 fixture_setup_failure.pass -# FAILED: 4 / 9 tests passed. -# Totals: pass:4 fail:5 xfail:0 xpass:0 skip:0 error:0 +# RUN fixture_variant.v32.pass ... +# harness-selftest.c:140:pass:setup 32 +# harness-selftest.c:148:pass:test function 32 +# harness-selftest.c:144:pass:teardown 32 +# OK fixture_variant.v32.pass +ok 10 fixture_variant.v32.pass +# RUN fixture_variant.v64.pass ... +# harness-selftest.c:140:pass:setup 64 +# harness-selftest.c:148:pass:test function 64 +# harness-selftest.c:144:pass:teardown 64 +# OK fixture_variant.v64.pass +ok 11 fixture_variant.v64.pass +# FAILED: 6 / 11 tests passed. +# Totals: pass:6 fail:5 xfail:0 xpass:0 skip:0 error:0
On Fri, Jun 20, 2025 at 03:28:15AM +0000, Wei Yang wrote:
Each fixture could support variant. Add fixture with variant to verify the behavior, so we can validate for further change.
Signed-off-by: Wei Yang richard.weiyang@gmail.com Cc: Muhammad Usama Anjum usama.anjum@collabora.com
Reviewed-by: Thomas Weißschuh thomas.weissschuh@linutronix.de
v2:
- remove testpid
- print value in teardown and test itself
.../kselftest_harness/harness-selftest.c | 30 +++++++++++++++++++ .../harness-selftest.expected | 20 ++++++++++--- 2 files changed, 46 insertions(+), 4 deletions(-)
<snip>
On Fri, Jun 20, 2025 at 08:07:46AM +0200, Thomas Weißschuh wrote:
On Fri, Jun 20, 2025 at 03:28:15AM +0000, Wei Yang wrote:
Each fixture could support variant. Add fixture with variant to verify the behavior, so we can validate for further change.
Signed-off-by: Wei Yang richard.weiyang@gmail.com Cc: Muhammad Usama Anjum usama.anjum@collabora.com
Reviewed-by: Thomas Weißschuh thomas.weissschuh@linutronix.de
Thanks
v2:
- remove testpid
- print value in teardown and test itself
.../kselftest_harness/harness-selftest.c | 30 +++++++++++++++++++ .../harness-selftest.expected | 20 ++++++++++--- 2 files changed, 46 insertions(+), 4 deletions(-)
<snip>
On 6/20/25 8:28 AM, Wei Yang wrote:
Each fixture could support variant. Add fixture with variant to verify the behavior, so we can validate for further change.
Signed-off-by: Wei Yang richard.weiyang@gmail.com Cc: Muhammad Usama Anjum usama.anjum@collabora.com Cc: Thomas Weißschuh thomas.weissschuh@linutronix.de
v2:
- remove testpid
- print value in teardown and test itself
.../kselftest_harness/harness-selftest.c | 30 +++++++++++++++++++ .../harness-selftest.expected | 20 ++++++++++--- 2 files changed, 46 insertions(+), 4 deletions(-)
diff --git a/tools/testing/selftests/kselftest_harness/harness-selftest.c b/tools/testing/selftests/kselftest_harness/harness-selftest.c index b555493bdb4d..2a2a91717fce 100644 --- a/tools/testing/selftests/kselftest_harness/harness-selftest.c +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c @@ -118,6 +118,36 @@ TEST_F(fixture_setup_failure, pass) { TH_LOG("after"); } +FIXTURE(fixture_variant) { +};
+FIXTURE_VARIANT(fixture_variant) +{
- int value;
+};
+FIXTURE_VARIANT_ADD(fixture_variant, v32) +{
- .value = 32,
+};
+FIXTURE_VARIANT_ADD(fixture_variant, v64) +{
- .value = 64,
+};
+FIXTURE_SETUP(fixture_variant) {
- TH_LOG("setup %d", variant->value);
+}
+FIXTURE_TEARDOWN(fixture_variant) {
- TH_LOG("teardown %d", variant->value);
+}
+TEST_F(fixture_variant, pass) {
- TH_LOG("test function %d", variant->value);
+}
Reviewed-by: Muhammad Usama Anjum usama.anjum@collabora.com
int main(int argc, char **argv) { /* diff --git a/tools/testing/selftests/kselftest_harness/harness-selftest.expected b/tools/testing/selftests/kselftest_harness/harness-selftest.expected index 97e1418c1c7e..0c19794e018d 100644 --- a/tools/testing/selftests/kselftest_harness/harness-selftest.expected +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.expected @@ -1,6 +1,6 @@ TAP version 13 -1..9 -# Starting 9 tests from 4 test cases. +1..11 +# Starting 11 tests from 6 test cases. # RUN global.standalone_pass ... # harness-selftest.c:19:standalone_pass:before # harness-selftest.c:23:standalone_pass:after @@ -60,5 +60,17 @@ ok 8 fixture_parent.pass # pass: Test terminated by assertion # FAIL fixture_setup_failure.pass not ok 9 fixture_setup_failure.pass -# FAILED: 4 / 9 tests passed. -# Totals: pass:4 fail:5 xfail:0 xpass:0 skip:0 error:0 +# RUN fixture_variant.v32.pass ... +# harness-selftest.c:140:pass:setup 32 +# harness-selftest.c:148:pass:test function 32 +# harness-selftest.c:144:pass:teardown 32 +# OK fixture_variant.v32.pass +ok 10 fixture_variant.v32.pass +# RUN fixture_variant.v64.pass ... +# harness-selftest.c:140:pass:setup 64 +# harness-selftest.c:148:pass:test function 64 +# harness-selftest.c:144:pass:teardown 64 +# OK fixture_variant.v64.pass +ok 11 fixture_variant.v64.pass +# FAILED: 6 / 11 tests passed. +# Totals: pass:6 fail:5 xfail:0 xpass:0 skip:0 error:0
On Fri, Jun 20, 2025 at 12:12:40PM +0500, Muhammad Usama Anjum wrote: [...]
+FIXTURE(fixture_variant) { +};
+FIXTURE_VARIANT(fixture_variant) +{
- int value;
+};
+FIXTURE_VARIANT_ADD(fixture_variant, v32) +{
- .value = 32,
+};
+FIXTURE_VARIANT_ADD(fixture_variant, v64) +{
- .value = 64,
+};
+FIXTURE_SETUP(fixture_variant) {
- TH_LOG("setup %d", variant->value);
+}
+FIXTURE_TEARDOWN(fixture_variant) {
- TH_LOG("teardown %d", variant->value);
+}
+TEST_F(fixture_variant, pass) {
- TH_LOG("test function %d", variant->value);
+}
Reviewed-by: Muhammad Usama Anjum usama.anjum@collabora.com
Thanks, Muhammad :-)
linux-kselftest-mirror@lists.linaro.org