linux-kselftest.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] Add kselftest harness selftest with variant
@ 2025-06-16 12:23 Wei Yang
  2025-06-16 12:23 ` [PATCH 1/3] selftests: correct one typo in comment Wei Yang
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Wei Yang @ 2025-06-16 12:23 UTC (permalink / raw)
  To: shuah, kees, luto, wad
  Cc: linux-kselftest, thomas.weissschuh, usama.anjum, skhan, Wei Yang

We already have a selftest for harness, while there is not usage of
FIXTURE_VARIANT.

Patch 3 add FIXTURE_VARIANT usage in the selftest.

Patch 1/2 are trivial fix.

Wei Yang (3):
  selftests: correct one typo in comment
  selftests: print 0 if no test is chosen
  selftests: harness: Add kselftest harness selftest with variant

 tools/testing/selftests/kselftest.h           |  2 +-
 tools/testing/selftests/kselftest_harness.h   |  2 +-
 .../kselftest_harness/harness-selftest.c      | 34 +++++++++++++++++++
 .../harness-selftest.expected                 | 22 +++++++++---
 4 files changed, 54 insertions(+), 6 deletions(-)

-- 
2.34.1


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/3] selftests: correct one typo in comment
  2025-06-16 12:23 [PATCH 0/3] Add kselftest harness selftest with variant Wei Yang
@ 2025-06-16 12:23 ` Wei Yang
  2025-06-17  7:31   ` Thomas Weißschuh
  2025-06-16 12:23 ` [PATCH 2/3] selftests: print 0 if no test is chosen Wei Yang
  2025-06-16 12:23 ` [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant Wei Yang
  2 siblings, 1 reply; 15+ messages in thread
From: Wei Yang @ 2025-06-16 12:23 UTC (permalink / raw)
  To: shuah, kees, luto, wad
  Cc: linux-kselftest, thomas.weissschuh, usama.anjum, skhan, Wei Yang

The name is __constructor_order_forward.

Just correct it.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 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.
  */
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/3] selftests: print 0 if no test is chosen
  2025-06-16 12:23 [PATCH 0/3] Add kselftest harness selftest with variant Wei Yang
  2025-06-16 12:23 ` [PATCH 1/3] selftests: correct one typo in comment Wei Yang
@ 2025-06-16 12:23 ` Wei Yang
  2025-06-16 12:44   ` Muhammad Usama Anjum
  2025-06-16 12:23 ` [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant Wei Yang
  2 siblings, 1 reply; 15+ messages in thread
From: Wei Yang @ 2025-06-16 12:23 UTC (permalink / raw)
  To: shuah, kees, luto, wad
  Cc: linux-kselftest, thomas.weissschuh, usama.anjum, skhan, Wei Yang

In case there is no test chosen, e.g -t non-exist, the following message
would be printed at start.

    TAP version 13
    1..0

Change it to print 0 if no test is chosen.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
 tools/testing/selftests/kselftest.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
index c3b6d2604b1e..9fcf76f0b702 100644
--- a/tools/testing/selftests/kselftest.h
+++ b/tools/testing/selftests/kselftest.h
@@ -144,7 +144,7 @@ static inline void ksft_print_header(void)
 static inline void ksft_set_plan(unsigned int plan)
 {
 	ksft_plan = plan;
-	printf("1..%u\n", ksft_plan);
+	printf("%u..%u\n", !plan ? 0 : 1, ksft_plan);
 }
 
 static inline void ksft_print_cnts(void)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-16 12:23 [PATCH 0/3] Add kselftest harness selftest with variant Wei Yang
  2025-06-16 12:23 ` [PATCH 1/3] selftests: correct one typo in comment Wei Yang
  2025-06-16 12:23 ` [PATCH 2/3] selftests: print 0 if no test is chosen Wei Yang
@ 2025-06-16 12:23 ` Wei Yang
  2025-06-16 12:45   ` Muhammad Usama Anjum
  2025-06-17  7:35   ` Thomas Weißschuh
  2 siblings, 2 replies; 15+ messages in thread
