| 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 | |