]> git.proxmox.com Git - ceph.git/blame - ceph/src/boost/libs/json/test/natvis.cpp
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / boost / libs / json / test / natvis.cpp
CommitLineData
20effc67
TL
1//
2// Copyright (c) 2019 Vinnie Falco (vinnie.falco@gmail.com)
3//
4// Distributed under the Boost Software License, Version 1.0. (See accompanying
5// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6//
7// Official repository: https://github.com/boostorg/json
8//
9
10#include <boost/json/value.hpp>
11
12#include <boost/json/monotonic_resource.hpp>
13#include <boost/json/static_resource.hpp>
14
15#include "test_suite.hpp"
16
17BOOST_JSON_NS_BEGIN
18
19class natvis_test
20{
21public:
22 static
23 value
24 make_key(string_view s)
25 {
26 value jv;
27 detail::access::construct_value(
28 &jv, s, storage_ptr());
29 return jv;
30 }
31
32 void
33 run()
34 {
35 // These variables may be inspected in the
36 // Visual Studio IDE to verify that the .natvis
37 // file is working correctly
38
39 value jv0 = nullptr;
40 value jv1 = true;
41 value jv2 = -1;
42 value jv3 = 42u;
43 value jv4 = 3.141;
44 value jv5 = "string";
45 value jv6 = make_key("key");
46 value jv7 = "dynamically-allocated-string";
47 value jv8 = { 1, 2, 3 };
48 value jv9 = { {"a",1}, {"b",2}, {"c",3} };
49
50 string& x0 = jv5.get_string(); (void)x0;
51 string& x1 = jv6.get_string(); (void)x1;
52 string& x2 = jv7.get_string(); (void)x2;
53 array& x3 = jv8.get_array(); (void)x3;
54 object& x4 = jv9.get_object(); (void)x4;
55
56 array y0;
57 y0.emplace_back(jv0);
58 y0.emplace_back(jv1);
59 y0.emplace_back(jv2);
60 y0.emplace_back(jv4);
61 y0.emplace_back(jv5);
62 y0.emplace_back(jv6);
63 y0.emplace_back(jv7);
64 y0.emplace_back(jv8);
65 y0.emplace_back(jv9);
66
67 object y1;
68 y1.emplace("a", jv0);
69 y1.emplace("b", jv1);
70 y1.emplace("c", jv2);
71 y1.emplace("d", jv4);
72 y1.emplace("f", jv5);
73 y1.emplace("g", jv6);
74 y1.emplace("h", jv7);
75 y1.emplace("i", jv8);
76 y1.emplace("j", jv9);
77
78 key_value_pair& z0 = y1.begin()[0]; (void)z0;
79 key_value_pair& z1 = y1.begin()[1]; (void)z1;
80 key_value_pair& z2 = y1.begin()[2]; (void)z2;
81 key_value_pair& z3 = y1.begin()[3]; (void)z3;
82 key_value_pair& z4 = y1.begin()[4]; (void)z4;
83 key_value_pair& z5 = y1.begin()[5]; (void)z5;
84 key_value_pair& z6 = y1.begin()[6]; (void)z6;
85 key_value_pair& z7 = y1.begin()[7]; (void)z7;
86 key_value_pair& z8 = y1.begin()[8]; (void)z8;
87
88 {
89 auto sp = y1.storage();
90 }
91 {
92 unsigned char buf[1024];
93 storage_ptr sp;
94 sp = make_shared_resource<
95 monotonic_resource>();
96 sp = make_shared_resource<
97 static_resource>(buf);
98 sp = {};
99 }
100 {
101 unsigned char buf[1024];
102 monotonic_resource mr1;
103 static_resource mr2(buf);
104 storage_ptr sp;
1e59de90 105
20effc67
TL
106 sp = &mr1;
107 sp = &mr2;
108 sp = {};
109 }
110 }
111};
112
113TEST_SUITE(natvis_test, "json.natvis");
114
115BOOST_JSON_NS_END