From 386256e69900d02d1413603a0066eb945ca2ec3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 16 Oct 2023 12:53:10 +0200 Subject: [PATCH] test: make sure that the default naming scheme name maps back to itself We were testing the that C constant is defined, but we weren't actually testing that the string name maps back to itself. This would catch the issue fixed by the grandparent commit. The test for the default name is moved to the test file to keep the tests together. The define is renamed to not have "_TEST" in the name. The issue here is complicated by the fact that we allow downstreams to inject additional fields, so we don't know the name of the default scheme if it not set with -Ddefault-net-naming-scheme=, so _DEFAULT_NET_NAMING_SCHEME[_TEST] is not defined in all cases, but at least in principle it could be used in other places. If it exists, it is fully valid. --- meson.build | 8 +++++--- src/shared/netif-naming-scheme.c | 7 ------- src/test/test-net-naming-scheme.c | 9 +++++++++ 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/meson.build b/meson.build index 5b6b9282762..77684b5caf0 100644 --- a/meson.build +++ b/meson.build @@ -767,10 +767,12 @@ conf.set('EXTRA_NET_NAMING_SCHEMES', ' '.join(extra_net_naming_schemes)) conf.set('EXTRA_NET_NAMING_MAP', ' '.join(extra_net_naming_map)) default_net_naming_scheme = get_option('default-net-naming-scheme') -conf.set_quoted('DEFAULT_NET_NAMING_SCHEME', default_net_naming_scheme) +conf.set_quoted('DEFAULT_NET_NAMING_SCHEME', default_net_naming_scheme, + description : 'Default naming scheme as a string') if default_net_naming_scheme != 'latest' - conf.set('_DEFAULT_NET_NAMING_SCHEME_TEST', - 'NAMING_' + default_net_naming_scheme.underscorify().to_upper()) + conf.set('_DEFAULT_NET_NAMING_SCHEME', + 'NAMING_' + default_net_naming_scheme.underscorify().to_upper(), + description : 'Default naming scheme as a constant') endif time_epoch = get_option('time-epoch') diff --git a/src/shared/netif-naming-scheme.c b/src/shared/netif-naming-scheme.c index 7fe19d48775..fbaf5c5a608 100644 --- a/src/shared/netif-naming-scheme.c +++ b/src/shared/netif-naming-scheme.c @@ -6,13 +6,6 @@ #include "string-util.h" #include "string-table.h" -#ifdef _DEFAULT_NET_NAMING_SCHEME_TEST -/* The primary purpose of this check is to verify that _DEFAULT_NET_NAMING_SCHEME_TEST - * is a valid identifier. If an invalid name is given during configuration, this will - * fail with a name error. */ -assert_cc(_DEFAULT_NET_NAMING_SCHEME_TEST >= 0); -#endif - static const NamingScheme naming_schemes[] = { { "v238", NAMING_V238 }, { "v239", NAMING_V239 }, diff --git a/src/test/test-net-naming-scheme.c b/src/test/test-net-naming-scheme.c index 0766170757e..f7ec5a6d72f 100644 --- a/src/test/test-net-naming-scheme.c +++ b/src/test/test-net-naming-scheme.c @@ -4,10 +4,19 @@ #include "string-util.h" #include "tests.h" +#ifdef _DEFAULT_NET_NAMING_SCHEME +/* The primary purpose of this check is to verify that _DEFAULT_NET_NAMING_SCHEME_TEST + * is a valid identifier. If an invalid name is given during configuration, this will + * fail with a name error. */ +assert_cc(_DEFAULT_NET_NAMING_SCHEME >= 0); +#endif + TEST(default_net_naming_scheme) { const NamingScheme *n; assert_se(n = naming_scheme_from_name(DEFAULT_NET_NAMING_SCHEME)); log_info("default → %s", n->name); + + assert_se(naming_scheme_from_name(n->name) == n); } TEST(naming_scheme_conversions) {