xref: /llvm-project/clang-tools-extra/clangd/unittests/tweaks/DumpRecordLayoutTests.cpp (revision 4b76ba887c04458367c37eb3458cbd113475c27f)
15934a791SAdam Czachorowski //===-- DumpRecordLayoutTests.cpp -------------------------------*- C++ -*-===//
25934a791SAdam Czachorowski //
35934a791SAdam Czachorowski // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45934a791SAdam Czachorowski // See https://llvm.org/LICENSE.txt for license information.
55934a791SAdam Czachorowski // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65934a791SAdam Czachorowski //
75934a791SAdam Czachorowski //===----------------------------------------------------------------------===//
85934a791SAdam Czachorowski 
95934a791SAdam Czachorowski #include "TweakTesting.h"
105934a791SAdam Czachorowski #include "gmock/gmock.h"
115934a791SAdam Czachorowski #include "gtest/gtest.h"
125934a791SAdam Czachorowski 
135934a791SAdam Czachorowski using ::testing::AllOf;
145934a791SAdam Czachorowski using ::testing::HasSubstr;
155934a791SAdam Czachorowski using ::testing::StartsWith;
165934a791SAdam Czachorowski 
175934a791SAdam Czachorowski namespace clang {
185934a791SAdam Czachorowski namespace clangd {
195934a791SAdam Czachorowski namespace {
205934a791SAdam Czachorowski 
215934a791SAdam Czachorowski TWEAK_TEST(DumpRecordLayout);
225934a791SAdam Czachorowski 
TEST_F(DumpRecordLayoutTest,Test)235934a791SAdam Czachorowski TEST_F(DumpRecordLayoutTest, Test) {
245934a791SAdam Czachorowski   EXPECT_AVAILABLE("^s^truct ^X ^{ int x; ^};");
25*4b76ba88SSam McCall   EXPECT_UNAVAILABLE("struct X { int ^a; };");
26*4b76ba88SSam McCall   EXPECT_UNAVAILABLE("struct ^X;");
27*4b76ba88SSam McCall   EXPECT_UNAVAILABLE("template <typename T> struct ^X { T t; };");
28*4b76ba88SSam McCall   EXPECT_UNAVAILABLE("enum ^X {};");
295934a791SAdam Czachorowski 
305934a791SAdam Czachorowski   EXPECT_THAT(apply("struct ^X { int x; int y; };"),
315934a791SAdam Czachorowski               AllOf(StartsWith("message:"), HasSubstr("0 |   int x")));
325934a791SAdam Czachorowski }
335934a791SAdam Czachorowski 
345934a791SAdam Czachorowski } // namespace
355934a791SAdam Czachorowski } // namespace clangd
365934a791SAdam Czachorowski } // namespace clang
37