* [PATCH 0/4] test: eal flags cleanup
@ 2025-11-15 19:33 Stephen Hemminger
2025-11-15 19:33 ` [PATCH 1/4] test: re-enable format-truncation warnings Stephen Hemminger
` (3 more replies)
0 siblings, 4 replies; 6+ messages in thread
From: Stephen Hemminger @ 2025-11-15 19:33 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger
Revisions to the EAL flags tests to cleanup and fix warnings.
Split off from earlier patch series.
Stephen Hemminger (4):
test: re-enable format-truncation warnings
test: increase size of memzone name
test: refactor file prefix arg handling
test: use unit test runner for eal flags
app/test/meson.build | 1 -
app/test/test_eal_flags.c | 161 ++++++++++++++++----------------------
app/test/test_memzone.c | 2 +-
3 files changed, 67 insertions(+), 97 deletions(-)
--
2.51.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 1/4] test: re-enable format-truncation warnings
2025-11-15 19:33 [PATCH 0/4] test: eal flags cleanup Stephen Hemminger
@ 2025-11-15 19:33 ` Stephen Hemminger
2025-11-15 19:43 ` Stephen Hemminger
2025-11-15 19:33 ` [PATCH 2/4] test: increase size of memzone name Stephen Hemminger
` (2 subsequent siblings)
3 siblings, 1 reply; 6+ messages in thread
From: Stephen Hemminger @ 2025-11-15 19:33 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Bruce Richardson
Tests should be built with warnings.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
app/test/meson.build | 1 -
1 file changed, 1 deletion(-)
diff --git a/app/test/meson.build b/app/test/meson.build
index 8df8d3edd1..66cbabe9fe 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -260,7 +260,6 @@ cflags += no_wvla_cflag
extra_flags = [
# Strict-aliasing rules are violated by uint8_t[] to context size casts.
'-fno-strict-aliasing',
- '-Wno-format-truncation',
]
foreach arg: extra_flags
--
2.51.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 2/4] test: increase size of memzone name
2025-11-15 19:33 [PATCH 0/4] test: eal flags cleanup Stephen Hemminger
2025-11-15 19:33 ` [PATCH 1/4] test: re-enable format-truncation warnings Stephen Hemminger
@ 2025-11-15 19:33 ` Stephen Hemminger
2025-11-15 19:33 ` [PATCH 3/4] test: refactor file prefix arg handling Stephen Hemminger
2025-11-15 19:33 ` [PATCH 4/4] test: use unit test runner for eal flags Stephen Hemminger
3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2025-11-15 19:33 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Bruce Richardson, Anatoly Burakov
The tests were using a name buffer of 20 characters which could
overflow if number of memory zones got large. The upper limit
is defined as RTE_MEMZONE_NAMESIZE so use that.
In function ‘test_memzone_free’,
inlined from ‘test_memzone’ at ../app/test/test_memzone.c:1117:6:
../app/test/test_memzone.c:52:35: warning: ‘%u’ directive output may be truncated writing between 1 and 10 bytes into a region of size 4 [-Wformat-truncation=]
52 | #define TEST_MEMZONE_NAME(suffix) "MZ_TEST_" suffix
| ^~~~~~~~~~
../app/test/test_memzone.c:931:46: note: in expansion of macro ‘TEST_MEMZONE_NAME’
931 | snprintf(name, sizeof(name), TEST_MEMZONE_NAME("tempzone%u"),
| ^~~~~~~~~~~~~~~~~
../app/test/test_memzone.c:52:35: note: directive argument in the range [0, 2147483647]
52 | #define TEST_MEMZONE_NAME(suffix) "MZ_TEST_" suffix
| ^~~~~~~~~~
../app/test/test_memzone.c:931:46: note: in expansion of macro ‘TEST_MEMZONE_NAME’
931 | snprintf(name, sizeof(name), TEST_MEMZONE_NAME("tempzone%u"),
| ^~~~~~~~~~~~~~~~~
../app/test/test_memzone.c:931:17: note: ‘snprintf’ output between 18 and 27 bytes into a destination of size 20
931 | snprintf(name, sizeof(name), TEST_MEMZONE_NAME("tempzone%u"),
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
932 | i);
|
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
---
app/test/test_memzone.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/app/test/test_memzone.c b/app/test/test_memzone.c
index 506725ea41..6586dad18d 100644
--- a/app/test/test_memzone.c
+++ b/app/test/test_memzone.c
@@ -872,7 +872,7 @@ test_memzone_free(void)
{
const struct rte_memzone **mz;
int i;
- char name[20];
+ char name[RTE_MEMZONE_NAMESIZE];
int rc = -1;
mz = rte_calloc("memzone_test", rte_memzone_max_get() + 1,
--
2.51.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 3/4] test: refactor file prefix arg handling
2025-11-15 19:33 [PATCH 0/4] test: eal flags cleanup Stephen Hemminger
2025-11-15 19:33 ` [PATCH 1/4] test: re-enable format-truncation warnings Stephen Hemminger
2025-11-15 19:33 ` [PATCH 2/4] test: increase size of memzone name Stephen Hemminger
@ 2025-11-15 19:33 ` Stephen Hemminger
2025-11-15 19:33 ` [PATCH 4/4] test: use unit test runner for eal flags Stephen Hemminger
3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2025-11-15 19:33 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Tyler Retzlaff
Make setting up --file-prefix arg logic into a function,
and avoid impossible case of file prefix path causing overflow
of string.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
app/test/test_eal_flags.c | 123 +++++++++++++-------------------------
1 file changed, 40 insertions(+), 83 deletions(-)
diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
index e32f83d3c8..0eead2a422 100644
--- a/app/test/test_eal_flags.c
+++ b/app/test/test_eal_flags.c
@@ -121,6 +121,8 @@ test_misc_flags(void)
#define no_shconf "--no-shconf"
#define allow "--allow"
#define vdev "--vdev"
+#define file_prefix "--file-prefix"
+
#define memtest "memtest"
#define memtest1 "memtest1"
#define memtest2 "memtest2"
@@ -312,6 +314,25 @@ get_number_of_sockets(void)
}
#endif
+static const char *
+get_file_prefix(void)
+{
+#ifdef RTE_EXEC_ENV_FREEBSD
+ /* BSD target doesn't support prefixes at this point */
+ return "";
+#else
+ static char prefix[PATH_MAX + sizeof(file_prefix)];
+ char tmp[PATH_MAX];
+
+ if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
+ printf("Error - unable to get current prefix!\n");
+ return NULL;
+ }
+ snprintf(prefix, sizeof(prefix), file_prefix "=%s", tmp);
+ return prefix;
+#endif
+}
+
/*
* Test that the app doesn't run with invalid allow option.
* Final tests ensures it does run with valid options as sanity check (one
@@ -320,18 +341,10 @@ get_number_of_sockets(void)
static int
test_allow_flag(void)
{
- unsigned i;
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char * prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ unsigned int i;
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
const char *wlinval[][7] = {
{prgname, prefix, mp_flag,
@@ -387,17 +400,9 @@ test_allow_flag(void)
static int
test_invalid_b_flag(void)
{
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char * prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
const char *blinval[][5] = {
{prgname, prefix, mp_flag, "-b", "error"},
@@ -491,17 +496,9 @@ test_invalid_vdev_flag(void)
static int
test_invalid_r_flag(void)
{
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char * prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
const char *rinval[][5] = {
{prgname, prefix, mp_flag, "-r", "error"},
@@ -535,17 +532,9 @@ test_invalid_r_flag(void)
static int
test_missing_c_flag(void)
{
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char * prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
/* -c flag but no coremask value */
const char *argv1[] = { prgname, prefix, mp_flag, "-c"};
@@ -694,17 +683,9 @@ test_missing_c_flag(void)
static int
test_main_lcore_flag(void)
{
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char *prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
if (!rte_lcore_is_enabled(0) || !rte_lcore_is_enabled(1))
return TEST_SKIPPED;
@@ -751,17 +732,9 @@ test_main_lcore_flag(void)
static int
test_invalid_n_flag(void)
{
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char * prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
/* -n flag but no value */
const char *argv1[] = { prgname, prefix, no_huge, no_shconf,
@@ -803,17 +776,12 @@ test_invalid_n_flag(void)
static int
test_no_hpet_flag(void)
{
- char prefix[PATH_MAX] = "";
-
#ifdef RTE_EXEC_ENV_FREEBSD
return 0;
#else
- char tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
#endif
/* With --no-hpet */
@@ -913,17 +881,14 @@ test_misc_flags(void)
const char * prefix = "";
const char * nosh_prefix = "";
#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
+ const char *prefix = get_file_prefix();
const char * nosh_prefix = "--file-prefix=noshconf";
FILE * hugedir_handle = NULL;
char line[PATH_MAX] = {0};
unsigned i, isempty = 1;
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
/*
* get first valid hugepage path
@@ -1525,17 +1490,9 @@ populate_socket_mem_param(int num_sockets, const char *mem,
static int
test_memory_flags(void)
{
-#ifdef RTE_EXEC_ENV_FREEBSD
- /* BSD target doesn't support prefixes at this point */
- const char * prefix = "";
-#else
- char prefix[PATH_MAX], tmp[PATH_MAX];
- if (get_current_prefix(tmp, sizeof(tmp)) == NULL) {
- printf("Error - unable to get current prefix!\n");
+ const char *prefix = get_file_prefix();
+ if (prefix == NULL)
return -1;
- }
- snprintf(prefix, sizeof(prefix), "--file-prefix=%s", tmp);
-#endif
/* valid -m flag and mp flag */
const char *argv0[] = {prgname, prefix, mp_flag,
--
2.51.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 4/4] test: use unit test runner for eal flags
2025-11-15 19:33 [PATCH 0/4] test: eal flags cleanup Stephen Hemminger
` (2 preceding siblings ...)
2025-11-15 19:33 ` [PATCH 3/4] test: refactor file prefix arg handling Stephen Hemminger
@ 2025-11-15 19:33 ` Stephen Hemminger
3 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2025-11-15 19:33 UTC (permalink / raw)
To: dev; +Cc: Stephen Hemminger, Tyler Retzlaff
Make the sub tests in eal flags suite into a group
so that they are not individual tests.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
---
app/test/test_eal_flags.c | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/app/test/test_eal_flags.c b/app/test/test_eal_flags.c
index 0eead2a422..12ba54339d 100644
--- a/app/test/test_eal_flags.c
+++ b/app/test/test_eal_flags.c
@@ -1649,15 +1649,29 @@ test_memory_flags(void)
#endif /* !RTE_EXEC_ENV_WINDOWS */
-REGISTER_FAST_TEST(eal_flags_c_opt_autotest, false, false, test_missing_c_flag);
-REGISTER_FAST_TEST(eal_flags_main_opt_autotest, false, false, test_main_lcore_flag);
-REGISTER_FAST_TEST(eal_flags_n_opt_autotest, false, false, test_invalid_n_flag);
-REGISTER_FAST_TEST(eal_flags_hpet_autotest, false, false, test_no_hpet_flag);
-REGISTER_FAST_TEST(eal_flags_no_huge_autotest, false, false, test_no_huge_flag);
-REGISTER_FAST_TEST(eal_flags_a_opt_autotest, false, false, test_allow_flag);
-REGISTER_FAST_TEST(eal_flags_b_opt_autotest, false, false, test_invalid_b_flag);
-REGISTER_FAST_TEST(eal_flags_vdev_opt_autotest, false, false, test_invalid_vdev_flag);
-REGISTER_FAST_TEST(eal_flags_r_opt_autotest, false, false, test_invalid_r_flag);
-REGISTER_FAST_TEST(eal_flags_mem_autotest, false, false, test_memory_flags);
-REGISTER_FAST_TEST(eal_flags_file_prefix_autotest, false, false, test_file_prefix);
-REGISTER_FAST_TEST(eal_flags_misc_autotest, false, false, test_misc_flags);
+static struct unit_test_suite eal_flags_test_suite = {
+ .suite_name = "EAL flags unit test suite",
+ .unit_test_cases = {
+ TEST_CASE(test_missing_c_flag),
+ TEST_CASE(test_main_lcore_flag),
+ TEST_CASE(test_invalid_n_flag),
+ TEST_CASE(test_no_hpet_flag),
+ TEST_CASE(test_no_huge_flag),
+ TEST_CASE(test_allow_flag),
+ TEST_CASE(test_invalid_b_flag),
+ TEST_CASE(test_invalid_vdev_flag),
+ TEST_CASE(test_invalid_r_flag),
+ TEST_CASE(test_memory_flags),
+ TEST_CASE(test_file_prefix),
+ TEST_CASE(test_misc_flags),
+ TEST_CASES_END()
+ }
+};
+
+static int
+test_eal_flags(void)
+{
+ return unit_test_suite_runner(&eal_flags_test_suite);
+}
+
+REGISTER_FAST_TEST(eal_flags_autotest, false, false, test_eal_flags);
--
2.51.0
^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: [PATCH 1/4] test: re-enable format-truncation warnings
2025-11-15 19:33 ` [PATCH 1/4] test: re-enable format-truncation warnings Stephen Hemminger
@ 2025-11-15 19:43 ` Stephen Hemminger
0 siblings, 0 replies; 6+ messages in thread
From: Stephen Hemminger @ 2025-11-15 19:43 UTC (permalink / raw)
To: dev; +Cc: Bruce Richardson
On Sat, 15 Nov 2025 11:33:07 -0800
Stephen Hemminger <stephen@networkplumber.org> wrote:
> Tests should be built with warnings.
>
> Signed-off-by: Stephen Hemminger <stephen@networkplumber.org>
> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
> ---
> app/test/meson.build | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/app/test/meson.build b/app/test/meson.build
> index 8df8d3edd1..66cbabe9fe 100644
> --- a/app/test/meson.build
> +++ b/app/test/meson.build
> @@ -260,7 +260,6 @@ cflags += no_wvla_cflag
> extra_flags = [
> # Strict-aliasing rules are violated by uint8_t[] to context size casts.
> '-fno-strict-aliasing',
> - '-Wno-format-truncation',
> ]
>
> foreach arg: extra_flags
Need to reorder these commits? so the warning enabling is last.
^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2025-11-15 19:43 UTC | newest]
Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-15 19:33 [PATCH 0/4] test: eal flags cleanup Stephen Hemminger
2025-11-15 19:33 ` [PATCH 1/4] test: re-enable format-truncation warnings Stephen Hemminger
2025-11-15 19:43 ` Stephen Hemminger
2025-11-15 19:33 ` [PATCH 2/4] test: increase size of memzone name Stephen Hemminger
2025-11-15 19:33 ` [PATCH 3/4] test: refactor file prefix arg handling Stephen Hemminger
2025-11-15 19:33 ` [PATCH 4/4] test: use unit test runner for eal flags Stephen Hemminger
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).