Skip to content
Merged
Show file tree
Hide file tree
Changes from 9 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion clang/lib/CodeGen/BackendUtil.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -304,7 +304,7 @@ getCodeModel(const CodeGenOptions &CodeGenOpts) {
.Case("kernel", llvm::CodeModel::Kernel)
.Case("medium", llvm::CodeModel::Medium)
.Case("large", llvm::CodeModel::Large)
.Case("default", ~1u)
.Cases("default", "", ~1u)
.Default(~0u);
assert(CodeModel != ~0u && "invalid code model!");
if (CodeModel == ~1u)
Expand Down
54 changes: 52 additions & 2 deletions clang/unittests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,11 +15,11 @@ if(CLANG_BUILT_STANDALONE)
endif()
endif()

# add_clang_unittest(test_name file1.cpp file2.cpp)
# add_distinct_clang_unittest(test_name file1.cpp file2.cpp)
#
# Will compile the list of files together and link against the clang
# Produces a binary named 'basename(test_name)'.
function(add_clang_unittest test_name)
function(add_distinct_clang_unittest test_name)
cmake_parse_arguments(ARG
""
""
Expand Down Expand Up @@ -47,6 +47,34 @@ function(add_clang_unittest test_name)
target_link_libraries(${test_name} PRIVATE ${ARG_LINK_LIBS})
endfunction()

set(doc_opts BRIEF_DOCS "<internal setting>" FULL_DOCS "<internal settings>")
define_property(GLOBAL PROPERTY CLANG_UNITTEST_SRCS ${doc_opts})
define_property(GLOBAL PROPERTY CLANG_UNITTEST_LLVM_COMPONENTS ${doc_opts})
define_property(GLOBAL PROPERTY CLANG_UNITTEST_CLANG_LIBS ${doc_opts})
define_property(GLOBAL PROPERTY CLANG_UNITTEST_LINK_LIBS ${doc_opts})

# add_clang_unittest(test_name file1.cpp file2.cpp)
#
# Adds unittests to the combined AllClangUnitTests binary. The unittest binary
# is defined after adding all unittest subdirectories.
function(add_clang_unittest test_name)
cmake_parse_arguments(ARG
""
""
"CLANG_LIBS;LINK_LIBS;LLVM_COMPONENTS"
${ARGN})

file(RELATIVE_PATH src_prefix "${CMAKE_CURRENT_FUNCTION_LIST_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
set(srcs_prefixed)
foreach(src ${ARG_UNPARSED_ARGUMENTS})
set(srcs_prefixed ${srcs_prefixed} "${src_prefix}/${src}")
endforeach()
set_property(GLOBAL APPEND PROPERTY CLANG_UNITTEST_SRCS ${srcs_prefixed})
set_property(GLOBAL APPEND PROPERTY CLANG_UNITTEST_CLANG_LIBS ${ARG_CLANG_LIBS})
set_property(GLOBAL APPEND PROPERTY CLANG_UNITTEST_LINK_LIBS ${ARG_LINK_LIBS})
set_property(GLOBAL APPEND PROPERTY CLANG_UNITTEST_LLVM_COMPONENTS ${ARG_LLVM_COMPONENTS})
endfunction()

add_subdirectory(Basic)
add_subdirectory(Lex)
add_subdirectory(Parse)
Expand Down Expand Up @@ -77,3 +105,25 @@ add_subdirectory(Index)
add_subdirectory(InstallAPI)
add_subdirectory(Serialization)
add_subdirectory(Support)


# If we're doing a single merged clang unit test binary, add that target after
# all the previous subdirectories have been processed.
get_property(SRCS GLOBAL PROPERTY CLANG_UNITTEST_SRCS)
get_property(CLANG_LIBS GLOBAL PROPERTY CLANG_UNITTEST_CLANG_LIBS)
get_property(LINK_LIBS GLOBAL PROPERTY CLANG_UNITTEST_LINK_LIBS)
get_property(LLVM_COMPONENTS GLOBAL PROPERTY CLANG_UNITTEST_LLVM_COMPONENTS)
add_distinct_clang_unittest(AllClangUnitTests
${SRCS}
CLANG_LIBS
${CLANG_LIBS}
LINK_LIBS
${LINK_LIBS}
LLVM_COMPONENTS
${LLVM_COMPONENTS}
)

# The Tooling library has some internal headers. Make those work. If we like
# the merged clang unit test binary, we can update the include paths and make
# this the default.
include_directories(Tooling)
2 changes: 1 addition & 1 deletion clang/unittests/Driver/ModuleCacheTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ using namespace clang::driver;

namespace {

TEST(ModuleCacheTest, GetTargetAndMode) {
TEST(DriverModuleCacheTest, GetTargetAndMode) {
SmallString<128> Buf;
Driver::getDefaultModuleCachePath(Buf);
StringRef Path = Buf;
Expand Down
5 changes: 4 additions & 1 deletion clang/unittests/Frontend/OutputStreamTest.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@

#include "clang/Basic/LangStandard.h"
#include "clang/CodeGen/BackendUtil.h"
#include "clang/CodeGen/CodeGenAction.h"
#include "clang/Frontend/CompilerInstance.h"
#include "clang/Frontend/TextDiagnosticPrinter.h"
#include "clang/FrontendTool/Utils.h"
#include "clang/Lex/PreprocessorOptions.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Support/VirtualFileSystem.h"
#include "gtest/gtest.h"

Expand All @@ -23,6 +23,7 @@ using namespace clang::frontend;
namespace {

TEST(FrontendOutputTests, TestOutputStream) {
llvm::InitializeAllTargetMCs();
auto Invocation = std::make_shared<CompilerInvocation>();
Invocation->getPreprocessorOpts().addRemappedFile(
"test.cc", MemoryBuffer::getMemBuffer("").release());
Expand All @@ -47,6 +48,7 @@ TEST(FrontendOutputTests, TestOutputStream) {
}

TEST(FrontendOutputTests, TestVerboseOutputStreamShared) {
llvm::InitializeAllTargetMCs();
auto Invocation = std::make_shared<CompilerInvocation>();
Invocation->getPreprocessorOpts().addRemappedFile(
"test.cc", MemoryBuffer::getMemBuffer("invalid").release());
Expand Down Expand Up @@ -77,6 +79,7 @@ TEST(FrontendOutputTests, TestVerboseOutputStreamOwned) {
std::string VerboseBuffer;
bool Success;
{
llvm::InitializeAllTargetMCs();
auto Invocation = std::make_shared<CompilerInvocation>();
Invocation->getPreprocessorOpts().addRemappedFile(
"test.cc", MemoryBuffer::getMemBuffer("invalid").release());
Expand Down
2 changes: 1 addition & 1 deletion clang/unittests/Interpreter/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
add_clang_unittest(ClangReplInterpreterTests
add_distinct_clang_unittest(ClangReplInterpreterTests
IncrementalCompilerBuilderTest.cpp
IncrementalProcessingTest.cpp
InterpreterTest.cpp
Expand Down
2 changes: 1 addition & 1 deletion clang/unittests/Interpreter/ExceptionTests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
set(LLVM_REQUIRES_EH ON)
set(LLVM_REQUIRES_RTTI ON)

add_clang_unittest(ClangReplInterpreterExceptionTests
add_distinct_clang_unittest(ClangReplInterpreterExceptionTests
InterpreterExceptionTest.cpp
EXPORT_SYMBOLS

Expand Down
13 changes: 4 additions & 9 deletions clang/unittests/Parse/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,20 +1,15 @@
set(LLVM_LINK_COMPONENTS
Support
)
add_clang_unittest(ParseTests
ParseHLSLRootSignatureTest.cpp
)
clang_target_link_libraries(ParseTests
PRIVATE
CLANG_LIBS
clangAST
clangBasic
clangLex
clangParse
clangSema
)
target_link_libraries(ParseTests
PRIVATE
LINK_LIBS
LLVMTestingAnnotations
LLVMTestingSupport
clangTesting
LLVM_COMPONENTS
Support
)