diff options
author | Joe Hershberger | 2015-03-22 17:09:15 -0500 |
---|---|---|
committer | Simon Glass | 2015-04-18 11:11:12 -0600 |
commit | bfacad7da11711231ca59717c0a8bc7317c5bb28 (patch) | |
tree | 48d2e80b98adcae715ac40d95ac694d00c5ffb77 /test/dm | |
parent | d87a457be8f156ca6e775ffa785a96b0766d4e50 (diff) |
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>
Diffstat (limited to 'test/dm')
-rw-r--r-- | test/dm/Makefile | 1 | ||||
-rw-r--r-- | test/dm/eth.c | 38 | ||||
-rw-r--r-- | test/dm/test.dts | 18 |
3 files changed, 57 insertions, 0 deletions
diff --git a/test/dm/Makefile b/test/dm/Makefile index 82c0a0deff2..a2e2d2328e3 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 00000000000..04ccf498209 --- /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 96775e10ba0..762ddc3507e 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>; + }; + }; |