brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.8 KiB · 59297a7 Raw
93 lines · cpp
1//===-- TestTypeSystem.cpp -------------------------------------------===//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-exception6//7//===----------------------------------------------------------------------===//8 9#include "TestingSupport/SubsystemRAII.h"10#include "lldb/Core/Module.h"11#include "lldb/Host/FileSystem.h"12#include "lldb/Host/HostInfo.h"13#include "lldb/Symbol/TypeSystem.h"14#include "gtest/gtest.h"15 16using namespace lldb;17using namespace lldb_private;18 19class TestTypeSystemMap : public testing::Test {20public:21  SubsystemRAII<FileSystem, HostInfo> subsystems;22};23 24TEST_F(TestTypeSystemMap, GetTypeSystemForLanguageWithInvalidModule) {25  // GetTypeSystemForLanguage called with an invalid Module.26  TypeSystemMap map;27  Module module{ModuleSpec()};28  EXPECT_THAT_EXPECTED(29      map.GetTypeSystemForLanguage(eLanguageTypeUnknown, &module,30                                   /*can_create=*/true),31      llvm::FailedWithMessage("TypeSystem for language unknown doesn't exist"));32 33  EXPECT_THAT_EXPECTED(34      map.GetTypeSystemForLanguage(eLanguageTypeUnknown, &module,35                                   /*can_create=*/false),36      llvm::FailedWithMessage("TypeSystem for language unknown doesn't exist"));37 38  EXPECT_THAT_EXPECTED(39      map.GetTypeSystemForLanguage(eLanguageTypeC, &module,40                                   /*can_create=*/true),41      llvm::FailedWithMessage("TypeSystem for language c doesn't exist"));42  EXPECT_THAT_EXPECTED(43      map.GetTypeSystemForLanguage(eLanguageTypeC, &module,44                                   /*can_create=*/false),45      llvm::FailedWithMessage("TypeSystem for language c doesn't exist"));46}47 48TEST_F(TestTypeSystemMap, GetTypeSystemForLanguageWithNoModule) {49  // GetTypeSystemForLanguage called with no Module.50  TypeSystemMap map;51  Module *module = nullptr;52  EXPECT_THAT_EXPECTED(53      map.GetTypeSystemForLanguage(eLanguageTypeUnknown, module,54                                   /*can_create=*/true),55      llvm::FailedWithMessage("TypeSystem for language unknown doesn't exist"));56 57  EXPECT_THAT_EXPECTED(58      map.GetTypeSystemForLanguage(eLanguageTypeUnknown, module,59                                   /*can_create=*/false),60      llvm::FailedWithMessage("TypeSystem for language unknown doesn't exist"));61 62  EXPECT_THAT_EXPECTED(63      map.GetTypeSystemForLanguage(eLanguageTypeC, module, /*can_create=*/true),64      llvm::FailedWithMessage("TypeSystem for language c doesn't exist"));65  EXPECT_THAT_EXPECTED(66      map.GetTypeSystemForLanguage(eLanguageTypeC, module,67                                   /*can_create=*/false),68      llvm::FailedWithMessage("TypeSystem for language c doesn't exist"));69}70 71TEST_F(TestTypeSystemMap, GetTypeSystemForLanguageWithNoTarget) {72  // GetTypeSystemForLanguage called with no Target.73  TypeSystemMap map;74  Target *target = nullptr;75  EXPECT_THAT_EXPECTED(76      map.GetTypeSystemForLanguage(eLanguageTypeUnknown, target,77                                   /*can_create=*/true),78      llvm::FailedWithMessage("TypeSystem for language unknown doesn't exist"));79 80  EXPECT_THAT_EXPECTED(81      map.GetTypeSystemForLanguage(eLanguageTypeUnknown, target,82                                   /*can_create=*/false),83      llvm::FailedWithMessage("TypeSystem for language unknown doesn't exist"));84 85  EXPECT_THAT_EXPECTED(86      map.GetTypeSystemForLanguage(eLanguageTypeC, target, /*can_create=*/true),87      llvm::FailedWithMessage("TypeSystem for language c doesn't exist"));88  EXPECT_THAT_EXPECTED(89      map.GetTypeSystemForLanguage(eLanguageTypeC, target,90                                   /*can_create=*/false),91      llvm::FailedWithMessage("TypeSystem for language c doesn't exist"));92}93