From: Wei Yang @ 2025-06-16 12:23 UTC (permalink / raw)
  To: shuah, kees, luto, wad
  Cc: linux-kselftest, thomas.weissschuh, usama.anjum, skhan, Wei Yang

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>
---
 .../kselftest_harness/harness-selftest.c      | 34 +++++++++++++++++++
 .../harness-selftest.expected                 | 22 +++++++++---
 2 files changed, 52 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..2fd5310b33c7 100644
--- a/tools/testing/selftests/kselftest_harness/harness-selftest.c
+++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c
@@ -118,6 +118,40 @@ TEST_F(fixture_setup_failure, pass) {
 	TH_LOG("after");
 }
 
+FIXTURE(fixture_variant) {
+	pid_t testpid;
+};
+
+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);
+	self->testpid = getpid();
+}
+
+FIXTURE_TEARDOWN(fixture_variant) {
+	TH_LOG("teardown same-process=%d", self->testpid == getpid());
+}
+
+TEST_F(fixture_variant, pass) {
+	TH_LOG("before");
+	ASSERT_EQ(0, 0);
+	TH_LOG("after");
+}
+
 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..ab081c5aba05 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,19 @@ 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:141:pass:setup 32
+# harness-selftest.c:150:pass:before
+# harness-selftest.c:152:pass:after
+# harness-selftest.c:146:pass:teardown same-process=1
+#            OK  fixture_variant.v32.pass
+ok 10 fixture_variant.v32.pass
+#  RUN           fixture_variant.v64.pass ...
+# harness-selftest.c:141:pass:setup 64
+# harness-selftest.c:150:pass:before
+# harness-selftest.c:152:pass:after
+# harness-selftest.c:146:pass:teardown same-process=1
+#            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
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/3] selftests: print 0 if no test is chosen
  2025-06-16 12:23 ` [PATCH 2/3] selftests: print 0 if no test is chosen Wei Yang
@ 2025-06-16 12:44   ` Muhammad Usama Anjum
  2025-06-16 22:49     ` Wei Yang
  0 siblings, 1 reply; 15+ messages in thread
From: Muhammad Usama Anjum @ 2025-06-16 12:44 UTC (permalink / raw)
  To: Wei Yang, shuah, kees, luto, wad
  Cc: linux-kselftest, thomas.weissschuh, skhan

On 6/16/25 5:23 PM, Wei Yang wrote:
> In case there is no test chosen, e.g -t non-exist, the following message
> would be printed at start.
> 
>     TAP version 13
>     1..0
> 
> Change it to print 0 if no test is chosen.
Please give reference from TAP format guidelines for this change.

> 
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
> ---
>  tools/testing/selftests/kselftest.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
> index c3b6d2604b1e..9fcf76f0b702 100644
> --- a/tools/testing/selftests/kselftest.h
> +++ b/tools/testing/selftests/kselftest.h
> @@ -144,7 +144,7 @@ static inline void ksft_print_header(void)
>  static inline void ksft_set_plan(unsigned int plan)
>  {
>  	ksft_plan = plan;
> -	printf("1..%u\n", ksft_plan);
> +	printf("%u..%u\n", !plan ? 0 : 1, ksft_plan);
>  }
>  
>  static inline void ksft_print_cnts(void)


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-16 12:23 ` [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant Wei Yang
@ 2025-06-16 12:45   ` Muhammad Usama Anjum
  2025-06-18  0:05     ` Wei Yang
  2025-06-17  7:35   ` Thomas Weißschuh
  1 sibling, 1 reply; 15+ messages in thread
From: Muhammad Usama Anjum @ 2025-06-16 12:45 UTC (permalink / raw)
  To: Wei Yang, shuah, kees, luto, wad
  Cc: linux-kselftest, thomas.weissschuh, skhan

On 6/16/25 5:23 PM, 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>
Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>

> ---
>  .../kselftest_harness/harness-selftest.c      | 34 +++++++++++++++++++
>  .../harness-selftest.expected                 | 22 +++++++++---
>  2 files changed, 52 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..2fd5310b33c7 100644
> --- a/tools/testing/selftests/kselftest_harness/harness-selftest.c
> +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c
> @@ -118,6 +118,40 @@ TEST_F(fixture_setup_failure, pass) {
>  	TH_LOG("after");
>  }
>  
> +FIXTURE(fixture_variant) {
> +	pid_t testpid;
> +};
> +
> +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);
> +	self->testpid = getpid();
> +}
> +
> +FIXTURE_TEARDOWN(fixture_variant) {
> +	TH_LOG("teardown same-process=%d", self->testpid == getpid());
> +}
> +
> +TEST_F(fixture_variant, pass) {
> +	TH_LOG("before");
> +	ASSERT_EQ(0, 0);
> +	TH_LOG("after");
> +}
> +
>  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..ab081c5aba05 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,19 @@ 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:141:pass:setup 32
> +# harness-selftest.c:150:pass:before
> +# harness-selftest.c:152:pass:after
> +# harness-selftest.c:146:pass:teardown same-process=1
> +#            OK  fixture_variant.v32.pass
> +ok 10 fixture_variant.v32.pass
> +#  RUN           fixture_variant.v64.pass ...
> +# harness-selftest.c:141:pass:setup 64
> +# harness-selftest.c:150:pass:before
> +# harness-selftest.c:152:pass:after
> +# harness-selftest.c:146:pass:teardown same-process=1
> +#            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


^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/3] selftests: print 0 if no test is chosen
  2025-06-16 12:44   ` Muhammad Usama Anjum
@ 2025-06-16 22:49     ` Wei Yang
  0 siblings, 0 replies; 15+ messages in thread
From: Wei Yang @ 2025-06-16 22:49 UTC (permalink / raw)
  To: Muhammad Usama Anjum
  Cc: Wei Yang, shuah, kees, luto, wad, linux-kselftest,
	thomas.weissschuh, skhan

Hi, Muhammad

Thanks for review.

On Mon, Jun 16, 2025 at 05:44:55PM +0500, Muhammad Usama Anjum wrote:
>On 6/16/25 5:23 PM, Wei Yang wrote:
>> In case there is no test chosen, e.g -t non-exist, the following message
>> would be printed at start.
>> 
>>     TAP version 13
>>     1..0
>> 
>> Change it to print 0 if no test is chosen.
>Please give reference from TAP format guidelines for this change.

I see, will drop it for later version. 

>> 
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>> ---
>>  tools/testing/selftests/kselftest.h | 2 +-
>>  1 file changed, 1 insertion(+), 1 deletion(-)
>> 
>> diff --git a/tools/testing/selftests/kselftest.h b/tools/testing/selftests/kselftest.h
>> index c3b6d2604b1e..9fcf76f0b702 100644
>> --- a/tools/testing/selftests/kselftest.h
>> +++ b/tools/testing/selftests/kselftest.h
>> @@ -144,7 +144,7 @@ static inline void ksft_print_header(void)
>>  static inline void ksft_set_plan(unsigned int plan)
>>  {
>>  	ksft_plan = plan;
>> -	printf("1..%u\n", ksft_plan);
>> +	printf("%u..%u\n", !plan ? 0 : 1, ksft_plan);
>>  }
>>  
>>  static inline void ksft_print_cnts(void)

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/3] selftests: correct one typo in comment
  2025-06-16 12:23 ` [PATCH 1/3] selftests: correct one typo in comment Wei Yang
@ 2025-06-17  7:31   ` Thomas Weißschuh
  2025-06-17 23:52     ` Wei Yang
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Weißschuh @ 2025-06-17  7:31 UTC (permalink / raw)
  To: Wei Yang; +Cc: shuah, kees, luto, wad, linux-kselftest, usama.anjum, skhan

Please use "selftests: harness:" as subject prefix for the patches.
Also mention the specific typo to make the subject more unique.

On Mon, Jun 16, 2025 at 12:23:36PM +0000, Wei Yang wrote:
> The name is __constructor_order_forward.
>
> Just correct it.
> 
> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>

With the above comments addressed:
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.
>   */
> -- 
> 2.34.1
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-16 12:23 ` [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant Wei Yang
  2025-06-16 12:45   ` Muhammad Usama Anjum
@ 2025-06-17  7:35   ` Thomas Weißschuh
  2025-06-17 23:57     ` Wei Yang
  1 sibling, 1 reply; 15+ messages in thread
From: Thomas Weißschuh @ 2025-06-17  7:35 UTC (permalink / raw)
  To: Wei Yang; +Cc: shuah, kees, luto, wad, linux-kselftest, usama.anjum, skhan

Good idea.

On Mon, Jun 16, 2025 at 12:23:38PM +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>
> ---
>  .../kselftest_harness/harness-selftest.c      | 34 +++++++++++++++++++
>  .../harness-selftest.expected                 | 22 +++++++++---
>  2 files changed, 52 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..2fd5310b33c7 100644
> --- a/tools/testing/selftests/kselftest_harness/harness-selftest.c
> +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c
> @@ -118,6 +118,40 @@ TEST_F(fixture_setup_failure, pass) {
>  	TH_LOG("after");
>  }
>  
> +FIXTURE(fixture_variant) {
> +	pid_t testpid;
> +};
> +
> +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);
> +	self->testpid = getpid();
> +}
> +
> +FIXTURE_TEARDOWN(fixture_variant) {
> +	TH_LOG("teardown same-process=%d", self->testpid == getpid());
> +}
> +
> +TEST_F(fixture_variant, pass) {
> +	TH_LOG("before");
> +	ASSERT_EQ(0, 0);

Please log the variant value from the test itself and the teardown function.
Also I don't think we need the pid logging and before/after/ASSERT in this test
also, it is already validated in the other ones.

> +	TH_LOG("after");
> +}
> +
>  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..ab081c5aba05 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,19 @@ 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:141:pass:setup 32
> +# harness-selftest.c:150:pass:before
> +# harness-selftest.c:152:pass:after
> +# harness-selftest.c:146:pass:teardown same-process=1
> +#            OK  fixture_variant.v32.pass
> +ok 10 fixture_variant.v32.pass
> +#  RUN           fixture_variant.v64.pass ...
> +# harness-selftest.c:141:pass:setup 64
> +# harness-selftest.c:150:pass:before
> +# harness-selftest.c:152:pass:after
> +# harness-selftest.c:146:pass:teardown same-process=1
> +#            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
> -- 
> 2.34.1
> 

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/3] selftests: correct one typo in comment
  2025-06-17  7:31   ` Thomas Weißschuh
@ 2025-06-17 23:52     ` Wei Yang
  0 siblings, 0 replies; 15+ messages in thread
