test: eth: Add test for ethernet addresses
authorSean Anderson <sean.anderson@seco.com>
Thu, 5 May 2022 17:11:32 +0000 (13:11 -0400)
committerTom Rini <trini@konsulko.com>
Wed, 8 Jun 2022 17:59:52 +0000 (13:59 -0400)
This adds a test to make sure that all the ethernet interfaces have
their addresses read properly. At the moment everything is read from the
environment, but the next few commits will add additional sources.

Signed-off-by: Sean Anderson <sean.anderson@seco.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
test/dm/eth.c

index e4ee695610646871e1ae48c91c05338f7e40fdd6..5437f9ea4a07492cbb79cbc1f38d7e6fca99b630 100644 (file)
@@ -147,6 +147,35 @@ static int dm_test_eth_act(struct unit_test_state *uts)
 }
 DM_TEST(dm_test_eth_act, UT_TESTF_SCAN_FDT);
 
+/* Ensure that all addresses are loaded properly */
+static int dm_test_ethaddr(struct unit_test_state *uts)
+{
+       static const char *const addr[] = {
+               "02:00:11:22:33:44",
+               "02:00:11:22:33:48", /* dsa slave */
+               "02:00:11:22:33:45",
+               "02:00:11:22:33:48", /* dsa master */
+               "02:00:11:22:33:46",
+               "02:00:11:22:33:47",
+               "02:00:11:22:33:48", /* dsa slave */
+               "02:00:11:22:33:49",
+       };
+       int i;
+
+       for (i = 0; i < ARRAY_SIZE(addr); i++) {
+               char addrname[10];
+
+               if (i)
+                       snprintf(addrname, sizeof(addrname), "eth%daddr", i + 1);
+               else
+                       strcpy(addrname, "ethaddr");
+               ut_asserteq_str(addr[i], env_get(addrname));
+       }
+
+       return 0;
+}
+DM_TEST(dm_test_ethaddr, UT_TESTF_SCAN_FDT);
+
 /* The asserts include a return on fail; cleanup in the caller */
 static int _dm_test_eth_rotate1(struct unit_test_state *uts)
 {