string_util_test.cc 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright The OpenTelemetry Authors
  2. // SPDX-License-Identifier: Apache-2.0
  3. #include <gtest/gtest.h>
  4. #include <string.h>
  5. #include <opentelemetry/common/string_util.h>
  6. // ------------------------- StringUtil class tests ---------------------------------
  7. using opentelemetry::common::StringUtil;
  8. TEST(StringUtilTest, TrimStringWithIndex)
  9. {
  10. struct
  11. {
  12. const char *input;
  13. const char *expected;
  14. } testcases[] = {{"k1=v1", "k1=v1"}, {"k1=v1,k2=v2, k3=v3", "k1=v1,k2=v2, k3=v3"},
  15. {" k1=v1", "k1=v1"}, {"k1=v1 ", "k1=v1"},
  16. {" k1=v1 ", "k1=v1"}, {" ", ""}};
  17. for (auto &testcase : testcases)
  18. {
  19. EXPECT_EQ(StringUtil::Trim(testcase.input, 0, strlen(testcase.input) - 1), testcase.expected);
  20. }
  21. }
  22. TEST(StringUtilTest, TrimString)
  23. {
  24. struct
  25. {
  26. const char *input;
  27. const char *expected;
  28. } testcases[] = {{"k1=v1", "k1=v1"},
  29. {"k1=v1,k2=v2, k3=v3", "k1=v1,k2=v2, k3=v3"},
  30. {" k1=v1", "k1=v1"},
  31. {"k1=v1 ", "k1=v1"},
  32. {"k1=v1\t", "k1=v1"},
  33. {"\t k1=v1 \t", "k1=v1"},
  34. {"\t\t k1=v1\t ", "k1=v1"},
  35. {"\t\t k1=v1\t ,k2=v2", "k1=v1\t ,k2=v2"},
  36. {" k1=v1 ", "k1=v1"},
  37. {" ", ""},
  38. {"", ""},
  39. {"\n_some string_\t", "_some string_"}};
  40. for (auto &testcase : testcases)
  41. {
  42. EXPECT_EQ(StringUtil::Trim(testcase.input), testcase.expected);
  43. }
  44. }