DPDK-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] test/bpf_validate: use unit_test_suite_runner
@ 2026-07-03 15:29 Marat Khalili
  2026-07-03 15:37 ` Stephen Hemminger
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: Marat Khalili @ 2026-07-03 15:29 UTC (permalink / raw)
  To: Konstantin Ananyev; +Cc: dev, thomas, stephen

Due to github CI running out of tmpfs space after adding 29 new BPF
validate tests they were temporarily disabled. Restore them as a single
test using unit_test_suite_runner.

Signed-off-by: Marat Khalili <marat.khalili@huawei.com>
---
 app/test/test_bpf_validate.c | 130 ++++++++++++-----------------------
 1 file changed, 44 insertions(+), 86 deletions(-)

diff --git a/app/test/test_bpf_validate.c b/app/test/test_bpf_validate.c
index 7181303f3ee4..066f1fa156ae 100644
--- a/app/test/test_bpf_validate.c
+++ b/app/test/test_bpf_validate.c
@@ -1291,9 +1291,6 @@ test_alu64_add_k(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_add_k_autotest,
-	test_alu64_add_k);
-
 /* 64-bit addition of immediate to a pointer range. */
 static int
 test_alu64_add_k_pointer(void)
@@ -1309,9 +1306,6 @@ test_alu64_add_k_pointer(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_add_k_pointer_autotest,
-	test_alu64_add_k_pointer);
-
 /* 64-bit addition of pointer to a pointer. */
 static int
 test_alu64_add_x_pointer_pointer(void)
@@ -1327,9 +1321,6 @@ test_alu64_add_x_pointer_pointer(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_add_x_pointer_pointer_autotest,
-	test_alu64_add_x_pointer_pointer);
-
 /* 64-bit addition of scalar to a pointer. */
 static int
 test_alu64_add_x_pointer_scalar(void)
@@ -1345,9 +1336,6 @@ test_alu64_add_x_pointer_scalar(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_add_x_pointer_scalar_autotest,
-	test_alu64_add_x_pointer_scalar);
-
 /* 64-bit addition of pointer to a scalar. */
 static int
 test_alu64_add_x_scalar_pointer(void)
@@ -1363,9 +1351,6 @@ test_alu64_add_x_scalar_pointer(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_add_x_scalar_pointer_autotest,
-	test_alu64_add_x_scalar_pointer);
-
 /* 64-bit addition of scalar to a scalar. */
 static int
 test_alu64_add_x_scalar_scalar(void)
@@ -1381,9 +1366,6 @@ test_alu64_add_x_scalar_scalar(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_add_x_scalar_scalar_autotest,
-	test_alu64_add_x_scalar_scalar);
-
 /* 64-bit bitwise AND between a scalar range and immediate. */
 static int
 test_alu64_and_k(void)
@@ -1398,9 +1380,6 @@ test_alu64_and_k(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_and_k_autotest,
-	test_alu64_and_k);
-
 /* 64-bit division and modulo of UINT64_MAX*2/3. */
 static int
 test_alu64_div_mod_big_constant(void)
@@ -1442,9 +1421,6 @@ test_alu64_div_mod_big_constant(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_div_mod_big_constant_autotest,
-	test_alu64_div_mod_big_constant);
-
 /* 64-bit division and modulo of UINT64_MAX/3..UINT64_MAX*2/3 by a constant. */
 static int
 test_alu64_div_mod_big_range(void)
@@ -1487,9 +1463,6 @@ test_alu64_div_mod_big_range(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_div_mod_big_range_autotest,
-	test_alu64_div_mod_big_range);
-
 /* 64-bit division and modulo of INT64_MIN by -1. */
 static int
 test_alu64_div_mod_overflow(void)
@@ -1533,9 +1506,6 @@ test_alu64_div_mod_overflow(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_div_mod_overflow_autotest,
-	test_alu64_div_mod_overflow);
-
 /* 64-bit left shift by 63. */
 static int
 test_alu64_lsh_63(void)
@@ -1550,9 +1520,6 @@ test_alu64_lsh_63(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_lsh_63_autotest,
-	test_alu64_lsh_63);
-
 /* 64-bit multiplication of constant and immediate with overflow. */
 static int
 test_alu64_mul_k_overflow(void)
@@ -1567,9 +1534,6 @@ test_alu64_mul_k_overflow(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_mul_k_overflow_autotest,
-	test_alu64_mul_k_overflow);
-
 /* 64-bit mul of small scalar range and immediate. */
 static int
 test_alu64_mul_k_range_small(void)
@@ -1584,9 +1548,6 @@ test_alu64_mul_k_range_small(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_mul_k_range_small_autotest,
-	test_alu64_mul_k_range_small);
-
 /* 64-bit negation when interval first element is INT64_MIN. */
 static int
 test_alu64_neg_int64min_first(void)
@@ -1618,9 +1579,6 @@ test_alu64_neg_int64min_first(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_neg_int64min_first_autotest,
-	test_alu64_neg_int64min_first);
-
 /* 64-bit negation when interval last element is INT64_MIN. */
 static int
 test_alu64_neg_int64min_last(void)
@@ -1647,9 +1605,6 @@ test_alu64_neg_int64min_last(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_neg_int64min_last_autotest,
-	test_alu64_neg_int64min_last);
-
 /* 64-bit negation when interval first element is zero. */
 static int
 test_alu64_neg_zero_first(void)
@@ -1681,9 +1636,6 @@ test_alu64_neg_zero_first(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_neg_zero_first_autotest,
-	test_alu64_neg_zero_first);
-
 /* 64-bit negation when interval last element is zero. */
 static int
 test_alu64_neg_zero_last(void)
@@ -1710,9 +1662,6 @@ test_alu64_neg_zero_last(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_neg_zero_last_autotest,
-	test_alu64_neg_zero_last);
-
 /* 64-bit bitwise OR between a positive scalar range and negative immediate. */
 static int
 test_alu64_or_k_negative(void)
@@ -1727,9 +1676,6 @@ test_alu64_or_k_negative(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_or_k_negative_autotest,
-	test_alu64_or_k_negative);
-
 /* 64-bit bitwise OR between a positive scalar range and positive immediate. */
 static int
 test_alu64_or_k_positive(void)
@@ -1744,9 +1690,6 @@ test_alu64_or_k_positive(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_or_k_positive_autotest,
-	test_alu64_or_k_positive);
-
 /* 64-bit difference between two negative ranges.. */
 static int
 test_alu64_sub_x_src_signed_max_zero(void)
@@ -1761,9 +1704,6 @@ test_alu64_sub_x_src_signed_max_zero(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_sub_x_src_signed_max_zero_autotest,
-	test_alu64_sub_x_src_signed_max_zero);
-
 /* 64-bit bitwise XOR between a negative scalar range and zero immediate. */
 static int
 test_alu64_xor_k_negative(void)
@@ -1778,9 +1718,6 @@ test_alu64_xor_k_negative(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_alu64_xor_k_negative_autotest,
-	test_alu64_xor_k_negative);
-
 /* Jump if greater than immediate. */
 static int
 test_jmp64_jeq_k(void)
@@ -1796,9 +1733,6 @@ test_jmp64_jeq_k(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_jeq_k_autotest,
-	test_jmp64_jeq_k);
-
 /* Jump if signed less than another register. */
 static int
 test_jmp64_jslt_x(void)
@@ -1814,9 +1748,6 @@ test_jmp64_jslt_x(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_jslt_x_autotest,
-	test_jmp64_jslt_x);
-
 /* Jump on ordering comparisons with potential bound overflow. */
 static int
 test_jmp64_ordering_overflow(void)
@@ -1863,9 +1794,6 @@ test_jmp64_ordering_overflow(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_ordering_overflow_autotest,
-	test_jmp64_ordering_overflow);
-
 /* Jump on ordering comparisons between two ranges. */
 static int
 test_jmp64_ordering_ranges(void)
@@ -2022,9 +1950,6 @@ test_jmp64_ordering_ranges(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_ordering_ranges_autotest,
-	test_jmp64_ordering_ranges);
-
 /* Jump on ordering comparisons with singleton inside the range. */
 static int
 test_jmp64_ordering_singleton_inside(void)
@@ -2080,9 +2005,6 @@ test_jmp64_ordering_singleton_inside(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_ordering_singleton_inside_autotest,
-	test_jmp64_ordering_singleton_inside);
-
 /* Jump on ordering comparisons with singleton outside the range. */
 static int
 test_jmp64_ordering_singleton_outside(void)
@@ -2175,9 +2097,6 @@ test_jmp64_ordering_singleton_outside(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_ordering_singleton_outside_autotest,
-	test_jmp64_ordering_singleton_outside);
-
 /* Jump on ordering comparisons with ranges "touching" each other. */
 static int
 test_jmp64_ordering_touching(void)
@@ -2249,9 +2168,6 @@ test_jmp64_ordering_touching(void)
 	return TEST_SUCCESS;
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_jmp64_ordering_touching_autotest,
-	test_jmp64_ordering_touching);
-
 /* 64-bit load from heap (should be set to unknown). */
 static int
 test_mem_ldx_dw_heap(void)
@@ -2267,5 +2183,47 @@ test_mem_ldx_dw_heap(void)
 	});
 }
 
-REGISTER_ATTIC_TEST(bpf_validate_mem_ldx_dw_heap_autotest,
-	test_mem_ldx_dw_heap);
+static struct
+unit_test_suite test_bpf_validate_suite  = {
+	.suite_name = "Test BPF Validate Unit Test Suite",
+	.unit_test_cases = {
+		TEST_CASE(test_alu64_add_k),
+		TEST_CASE(test_alu64_add_k_pointer),
+		TEST_CASE(test_alu64_add_x_pointer_pointer),
+		TEST_CASE(test_alu64_add_x_pointer_scalar),
+		TEST_CASE(test_alu64_add_x_scalar_pointer),
+		TEST_CASE(test_alu64_add_x_scalar_scalar),
+		TEST_CASE(test_alu64_and_k),
+		TEST_CASE(test_alu64_div_mod_big_constant),
+		TEST_CASE(test_alu64_div_mod_big_range),
+		TEST_CASE(test_alu64_div_mod_overflow),
+		TEST_CASE(test_alu64_lsh_63),
+		TEST_CASE(test_alu64_mul_k_overflow),
+		TEST_CASE(test_alu64_mul_k_range_small),
+		TEST_CASE(test_alu64_neg_int64min_first),
+		TEST_CASE(test_alu64_neg_int64min_last),
+		TEST_CASE(test_alu64_neg_zero_first),
+		TEST_CASE(test_alu64_neg_zero_last),
+		TEST_CASE(test_alu64_or_k_negative),
+		TEST_CASE(test_alu64_or_k_positive),
+		TEST_CASE(test_alu64_sub_x_src_signed_max_zero),
+		TEST_CASE(test_alu64_xor_k_negative),
+		TEST_CASE(test_jmp64_jeq_k),
+		TEST_CASE(test_jmp64_jslt_x),
+		TEST_CASE(test_jmp64_ordering_overflow),
+		TEST_CASE(test_jmp64_ordering_ranges),
+		TEST_CASE(test_jmp64_ordering_singleton_inside),
+		TEST_CASE(test_jmp64_ordering_singleton_outside),
+		TEST_CASE(test_jmp64_ordering_touching),
+		TEST_CASE(test_mem_ldx_dw_heap),
+		TEST_CASES_END()
+	}
+};
+
+static int
+test_bpf_validate(void)
+{
+	return unit_test_suite_runner(&test_bpf_validate_suite);
+}
+
+REGISTER_FAST_TEST(bpf_validate_autotest, NOHUGE_OK, ASAN_OK, test_bpf_validate);
-- 
2.43.0


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

* Re: [PATCH] test/bpf_validate: use unit_test_suite_runner
  2026-07-03 15:29 [PATCH] test/bpf_validate: use unit_test_suite_runner Marat Khalili
@ 2026-07-03 15:37 ` Stephen Hemminger
  2026-07-06 13:18   ` Thomas Monjalon
  2026-07-04 11:18 ` Thomas Monjalon
  2026-07-06  9:27 ` Marat Khalili
  2 siblings, 1 reply; 5+ messages in thread
From: Stephen Hemminger @ 2026-07-03 15:37 UTC (permalink / raw)
  To: Marat Khalili; +Cc: Konstantin Ananyev, dev, thomas

On Fri, 3 Jul 2026 16:29:09 +0100
Marat Khalili <marat.khalili@huawei.com> wrote:

> Due to github CI running out of tmpfs space after adding 29 new BPF
> validate tests they were temporarily disabled. Restore them as a single
> test using unit_test_suite_runner.
> 
> Signed-off-by: Marat Khalili <marat.khalili@huawei.com>
> ---

Acked-by: Stephen Hemminger <stephen@networkplumber.org>

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

* Re: [PATCH] test/bpf_validate: use unit_test_suite_runner
  2026-07-03 15:29 [PATCH] test/bpf_validate: use unit_test_suite_runner Marat Khalili
  2026-07-03 15:37 ` Stephen Hemminger
