Lines Matching +full:llvm +full:- +full:project
1 //===--- MarshallingTests.cpp ------------------------------------*- C++-*-===//
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
7 //===----------------------------------------------------------------------===//
22 #include "llvm/ADT/SmallString.h"
23 #include "llvm/ADT/StringRef.h"
24 #include "llvm/ADT/Twine.h"
25 #include "llvm/Support/Error.h"
26 #include "llvm/Support/Path.h"
27 #include "llvm/Support/StringSaver.h"
37 using llvm::sys::path::convert_to_slash;
39 const char *testPathURI(llvm::StringRef Path, in testPathURI()
40 llvm::UniqueStringSaver &Strings) { in testPathURI()
45 clangd::Symbol createSymbol(llvm::StringRef PathPrefix, in createSymbol()
46 llvm::UniqueStringSaver &Strings) { in createSymbol()
48 Sym.ID = llvm::cantFail(SymbolID::fromStr("057557CEBF6E6B2D")); in createSymbol()
59 Sym.Scope = Strings.save("llvm::foo::bar::"); in createSymbol()
91 llvm::BumpPtrAllocator Arena; in TEST()
92 llvm::UniqueStringSaver Strings(Arena); in TEST()
94 testPath("remote/machine/projects/llvm-project/"), in TEST()
95 testPath("home/my-projects/llvm-project/")); in TEST()
98 testPathURI("remote/machine/projects/llvm-project/clang-tools-extra/" in TEST()
103 EXPECT_EQ(Serialized->location().file_path(), in TEST()
104 "clang-tools-extra/clangd/unittests/remote/MarshallingTests.cpp"); in TEST()
107 EXPECT_STREQ(Deserialized->Location.FileURI, in TEST()
108 testPathURI("home/my-projects/llvm-project/clang-tools-extra/" in TEST()
113 *Serialized->mutable_location()->mutable_file_path() = std::string(); in TEST()
116 llvm::consumeError(Deserialized.takeError()); in TEST()
123 llvm::consumeError(DeserializedRef.takeError()); in TEST()
127 URI::create(testPath("project/lib/HelloWorld.cpp"), "unittest"); in TEST()
130 Strings.save(UnittestURI->toString()).begin(); in TEST()
133 llvm::consumeError(DeserializedSymbol.takeError()); in TEST()
138 *WithAbsolutePath.mutable_location()->mutable_file_path() = in TEST()
142 llvm::consumeError(Deserialized.takeError()); in TEST()
146 llvm::BumpPtrAllocator Arena; in TEST()
147 llvm::UniqueStringSaver Strings(Arena); in TEST()
152 // Check that symbols are exactly the same if the path to indexed project is in TEST()
162 EXPECT_EQ(convert_to_slash(Serialized->definition().file_path(), in TEST()
163 llvm::sys::path::Style::posix), in TEST()
164 Serialized->definition().file_path()); in TEST()
166 llvm::sys::path::is_relative(Serialized->definition().file_path())); in TEST()
175 *Serialized->mutable_canonical_declaration()->mutable_file_path() = in TEST()
179 llvm::consumeError(Deserialized.takeError()); in TEST()
185 llvm::consumeError(Serialized.takeError()); in TEST()
190 Sym.Definition.FileURI = Strings.save(UnittestURI->toString()).begin(); in TEST()
193 llvm::consumeError(Serialized.takeError()); in TEST()
202 EXPECT_STREQ(Deserialized->Definition.FileURI, in TEST()
208 llvm::consumeError(Serialized.takeError()); in TEST()
215 llvm::BumpPtrAllocator Arena; in TEST()
216 llvm::UniqueStringSaver Strings(Arena); in TEST()
224 "llvm-project/llvm/clang-tools-extra/clangd/Protocol.h", Strings); in TEST()
227 Marshaller ProtobufMarshaller(testPath("llvm-project/"), in TEST()
228 testPath("llvm-project/")); in TEST()
238 llvm::BumpPtrAllocator Arena; in TEST()
239 llvm::UniqueStringSaver Strings(Arena); in TEST()
246 Strings.save(URI::createFile(testPath("project/Header.h")).toString()); in TEST()
260 EXPECT_EQ(static_cast<size_t>(Serialized->headers_size()), in TEST()
268 Header.IncludeHeader = Strings.save(testPath("project/include/Common.h")); in TEST()
273 llvm::consumeError(Serialized.takeError()); in TEST()
283 llvm::consumeError(Serialized.takeError()); in TEST()
292 *Serialized->add_headers() = InvalidHeader; in TEST()
295 llvm::consumeError(Deserialized.takeError()); in TEST()
300 Request.IDs.insert(llvm::cantFail(SymbolID::fromStr("0000000000000001"))); in TEST()
301 Request.IDs.insert(llvm::cantFail(SymbolID::fromStr("0000000000000002"))); in TEST()
309 EXPECT_EQ(Deserialized->IDs, Request.IDs); in TEST()
319 llvm::consumeError(Deserialized.takeError()); in TEST()
332 EXPECT_THAT(Deserialized->ProximityPaths, in TEST()
339 Request.IDs.insert(llvm::cantFail(SymbolID::fromStr("0000000000000001"))); in TEST()
340 Request.IDs.insert(llvm::cantFail(SymbolID::fromStr("0000000000000002"))); in TEST()
352 EXPECT_EQ(Deserialized->IDs, Request.IDs); in TEST()
353 ASSERT_TRUE(Deserialized->Limit); in TEST()
354 EXPECT_EQ(*Deserialized->Limit, Request.Limit); in TEST()
355 EXPECT_EQ(Deserialized->Filter, Request.Filter); in TEST()
365 llvm::consumeError(Deserialized.takeError()); in TEST()
371 llvm::cantFail(SymbolID::fromStr("0000000000000001"))); in TEST()
373 llvm::cantFail(SymbolID::fromStr("0000000000000002"))); in TEST()
388 EXPECT_EQ(Deserialized->Subjects, Request.Subjects); in TEST()
389 ASSERT_TRUE(Deserialized->Limit); in TEST()
390 EXPECT_EQ(*Deserialized->Limit, Request.Limit); in TEST()
391 EXPECT_EQ(Deserialized->Predicate, Request.Predicate); in TEST()
400 llvm::consumeError(Deserialized.takeError()); in TEST()
404 llvm::BumpPtrAllocator Arena; in TEST()
405 llvm::UniqueStringSaver Strings(Arena); in TEST()
408 SymbolID ID = llvm::cantFail(SymbolID::fromStr("0000000000000002")); in TEST()
414 EXPECT_THAT(Deserialized->first, ID); in TEST()
415 EXPECT_THAT(Deserialized->second.ID, Sym.ID); in TEST()
420 /*LocalIndexRoot=*/testPath("home/project/")); in TEST()
426 llvm::consumeError(URIString.takeError()); in TEST()
430 llvm::consumeError(URIString.takeError()); in TEST()
434 llvm::BumpPtrAllocator Arena; in TEST()
435 llvm::UniqueStringSaver Strings(Arena); in TEST()
436 Marshaller ProtobufMarshaller(/*RemoteIndexRoot=*/testPath("remote/project/"), in TEST()
439 testPathURI("remote/project/lib/File.cpp", Strings)); in TEST()
443 /*RemoteIndexRoot=*/testPath("remote/other/project/"), in TEST()
446 testPathURI("remote/project/lib/File.cpp", Strings)); in TEST()
448 llvm::consumeError(RelativePath.takeError()); in TEST()