summaryrefslogtreecommitdiffstats
path: root/test/string_view_test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'test/string_view_test.cpp')
-rw-r--r--test/string_view_test.cpp49
1 files changed, 49 insertions, 0 deletions
diff --git a/test/string_view_test.cpp b/test/string_view_test.cpp
new file mode 100644
index 0000000..33a8bc4
--- /dev/null
+++ b/test/string_view_test.cpp
@@ -0,0 +1,49 @@
+#include <opentracing/string_view.h> // test include guard
+#include <opentracing/string_view.h>
+
+#define CATCH_CONFIG_MAIN
+#include <opentracing/catch2/catch.hpp>
+
+using namespace opentracing;
+
+TEST_CASE("string_view") {
+ SECTION("A default-constructed string_view is empty.") {
+ string_view ref;
+ CHECK(nullptr == ref.data());
+ CHECK(0 == ref.length());
+ }
+
+ SECTION("string_view can be initialized from a c-string.") {
+ const char* val = "hello world";
+
+ string_view ref(val);
+
+ CHECK(val == ref.data());
+ CHECK(std::strlen(val) == ref.length());
+ }
+
+ SECTION("string_view can be initialized from an std::string.") {
+ const std::string val = "hello world";
+
+ string_view ref(val);
+
+ CHECK(val == ref.data());
+ CHECK(val.length() == ref.length());
+ }
+
+ SECTION("A copied string_view points to the same data as its source.") {
+ const std::string val = "hello world";
+
+ string_view ref(val);
+ string_view cpy(ref);
+
+ CHECK(val == cpy.data());
+ CHECK(val.length() == cpy.length());
+ }
+
+ SECTION("operator[] can be used to access characters in a string_view") {
+ string_view s = "abc123";
+ CHECK(&s[0] == s.data());
+ CHECK(&s[1] == s.data() + 1);
+ }
+}