xref: /openbmc/u-boot/test/env/attr.c (revision b04d3553)
1*b04d3553SJoe Hershberger /*
2*b04d3553SJoe Hershberger  * (C) Copyright 2015
3*b04d3553SJoe Hershberger  * Joe Hershberger, National Instruments, joe.hershberger@ni.com
4*b04d3553SJoe Hershberger  *
5*b04d3553SJoe Hershberger  * SPDX-License-Identifier:	GPL-2.0
6*b04d3553SJoe Hershberger  */
7*b04d3553SJoe Hershberger 
8*b04d3553SJoe Hershberger #include <common.h>
9*b04d3553SJoe Hershberger #include <command.h>
10*b04d3553SJoe Hershberger #include <env_attr.h>
11*b04d3553SJoe Hershberger #include <test/env.h>
12*b04d3553SJoe Hershberger #include <test/ut.h>
13*b04d3553SJoe Hershberger 
14*b04d3553SJoe Hershberger static int env_test_attrs_lookup(struct unit_test_state *uts)
15*b04d3553SJoe Hershberger {
16*b04d3553SJoe Hershberger 	char attrs[32];
17*b04d3553SJoe Hershberger 
18*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup("foo:bar", "foo", attrs));
19*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
20*b04d3553SJoe Hershberger 
21*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(",foo:bar", "foo", attrs));
22*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
23*b04d3553SJoe Hershberger 
24*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(",foo:bar,", "foo", attrs));
25*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
26*b04d3553SJoe Hershberger 
27*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(" foo:bar", "foo", attrs));
28*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
29*b04d3553SJoe Hershberger 
30*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup("foo : bar", "foo", attrs));
31*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
32*b04d3553SJoe Hershberger 
33*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(" foo: bar ", "foo", attrs));
34*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
35*b04d3553SJoe Hershberger 
36*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup("foo:bar ", "foo", attrs));
37*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
38*b04d3553SJoe Hershberger 
39*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(",foo:bar,goo:baz", "foo", attrs));
40*b04d3553SJoe Hershberger 	ut_asserteq_str("bar", attrs);
41*b04d3553SJoe Hershberger 
42*b04d3553SJoe Hershberger 	ut_asserteq(-ENOENT, env_attr_lookup(",,", "foo", attrs));
43*b04d3553SJoe Hershberger 
44*b04d3553SJoe Hershberger 	ut_asserteq(-ENOENT, env_attr_lookup("goo:baz", "foo", attrs));
45*b04d3553SJoe Hershberger 
46*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup("foo:bar,foo:bat,foo:baz", "foo", attrs));
47*b04d3553SJoe Hershberger 	ut_asserteq_str("baz", attrs);
48*b04d3553SJoe Hershberger 
49*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(
50*b04d3553SJoe Hershberger 		" foo : bar , foo : bat , foot : baz ", "foo", attrs));
51*b04d3553SJoe Hershberger 	ut_asserteq_str("bat", attrs);
52*b04d3553SJoe Hershberger 
53*b04d3553SJoe Hershberger 	ut_assertok(env_attr_lookup(
54*b04d3553SJoe Hershberger 		" foo : bar , foo : bat , ufoo : baz ", "foo", attrs));
55*b04d3553SJoe Hershberger 	ut_asserteq_str("bat", attrs);
56*b04d3553SJoe Hershberger 
57*b04d3553SJoe Hershberger 	ut_asserteq(-EINVAL, env_attr_lookup(NULL, "foo", attrs));
58*b04d3553SJoe Hershberger 	ut_asserteq(-EINVAL, env_attr_lookup("foo:bar", "foo", NULL));
59*b04d3553SJoe Hershberger 
60*b04d3553SJoe Hershberger 	return 0;
61*b04d3553SJoe Hershberger }
62*b04d3553SJoe Hershberger ENV_TEST(env_test_attrs_lookup, 0);
63