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>
master
Joe Hershberger 9 years ago committed by Simon Glass
parent d87a457be8
commit bfacad7da1
  1. 1
      test/dm/Makefile
  2. 38
      test/dm/eth.c
  3. 18
      test/dm/test.dts

@ -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

@ -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);

@ -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>;
};
};

Loading…
Cancel
Save