attr.c 2.3 KB

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