@ 2026-07-04 11:18 ` Thomas Monjalon
  2026-07-06  9:27 ` Marat Khalili
  2 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2026-07-04 11:18 UTC (permalink / raw)
  To: dev; +Cc: Marat Khalili

Recheck-request: iol-unit-amd64-testing, iol-unit-arm64-testing, github-robot, github-robot: build



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

* RE: [PATCH] test/bpf_validate: use unit_test_suite_runner
  2026-07-03 15:29 [PATCH] test/bpf_validate: use unit_test_suite_runner Marat Khalili
  2026-07-03 15:37 ` Stephen Hemminger
  2026-07-04 11:18 ` Thomas Monjalon
@ 2026-07-06  9:27 ` Marat Khalili
  2 siblings, 0 replies; 5+ messages in thread
From: Marat Khalili @ 2026-07-06  9:27 UTC (permalink / raw)
  To: Marat Khalili, Konstantin Ananyev
  Cc: dev@dpdk.org, thomas@monjalon.net, stephen@networkplumber.org

> > @@ -2267,5 +2183,47 @@ test_mem_ldx_dw_heap(void)
> >  	});
> >  }
> > 
> > -REGISTER_ATTIC_TEST(bpf_validate_mem_ldx_dw_heap_autotest,
> > -	test_mem_ldx_dw_heap);
> > +static struct
> > +unit_test_suite test_bpf_validate_suite  = {
> > +	.suite_name = "Test BPF Validate Unit Test Suite",
> > +	.unit_test_cases = {
> > +		TEST_CASE(test_alu64_add_k),

Received some additional AI comments that are not visible in patchwork (?).

> **Missing blank line before suite definition**
> 
> The static structure `test_bpf_validate_suite` should be separated from the
> preceding function `test_mem_ldx_dw_heap()` by a blank line for consistency
> with DPDK formatting conventions.

The model seems to be confused, the structure is clearly separated.

> **Extra space in structure name line**

This one is true BUT seems to be the majority style for some reason.
If fixed, this needs to be fixed in 49 other places.

> The suite name "Test BPF Validate Unit Test Suite" is somewhat redundant
> ("Test" appears twice). [...] This is a minor style preference; the current
> name is acceptable.

I mostly agree with this one, though some (not the majority) of the other
suites also use this style. But as model said, the current name is acceptable.

Net result, I do not plan to send another revision in the absence of other
comments or opinions.

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

* Re: [PATCH] test/bpf_validate: use unit_test_suite_runner
  2026-07-03 15:37 ` Stephen Hemminger
