blob: 96e3c46ea6991725360b3ca612152a28649278c4 [file] [log] [blame]
Joe Hershbergerbfacad72015-03-22 17:09:15 -05001/*
2 * Copyright (c) 2015 National Instruments
3 *
4 * (C) Copyright 2015
5 * Joe Hershberger <joe.hershberger@ni.com>
6 *
7 * SPDX-License-Identifier: GPL-2.0
8 */
9
10#include <common.h>
11#include <dm.h>
12#include <dm/test.h>
13#include <dm/ut.h>
14#include <fdtdec.h>
15#include <malloc.h>
16#include <net.h>
17
18DECLARE_GLOBAL_DATA_PTR;
19
20static int dm_test_eth(struct dm_test_state *dms)
21{
22 NetPingIP = string_to_ip("1.1.2.2");
23
24 setenv("ethact", "eth@10002000");
25 ut_assertok(NetLoop(PING));
26 ut_asserteq_str("eth@10002000", getenv("ethact"));
27
28 setenv("ethact", "eth@10003000");
29 ut_assertok(NetLoop(PING));
30 ut_asserteq_str("eth@10003000", getenv("ethact"));
31
32 setenv("ethact", "eth@10004000");
33 ut_assertok(NetLoop(PING));
34 ut_asserteq_str("eth@10004000", getenv("ethact"));
35
36 return 0;
37}
38DM_TEST(dm_test_eth, DM_TESTF_SCAN_FDT);
Joe Hershbergere58780d2015-03-22 17:09:16 -050039
40static int dm_test_eth_alias(struct dm_test_state *dms)
41{
42 NetPingIP = string_to_ip("1.1.2.2");
43 setenv("ethact", "eth0");
44 ut_assertok(NetLoop(PING));
45 ut_asserteq_str("eth@10002000", getenv("ethact"));
46
47 setenv("ethact", "eth1");
48 ut_assertok(NetLoop(PING));
49 ut_asserteq_str("eth@10004000", getenv("ethact"));
50
51 /* Expected to fail since eth2 is not defined in the device tree */
52 setenv("ethact", "eth2");
53 ut_assertok(NetLoop(PING));
54 ut_asserteq_str("eth@10002000", getenv("ethact"));
55
56 setenv("ethact", "eth5");
57 ut_assertok(NetLoop(PING));
58 ut_asserteq_str("eth@10003000", getenv("ethact"));
59
60 return 0;
61}
62DM_TEST(dm_test_eth_alias, DM_TESTF_SCAN_FDT);
Joe Hershberger6536b9b2015-03-22 17:09:17 -050063
64static int dm_test_eth_prime(struct dm_test_state *dms)
65{
66 NetPingIP = string_to_ip("1.1.2.2");
67
68 /* Expected to be "eth@10003000" because of ethprime variable */
69 setenv("ethact", NULL);
70 setenv("ethprime", "eth5");
71 ut_assertok(NetLoop(PING));
72 ut_asserteq_str("eth@10003000", getenv("ethact"));
73
74 /* Expected to be "eth@10002000" because it is first */
75 setenv("ethact", NULL);
76 setenv("ethprime", NULL);
77 ut_assertok(NetLoop(PING));
78 ut_asserteq_str("eth@10002000", getenv("ethact"));
79
80 return 0;
81}
82DM_TEST(dm_test_eth_prime, DM_TESTF_SCAN_FDT);