]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentracing-cpp/test/value_test.cpp
update source to Ceph Pacific 16.2.2
[ceph.git] / ceph / src / jaegertracing / opentracing-cpp / test / value_test.cpp
1 #include <opentracing/value.h>
2 using namespace opentracing;
3
4 #define CATCH_CONFIG_MAIN
5 #include <opentracing/catch2/catch.hpp>
6
7 TEST_CASE("Value") {
8 SECTION("Signed integers get converted to int64_t.") {
9 Value v1(123);
10 CHECK(v1.is<int64_t>());
11
12 Value v2(static_cast<short>(123));
13 CHECK(v2.is<int64_t>());
14 }
15
16 SECTION("Unsigned integers get converted to uint64_t.") {
17 Value v1(123u);
18 CHECK(v1.is<uint64_t>());
19
20 Value v2(static_cast<unsigned short>(123));
21 CHECK(v2.is<uint64_t>());
22 }
23
24 SECTION("Bool values are deduced as bool.") {
25 Value v1(true);
26 // Workaround for "disabled expansion of recursive macro" warning.
27 const auto is_bool = v1.is<bool>();
28 CHECK(is_bool);
29 }
30
31 SECTION("Floating point numbers are converted to double.") {
32 Value v1(1.0);
33 CHECK(v1.is<double>());
34 Value v2(1.0f);
35 CHECK(v2.is<double>());
36 }
37
38 SECTION("std::string values are deduced as std::string.") {
39 Value v1(std::string("abc"));
40 CHECK(v1.is<std::string>());
41 }
42
43 SECTION("c-string values are deduced as c-strings.") {
44 Value v1("abc");
45 CHECK(v1.is<const char*>());
46 }
47
48 SECTION("Complex values are permitted.") {
49 Value v1(Values{Value(1), Value(2)});
50 (void)v1;
51
52 Value v2(Dictionary{{"abc", Value(123)}});
53 (void)v2;
54 }
55
56 SECTION("Value types can be compared for equality.") {
57 Value v1{1}, v2{2}, v3{1.0};
58 CHECK(v1 == v1);
59 CHECK(v1 != v2);
60 CHECK(v1 != v3);
61 }
62 }