@ 2026-07-06 13:18   ` Thomas Monjalon
  0 siblings, 0 replies; 5+ messages in thread
From: Thomas Monjalon @ 2026-07-06 13:18 UTC (permalink / raw)
  To: Marat Khalili; +Cc: dev, Konstantin Ananyev, Stephen Hemminger

03/07/2026 17:37, Stephen Hemminger:
> On Fri, 3 Jul 2026 16:29:09 +0100
> Marat Khalili <marat.khalili@huawei.com> wrote:
> 
> > Due to github CI running out of tmpfs space after adding 29 new BPF
> > validate tests they were temporarily disabled. Restore them as a single
> > test using unit_test_suite_runner.
> > 
> > Signed-off-by: Marat Khalili <marat.khalili@huawei.com>
> > ---
> 
> Acked-by: Stephen Hemminger <stephen@networkplumber.org>

Applied, thanks.




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

end of thread, other threads:[~2026-07-06 13:19 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-03 15:29 [PATCH] test/bpf_validate: use unit_test_suite_runner Marat Khalili
2026-07-03 15:37 ` Stephen Hemminger
2026-07-06 13:18   ` Thomas Monjalon
2026-07-04 11:18 ` Thomas Monjalon
2026-07-06  9:27 ` Marat Khalili

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox