From 44b8c71ed5d3f4f94b27218bb6dffd8de67faff5 Mon Sep 17 00:00:00 2001 From: Thomas Haller Date: Thu, 16 Sep 2021 16:50:14 +0200 Subject: [PATCH] initrd/tests: add more tests for "rd.ethtool" (test_rd_ethtool()) --- .../tests/test-cmdline-reader.c | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/src/nm-initrd-generator/tests/test-cmdline-reader.c b/src/nm-initrd-generator/tests/test-cmdline-reader.c index 63c29e3f0d..f2ad5470ff 100644 --- a/src/nm-initrd-generator/tests/test-cmdline-reader.c +++ b/src/nm-initrd-generator/tests/test-cmdline-reader.c @@ -2328,6 +2328,9 @@ test_rd_ethtool(void) _ethtool_check_inval("rd.ethtool=::"); _ethtool_check("rd.ethtool=eth0:on", TRUE, 0); + _ethtool_check("rd.ethtool=eth0:on:", TRUE, 0); + _ethtool_check("rd.ethtool=eth0:on::", TRUE, 0); + _ethtool_check("rd.ethtool=eth0:on:0:", TRUE, 0); _ethtool_check("rd.ethtool=eth0:off", FALSE, 0); @@ -2361,6 +2364,22 @@ test_rd_ethtool(void) "cmdline-reader: Invalid value for rd.ethtool.speed, rd.ethtool.speed was not set"); _ethtool_check("rd.ethtool=eth0::-23", FALSE, 0); + NMTST_EXPECT_NM_WARN( + "cmdline-reader: Invalid value for rd.ethtool.speed, rd.ethtool.speed was not set"); + _ethtool_check("rd.ethtool=eth0::-23:", FALSE, 0); + + NMTST_EXPECT_NM_WARN( + "cmdline-reader: Invalid value for rd.ethtool.speed, rd.ethtool.speed was not set"); + NMTST_EXPECT_NM_WARN( + "cmdline-reader: Invalid extra argument ':' for rd.ethtool, this value was not set"); + _ethtool_check("rd.ethtool=eth0::-23::", FALSE, 0); + + NMTST_EXPECT_NM_WARN( + "cmdline-reader: Invalid value for rd.ethtool.speed, rd.ethtool.speed was not set"); + NMTST_EXPECT_NM_WARN( + "cmdline-reader: Invalid extra argument ':foo' for rd.ethtool, this value was not set"); + _ethtool_check("rd.ethtool=eth0::-23::foo", FALSE, 0); + _ethtool_check("rd.ethtool=eth0:1:10", TRUE, 10); _ethtool_check("rd.ethtool=eth0::100", FALSE, 100); @@ -2379,6 +2398,18 @@ test_rd_ethtool(void) NMTST_EXPECT_NM_WARN("cmdline-reader: Impossible to set rd.ethtool options: invalid format"); _ethtool_check_inval("rd.ethtool=:::"); + + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:0", "rd.ethtool=eth0:on"), TRUE, 0); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:0", "rd.ethtool=eth0:off"), FALSE, 0); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:0", "rd.ethtool=eth0:on"), TRUE, 0); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:0", "rd.ethtool=eth0:off"), FALSE, 0); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:on"), TRUE, 100); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:off:100", "rd.ethtool=eth0:off"), FALSE, 100); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:100", "rd.ethtool=eth0:on"), TRUE, 100); + _ethtool_check_v(NM_MAKE_STRV("rd.ethtool=eth0:on:100", "rd.ethtool=eth0:off"), FALSE, 100); + + 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); } /*****************************************************************************/