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 5b6b928276..77684b5caf 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 7fe19d4877..fbaf5c5a60 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 0766170757..f7ec5a6d72 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) {