diff options
Diffstat (limited to 'gnu/llvm/utils/unittest/UnitTestMain')
| -rw-r--r-- | gnu/llvm/utils/unittest/UnitTestMain/CMakeLists.txt | 9 | ||||
| -rw-r--r-- | gnu/llvm/utils/unittest/UnitTestMain/Makefile | 32 | ||||
| -rw-r--r-- | gnu/llvm/utils/unittest/UnitTestMain/TestMain.cpp | 48 |
3 files changed, 89 insertions, 0 deletions
diff --git a/gnu/llvm/utils/unittest/UnitTestMain/CMakeLists.txt b/gnu/llvm/utils/unittest/UnitTestMain/CMakeLists.txt new file mode 100644 index 00000000000..520db4e8d2b --- /dev/null +++ b/gnu/llvm/utils/unittest/UnitTestMain/CMakeLists.txt @@ -0,0 +1,9 @@ +add_llvm_library(gtest_main + TestMain.cpp + + LINK_LIBS + gtest + + LINK_COMPONENTS + Support # Depends on llvm::cl + ) diff --git a/gnu/llvm/utils/unittest/UnitTestMain/Makefile b/gnu/llvm/utils/unittest/UnitTestMain/Makefile new file mode 100644 index 00000000000..7bcb7249504 --- /dev/null +++ b/gnu/llvm/utils/unittest/UnitTestMain/Makefile @@ -0,0 +1,32 @@ +##===- utils/unittest/UnitTestMain/Makefile ----------------*- Makefile -*-===## +# +# The LLVM Compiler Infrastructure +# +# This file is distributed under the University of Illinois Open Source +# License. See LICENSE.TXT for details. +# +##===----------------------------------------------------------------------===## + +LEVEL = ../../.. + +include $(LEVEL)/Makefile.config + +LIBRARYNAME = gtest_main +BUILD_ARCHIVE = 1 +REQUIRES_RTTI = 1 + +CPP.Flags += -I$(LLVM_SRC_ROOT)/utils/unittest/googletest/include +CPP.Flags += $(NO_MISSING_FIELD_INITIALIZERS) $(NO_VARIADIC_MACROS) +CPP.Flags += -DGTEST_HAS_RTTI=0 +# libstdc++'s TR1 <tuple> header depends on RTTI and uses C++'0x features not +# supported by Clang, so force googletest to use its own tuple implementation. +CPP.Flags += -DGTEST_USE_OWN_TR1_TUPLE + +# Disable pthreads if LLVM was configured without them. +ifneq ($(HAVE_PTHREAD), 1) + CPP.Flags += -DGTEST_HAS_PTHREAD=0 +endif + +NO_INSTALL = 1 + +include $(LEVEL)/Makefile.common diff --git a/gnu/llvm/utils/unittest/UnitTestMain/TestMain.cpp b/gnu/llvm/utils/unittest/UnitTestMain/TestMain.cpp new file mode 100644 index 00000000000..fb2b0f16ee3 --- /dev/null +++ b/gnu/llvm/utils/unittest/UnitTestMain/TestMain.cpp @@ -0,0 +1,48 @@ +//===--- utils/unittest/UnitTestMain/TestMain.cpp - unittest driver -------===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#include "llvm/Support/CommandLine.h" +#include "llvm/Support/Signals.h" +#include "gtest/gtest.h" + + +#if defined(_WIN32) +# include <windows.h> +# if defined(_MSC_VER) +# include <crtdbg.h> +# endif +#endif + +const char *TestMainArgv0; + +int main(int argc, char **argv) { + llvm::sys::PrintStackTraceOnErrorSignal(true /* Disable crash reporting */); + testing::InitGoogleTest(&argc, argv); + llvm::cl::ParseCommandLineOptions(argc, argv); + + // Make it easy for a test to re-execute itself by saving argv[0]. + TestMainArgv0 = argv[0]; + +# if defined(_WIN32) + // Disable all of the possible ways Windows conspires to make automated + // testing impossible. + ::SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX); +# if defined(_MSC_VER) + ::_set_error_mode(_OUT_TO_STDERR); + _CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR); + _CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR); + _CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG); + _CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR); +# endif +# endif + + return RUN_ALL_TESTS(); +} |
