test: dm: net: Add a test of the netretry behavior

The effect of the "netretry" env var was recently changed. This test
checks that behavior.

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 2eede1f363
commit 7ece1c61ad
  1. 32
      test/dm/eth.c

@ -14,6 +14,7 @@
#include <fdtdec.h>
#include <malloc.h>
#include <net.h>
#include <asm/eth.h>
DECLARE_GLOBAL_DATA_PTR;
@ -122,3 +123,34 @@ static int dm_test_eth_rotate(struct dm_test_state *dms)
return 0;
}
DM_TEST(dm_test_eth_rotate, DM_TESTF_SCAN_FDT);
static int dm_test_net_retry(struct dm_test_state *dms)
{
NetPingIP = string_to_ip("1.1.2.2");
/*
* eth1 is disabled and netretry is yes, so the ping should succeed and
* the active device should be eth0
*/
sandbox_eth_disable_response(1, true);
setenv("ethact", "eth@10004000");
setenv("netretry", "yes");
ut_assertok(NetLoop(PING));
ut_asserteq_str("eth@10002000", getenv("ethact"));
/*
* eth1 is disabled and netretry is no, so the ping should fail and the
* active device should be eth1
*/
setenv("ethact", "eth@10004000");
setenv("netretry", "no");
ut_asserteq(-1, NetLoop(PING));
ut_asserteq_str("eth@10004000", getenv("ethact"));
/* Restore the env */
setenv("netretry", NULL);
sandbox_eth_disable_response(1, false);
return 0;
}
DM_TEST(dm_test_net_retry, DM_TESTF_SCAN_FDT);

Loading…
Cancel
Save