From: Wei Yang @ 2025-06-17 23:52 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Wei Yang, shuah, kees, luto, wad, linux-kselftest, usama.anjum,
	skhan

On Tue, Jun 17, 2025 at 09:31:52AM +0200, Thomas Weißschuh wrote:
>Please use "selftests: harness:" as subject prefix for the patches.
>Also mention the specific typo to make the subject more unique.
>

Thanks.

Will adjust it.

>On Mon, Jun 16, 2025 at 12:23:36PM +0000, Wei Yang wrote:
>> The name is __constructor_order_forward.
>>
>> Just correct it.
>> 
>> Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
>
>With the above comments addressed:
>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.
>>   */
>> -- 
>> 2.34.1
>> 

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-17  7:35   ` Thomas Weißschuh
@ 2025-06-17 23:57     ` Wei Yang
  2025-06-18  5:47       ` Thomas Weißschuh
  0 siblings, 1 reply; 15+ messages in thread
From: Wei Yang @ 2025-06-17 23:57 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Wei Yang, shuah, kees, luto, wad, linux-kselftest, usama.anjum,
	skhan

On Tue, Jun 17, 2025 at 09:35:12AM +0200, Thomas Weißschuh wrote:
>Good idea.
>

Thanks.

>On Mon, Jun 16, 2025 at 12:23:38PM +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>
>> ---
>>  .../kselftest_harness/harness-selftest.c      | 34 +++++++++++++++++++
>>  .../harness-selftest.expected                 | 22 +++++++++---
>>  2 files changed, 52 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..2fd5310b33c7 100644
>> --- a/tools/testing/selftests/kselftest_harness/harness-selftest.c
>> +++ b/tools/testing/selftests/kselftest_harness/harness-selftest.c
>> @@ -118,6 +118,40 @@ TEST_F(fixture_setup_failure, pass) {
>>  	TH_LOG("after");
>>  }
>>  
>> +FIXTURE(fixture_variant) {
>> +	pid_t testpid;
>> +};
>> +
>> +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);
>> +	self->testpid = getpid();
>> +}
>> +
>> +FIXTURE_TEARDOWN(fixture_variant) {
>> +	TH_LOG("teardown same-process=%d", self->testpid == getpid());
>> +}
>> +
>> +TEST_F(fixture_variant, pass) {
>> +	TH_LOG("before");
>> +	ASSERT_EQ(0, 0);
>
>Please log the variant value from the test itself and the teardown function.
>Also I don't think we need the pid logging and before/after/ASSERT in this test
>also, it is already validated in the other ones.
>

Sure, per my understanding, is this what you prefer?


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("before %d", variant->value);
	ASSERT_EQ(0, 0);
	TH_LOG("after %d", variant->value);
}


-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-16 12:45   ` Muhammad Usama Anjum
@ 2025-06-18  0:05     ` Wei Yang
  0 siblings, 0 replies; 15+ messages in thread
From: Wei Yang @ 2025-06-18  0:05 UTC (permalink / raw)
  To: Muhammad Usama Anjum
  Cc: Wei Yang, shuah, kees, luto, wad, linux-kselftest,
	thomas.weissschuh, skhan

On Mon, Jun 16, 2025 at 05:45:42PM +0500, Muhammad Usama Anjum wrote:
>On 6/16/25 5:23 PM, 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>
>Reviewed-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
>

Hi, Muhammad

Since I may change the code in v2, I think I should drop your RB.

But will cc you. Hope you would take a look later. Thanks

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-17 23:57     ` Wei Yang
@ 2025-06-18  5:47       ` Thomas Weißschuh
  2025-06-18  8:16         ` Wei Yang
  0 siblings, 1 reply; 15+ messages in thread
