summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2021-09-16 16:50:15 +0200
committerThomas Haller <thaller@redhat.com>2021-09-21 08:29:46 +0200
commit44e484a6aa14c388c28750df2cb26b4810b3b399 (patch)
tree9b32c0cbce2c14f9b0aabd7f0bccd406eb4c7ee9
parent0e384b017053bc513857ff03ced0917c0defd274 (diff)
downloadNetworkManager-44e484a6aa14c388c28750df2cb26b4810b3b399.tar.gz
initrd: refactor parsing of "rd.ethtool=" to accept zero positional arguments
The point of positional arguments is that you can omit them, and that should be treated as the parameter being set to the default. So, don't treat "rd.ethtool=eth0" (or "rd.ethtool=eth0:") special. Just continue the parsing and take all following positional arguments as unset.
-rw-r--r--src/nm-initrd-generator/nmi-cmdline-reader.c5
-rw-r--r--src/nm-initrd-generator/tests/test-cmdline-reader.c10
2 files changed, 3 insertions, 12 deletions
diff --git a/src/nm-initrd-generator/nmi-cmdline-reader.c b/src/nm-initrd-generator/nmi-cmdline-reader.c
index 367962d99d..f6aa87b924 100644
--- a/src/nm-initrd-generator/nmi-cmdline-reader.c
+++ b/src/nm-initrd-generator/nmi-cmdline-reader.c
@@ -1187,11 +1187,6 @@ reader_parse_ethtool(Reader *reader, char *argument)
return;
}
- if (!*argument) {
- _LOGW(LOGD_CORE, "Could not find rd.ethtool options to set");
- return;
- }
-
autoneg_str = get_word(&argument, ':');
speed_str = get_word(&argument, ':');
diff --git a/src/nm-initrd-generator/tests/test-cmdline-reader.c b/src/nm-initrd-generator/tests/test-cmdline-reader.c
index ccdb8ab7be..6f747fed1a 100644
--- a/src/nm-initrd-generator/tests/test-cmdline-reader.c
+++ b/src/nm-initrd-generator/tests/test-cmdline-reader.c
@@ -2318,11 +2318,9 @@ test_rd_ethtool(void)
NMTST_EXPECT_NM_WARN("cmdline-reader: Impossible to set rd.ethtool options: invalid format");
_ethtool_check_inval("rd.ethtool=");
- NMTST_EXPECT_NM_WARN("cmdline-reader: Could not find rd.ethtool options to set");
- _ethtool_check_inval("rd.ethtool=eth0");
+ _ethtool_check("rd.ethtool=eth0", FALSE, 0);
- NMTST_EXPECT_NM_WARN("cmdline-reader: Could not find rd.ethtool options to set");
- _ethtool_check_inval("rd.ethtool=eth0:");
+ _ethtool_check("rd.ethtool=eth0:", FALSE, 0);
NMTST_EXPECT_NM_WARN("cmdline-reader: Impossible to set rd.ethtool options: invalid format");
_ethtool_check_inval("rd.ethtool=::");
@@ -2407,9 +2405,7 @@ test_rd_ethtool(void)
_ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:off"), FALSE, 0);
_ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:100", "rd.ethtool=eth0:on"), TRUE, 0);
_ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:100", "rd.ethtool=eth0:off"), FALSE, 0);
-
- NMTST_EXPECT_NM_WARN("cmdline-reader: Could not find rd.ethtool options to set");
- _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:"), FALSE, 100);
+ _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:"), FALSE, 0);
}
/*****************************************************************************/