test: dm: eth: Add tests for the eth dm implementation
authorJoe Hershberger <joe.hershberger@ni.com>
Sun, 22 Mar 2015 22:09:15 +0000 (17:09 -0500)
committerSimon Glass <sjg@chromium.org>
Sat, 18 Apr 2015 17:11:12 +0000 (11:11 -0600)
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>
test/dm/Makefile
test/dm/eth.c [new file with mode: 0644]
test/dm/test.dts

index 82c0a0deff25a1a5e825eb795d9924036e2e7103..a2e2d2328e3c27136b6858ea58a7f5d9dfa3c42a 100644 (file)
@@ -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 (file)
index 0000000..04ccf49
--- /dev/null
@@ -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);
index 96775e10ba0c396fff52ee6497a6c427ddb479da..762ddc3507efa5d98ca34bc2e3e8bce6a9ba899c 100644 (file)
                };
        };
 
+       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>;
+       };
+
 };