Add a fixture-based test with a single variant and mark it with XFAIL_ADD(). The test intentionally fails and is expected to be accounted as XFAIL, covering the constructor ordering dependency between TEST_F() registration and XFAIL_ADD() registration.
Suggested-by: Thomas Weißschuh <[email protected]> Tested-by: Bjoern Doebel <[email protected]> Signed-off-by: Sun Jian <[email protected]> --- v3: - Rebase on kselftest/fixes. - Refresh harness-selftest.expected after commit 465b05bae5ac ("selftests: harness: Restore order of test functions"). - Add Tested-by from Bjoern Doebel. v2: - update Suggested-by address - update harness-selftest.expected - verify with 'make run_tests' .../kselftest_harness/harness-selftest.c | 23 +++++++++++++++++++ .../harness-selftest.expected | 13 +++++++---- 2 files changed, 32 insertions(+), 4 deletions(-) diff --git a/tools/testing/selftests/kselftest_harness/harness-selftest.c b/tools/testing/selftests/kselftest_harness/harness-selftest.c index 3e3033d2745a..93b5a5bbf10a 100644 --- a/tools/testing/selftests/kselftest_harness/harness-selftest.c +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c @@ -158,6 +158,29 @@ TEST(test_result_skip) { ksft_test_result_skip(""); } +FIXTURE(xfail_ctor_ordering) { +}; + +FIXTURE_SETUP(xfail_ctor_ordering) { +} + +FIXTURE_TEARDOWN(xfail_ctor_ordering) { +} + +FIXTURE_VARIANT(xfail_ctor_ordering) { + int dummy; +}; + +FIXTURE_VARIANT_ADD(xfail_ctor_ordering, only) { + .dummy = 0, +}; + +TEST_F(xfail_ctor_ordering, expected_fail) { + ASSERT_EQ(1, 0); +} + +XFAIL_ADD(xfail_ctor_ordering, only, expected_fail); + 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 c0a68ec124f8..f8b7cb2812b6 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..19 -# Starting 19 tests from 4 test cases. +1..20 +# Starting 20 tests from 5 test cases. # RUN global.standalone_pass ... # harness-selftest.c:19:standalone_pass:before # harness-selftest.c:23:standalone_pass:after @@ -93,6 +93,11 @@ ok 18 fixture_parent.pass # pass: Test terminated by assertion # FAIL fixture_setup_failure.pass not ok 19 fixture_setup_failure.pass -# FAILED: 12 / 19 tests passed. +# RUN xfail_ctor_ordering.only.expected_fail ... +# harness-selftest.c:179:expected_fail:Expected 1 (1) == 0 (0) +# expected_fail: Test terminated by assertion +# FAIL xfail_ctor_ordering.only.expected_fail +ok 20 xfail_ctor_ordering.only.expected_fail # XFAIL unknown +# FAILED: 13 / 20 tests passed. # 1 skipped test(s) detected. Consider enabling relevant config options to improve coverage. -# Totals: pass:9 fail:7 xfail:1 xpass:1 skip:1 error:0 +# Totals: pass:9 fail:7 xfail:2 xpass:1 skip:1 error:0 -- 2.43.0