From: Thomas Weißschuh @ 2025-06-18  5:47 UTC (permalink / raw)
  To: Wei Yang; +Cc: shuah, kees, luto, wad, linux-kselftest, usama.anjum, skhan

On Tue, Jun 17, 2025 at 11:57:48PM +0000, Wei Yang wrote:
> On Tue, Jun 17, 2025 at 09:35:12AM +0200, Thomas Weißschuh wrote:

<snip>

> >> +FIXTURE_SETUP(fixture_variant) {
> >> +	TH_LOG("setup %d", variant->value);
> >> +	self->testpid = getpid();
> >> +}
> >> +
> >> +FIXTURE_TEARDOWN(fixture_variant) {
> >> +	TH_LOG("teardown same-process=%d", self->testpid == getpid());
> >> +}
> >> +
> >> +TEST_F(fixture_variant, pass) {
> >> +	TH_LOG("before");
> >> +	ASSERT_EQ(0, 0);
> >
> >Please log the variant value from the test itself and the teardown function.
> >Also I don't think we need the pid logging and before/after/ASSERT in this test
> >also, it is already validated in the other ones.
> >
> 
> Sure, per my understanding, is this what you prefer?
> 
> 
> 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("before %d", variant->value);
> 	ASSERT_EQ(0, 0);
> 	TH_LOG("after %d", variant->value);

I would drop the three lines above and just do:

TH_LOG("test function %d", variant->value);

Also please note that my earlier comment about the patch prefix
"selftests: harness:" should only apply to the patches really related to the
harness.
Not patch 2, which should use "selftests: kselftest:".

> }
> 
> 
> -- 
> Wei Yang
> Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-18  5:47       ` Thomas Weißschuh
@ 2025-06-18  8:16         ` Wei Yang
  2025-06-18  9:12           ` Wei Yang
  0 siblings, 1 reply; 15+ messages in thread
From: Wei Yang @ 2025-06-18  8:16 UTC (permalink / raw)
  To: Thomas Weißschuh
  Cc: Wei Yang, shuah, kees, luto, wad, linux-kselftest, usama.anjum,
	skhan

On Wed, Jun 18, 2025 at 07:47:19AM +0200, Thomas Weißschuh wrote:
>On Tue, Jun 17, 2025 at 11:57:48PM +0000, Wei Yang wrote:
>> On Tue, Jun 17, 2025 at 09:35:12AM +0200, Thomas Weißschuh wrote:
>
><snip>
>
>> >> +FIXTURE_SETUP(fixture_variant) {
>> >> +	TH_LOG("setup %d", variant->value);
>> >> +	self->testpid = getpid();
>> >> +}
>> >> +
>> >> +FIXTURE_TEARDOWN(fixture_variant) {
>> >> +	TH_LOG("teardown same-process=%d", self->testpid == getpid());
>> >> +}
>> >> +
>> >> +TEST_F(fixture_variant, pass) {
>> >> +	TH_LOG("before");
>> >> +	ASSERT_EQ(0, 0);
>> >
>> >Please log the variant value from the test itself and the teardown function.
>> >Also I don't think we need the pid logging and before/after/ASSERT in this test
>> >also, it is already validated in the other ones.
>> >
>> 
>> Sure, per my understanding, is this what you prefer?
>> 
>> 
>> 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("before %d", variant->value);
>> 	ASSERT_EQ(0, 0);
>> 	TH_LOG("after %d", variant->value);
>
>I would drop the three lines above and just do:
>
>TH_LOG("test function %d", variant->value);
>

Got it, thanks.

>Also please note that my earlier comment about the patch prefix
>"selftests: harness:" should only apply to the patches really related to the
>harness.
>Not patch 2, which should use "selftests: kselftest:".
>

Hmm.. for patch 2, Muhammad mentioned it not comply with TAP guideline.

So I plan to drop it in next version.

>> }
>> 
>> 
>> -- 
>> Wei Yang
>> Help you, Help me

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant
  2025-06-18  8:16         ` Wei Yang
