[U-Boot] [PATCH v7 18/27] test: dm: eth: Add tests for the eth dm implementation

Joe Hershberger joe.hershberger at ni.com
Sun Mar 22 23:09:15 CET 2015


Add a test for the eth uclass using the sandbox eth driver. Verify basic
functionality of the network stack / eth uclass by exercising the ping
function.

Signed-off-by: Joe Hershberger <joe.hershberger at ni.com>
Reviewed-by: Simon Glass <sjg at chromium.org>

---

Changes in v7: None
Changes in v6: None
Changes in v5: None
Changes in v4: None
Changes in v3:
-Added dm eth testing

Changes in v2: None

 test/dm/Makefile |  1 +
 test/dm/eth.c    | 38 ++++++++++++++++++++++++++++++++++++++
 test/dm/test.dts | 18 ++++++++++++++++++
 3 files changed, 57 insertions(+)
 create mode 100644 test/dm/eth.c

diff --git a/test/dm/Makefile b/test/dm/Makefile
index 1d9148f..b2eb989 100644
--- a/test/dm/Makefile
+++ b/test/dm/Makefile
@@ -17,6 +17,7 @@ obj-$(CONFIG_DM_TEST) += ut.o
 obj-$(CONFIG_DM_TEST) += core.o
 obj-$(CONFIG_DM_TEST) += ut.o
 ifneq ($(CONFIG_SANDBOX),)
+obj-$(CONFIG_DM_ETH) += eth.o
 obj-$(CONFIG_DM_GPIO) += gpio.o
 obj-$(CONFIG_DM_I2C) += i2c.o
 obj-$(CONFIG_DM_SPI_FLASH) += sf.o
diff --git a/test/dm/eth.c b/test/dm/eth.c
new file mode 100644
index 0000000..04ccf49
--- /dev/null
+++ b/test/dm/eth.c
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2015 National Instruments
+ *
+ * (C) Copyright 2015
+ * Joe Hershberger <joe.hershberger at ni.com>
+ *
+ * SPDX-License-Identifier:	GPL-2.0
+ */
+
+#include <common.h>
+#include <dm.h>
+#include <dm/test.h>
+#include <dm/ut.h>
+#include <fdtdec.h>
+#include <malloc.h>
+#include <net.h>
+
+DECLARE_GLOBAL_DATA_PTR;
+
+static int dm_test_eth(struct dm_test_state *dms)
+{
+	NetPingIP = string_to_ip("1.1.2.2");
+
+	setenv("ethact", "eth at 10002000");
+	ut_assertok(NetLoop(PING));
+	ut_asserteq_str("eth at 10002000", getenv("ethact"));
+
+	setenv("ethact", "eth at 10003000");
+	ut_assertok(NetLoop(PING));
+	ut_asserteq_str("eth at 10003000", getenv("ethact"));
+
+	setenv("ethact", "eth at 10004000");
+	ut_assertok(NetLoop(PING));
+	ut_asserteq_str("eth at 10004000", getenv("ethact"));
+
+	return 0;
+}
+DM_TEST(dm_test_eth, DM_TESTF_SCAN_FDT);
diff --git a/test/dm/test.dts b/test/dm/test.dts
index 84024a4..2f68cdf 100644
--- a/test/dm/test.dts
+++ b/test/dm/test.dts
@@ -149,4 +149,22 @@
 		};
 	};
 
+	eth at 10002000 {
+		compatible = "sandbox,eth";
+		reg = <0x10002000 0x1000>;
+		fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x00>;
+	};
+
+	eth at 10003000 {
+		compatible = "sandbox,eth";
+		reg = <0x10003000 0x1000>;
+		fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x11>;
+	};
+
+	eth at 10004000 {
+		compatible = "sandbox,eth";
+		reg = <0x10004000 0x1000>;
+		fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x22>;
+	};
+
 };
-- 
1.7.11.5



More information about the U-Boot mailing list