summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoe Hershberger <joe.hershberger@ni.com>2015-03-22 17:09:15 -0500
committerSimon Glass <sjg@chromium.org>2015-04-18 11:11:12 -0600
commitbfacad7da11711231ca59717c0a8bc7317c5bb28 (patch)
tree48d2e80b98adcae715ac40d95ac694d00c5ffb77
parentd87a457be8f156ca6e775ffa785a96b0766d4e50 (diff)
downloadu-boot-imx-bfacad7da11711231ca59717c0a8bc7317c5bb28.zip
u-boot-imx-bfacad7da11711231ca59717c0a8bc7317c5bb28.tar.gz
u-boot-imx-bfacad7da11711231ca59717c0a8bc7317c5bb28.tar.bz2
test: dm: eth: Add tests for the eth dm implementation
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@ni.com> Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r--test/dm/Makefile1
-rw-r--r--test/dm/eth.c38
-rw-r--r--test/dm/test.dts18
3 files changed, 57 insertions, 0 deletions
diff --git a/test/dm/Makefile b/test/dm/Makefile
index 82c0a0d..a2e2d23 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_PCI) += pci.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@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@10002000");
+ ut_assertok(NetLoop(PING));
+ ut_asserteq_str("eth@10002000", getenv("ethact"));
+
+ setenv("ethact", "eth@10003000");
+ ut_assertok(NetLoop(PING));
+ ut_asserteq_str("eth@10003000", getenv("ethact"));
+
+ setenv("ethact", "eth@10004000");
+ ut_assertok(NetLoop(PING));
+ ut_asserteq_str("eth@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 96775e1..762ddc3 100644
--- a/test/dm/test.dts
+++ b/test/dm/test.dts
@@ -166,4 +166,22 @@
};
};
+ eth@10002000 {
+ compatible = "sandbox,eth";
+ reg = <0x10002000 0x1000>;
+ fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x00>;
+ };
+
+ eth@10003000 {
+ compatible = "sandbox,eth";
+ reg = <0x10003000 0x1000>;
+ fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x11>;
+ };
+
+ eth@10004000 {
+ compatible = "sandbox,eth";
+ reg = <0x10004000 0x1000>;
+ fake-host-hwaddr = <0x00 0x00 0x66 0x44 0x22 0x22>;
+ };
+
};