@ 2025-06-18  9:12           ` Wei Yang
  0 siblings, 0 replies; 15+ messages in thread
From: Wei Yang @ 2025-06-18  9:12 UTC (permalink / raw)
  To: Wei Yang
  Cc: Thomas Weißschuh, shuah, kees, luto, wad, linux-kselftest,
	usama.anjum, skhan

On Wed, Jun 18, 2025 at 08:16:53AM +0000, Wei Yang wrote:
[...]
>>
>>TH_LOG("test function %d", variant->value);
>>
>
>Got it, thanks.
>
>>Also please note that my earlier comment about the patch prefix
>>"selftests: harness:" should only apply to the patches really related to the
>>harness.
>>Not patch 2, which should use "selftests: kselftest:".
>>
>
>Hmm.. for patch 2, Muhammad mentioned it not comply with TAP guideline.
>
>So I plan to drop it in next version.
>

If I misunderstand that, please let me know.

-- 
Wei Yang
Help you, Help me

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2025-06-18  9:12 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-06-16 12:23 [PATCH 0/3] Add kselftest harness selftest with variant Wei Yang
2025-06-16 12:23 ` [PATCH 1/3] selftests: correct one typo in comment Wei Yang
2025-06-17  7:31   ` Thomas Weißschuh
2025-06-17 23:52     ` Wei Yang
2025-06-16 12:23 ` [PATCH 2/3] selftests: print 0 if no test is chosen Wei Yang
2025-06-16 12:44   ` Muhammad Usama Anjum
2025-06-16 22:49     ` Wei Yang
2025-06-16 12:23 ` [PATCH 3/3] selftests: harness: Add kselftest harness selftest with variant Wei Yang
2025-06-16 12:45   ` Muhammad Usama Anjum
2025-06-18  0:05     ` Wei Yang
2025-06-17  7:35   ` Thomas Weißschuh
2025-06-17 23:57     ` Wei Yang
2025-06-18  5:47       ` Thomas Weißschuh
2025-06-18  8:16         ` Wei Yang
2025-06-18  9:12           ` Wei Yang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).