1 | //===-- ConversionTests.cpp --------------------------*- C++ -*-----------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | #include "xpc/Conversion.h" |
10 | #include "gtest/gtest.h" |
11 | |
12 | #include <limits> |
13 | |
14 | namespace clang { |
15 | namespace clangd { |
16 | namespace { |
17 | |
18 | using namespace llvm; |
19 | |
20 | TEST(JsonXpcConversionTest, JsonToXpcToJson) { |
21 | |
22 | for (auto &testcase : |
23 | {json::Value(false), json::Value(3.14), json::Value(42), |
24 | json::Value(-100), json::Value("foo" ), json::Value("" ), |
25 | json::Value("123" ), json::Value(" " ), |
26 | json::Value{true, "foo" , nullptr, 42}, |
27 | json::Value(json::Object{ |
28 | {.K: "a" , .V: true}, {.K: "b" , .V: "foo" }, {.K: "c" , .V: nullptr}, {.K: "d" , .V: 42}})}) { |
29 | EXPECT_TRUE(testcase == xpcToJson(jsonToXpc(testcase))) << testcase; |
30 | } |
31 | } |
32 | |
33 | } // namespace |
34 | } // namespace clangd |
35 | } // namespace clang |
36 | |