mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-05-15 00:38:42 +00:00
The current crash reporting on Mac OS is only disabled via an environment variable. This adds a boolean (default false) which can also disable crash reporting. The only client right now is the unittests which don't ever want crash reporting, but do want to detect killed programs. Reduces the time to run the APFloat unittests on my machine from [----------] 47 tests from APFloatTest (51250 ms total) to [----------] 47 tests from APFloatTest (765 ms total) Reviewed by Reid Kleckner and Justin Bogner git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@234353 91177308-0d34-0410-b5e6-96231b3b80d8
50 lines
1.6 KiB
C++
50 lines
1.6 KiB
C++
//===--- 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/Config/config.h"
|
|
#include "llvm/Support/CommandLine.h"
|
|
#include "llvm/Support/Signals.h"
|
|
#include "gtest/gtest.h"
|
|
|
|
|
|
#if defined(LLVM_ON_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(LLVM_ON_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();
|
|
}
|