blob: ed42c227c8c3abfaf4151d7448afc9f24f85e934 [file] [log] [blame]
Daniel Dunbarf845c742009-09-13 21:31:21 +00001//===--- utils/unittest/UnitTestMain/TestMain.cpp - unittest driver -------===//
Misha Brukman8fb520e2009-01-01 02:24:48 +00002//
3// The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9
Michael J. Spencerddfce8f2010-09-24 09:01:34 +000010#include "llvm/Config/config.h"
11#include "llvm/System/Signals.h"
Misha Brukman8fb520e2009-01-01 02:24:48 +000012#include "gtest/gtest.h"
13
Michael J. Spencerddfce8f2010-09-24 09:01:34 +000014
15#if defined(LLVM_ON_WIN32)
16# include <Windows.h>
17# if defined(_MSC_VER)
18# include <crtdbg.h>
19# endif
20#endif
21
Misha Brukman8fb520e2009-01-01 02:24:48 +000022int main(int argc, char **argv) {
Michael J. Spencerddfce8f2010-09-24 09:01:34 +000023 llvm::sys::PrintStackTraceOnErrorSignal();
Misha Brukman8fb520e2009-01-01 02:24:48 +000024 testing::InitGoogleTest(&argc, argv);
Michael J. Spencerddfce8f2010-09-24 09:01:34 +000025
26# if defined(LLVM_ON_WIN32)
27 // Disable all of the possible ways Windows conspires to make automated
28 // testing impossible.
29 ::SetErrorMode(SEM_FAILCRITICALERRORS | SEM_NOGPFAULTERRORBOX);
30# if defined(_MSC_VER)
31 ::_set_error_mode(_OUT_TO_STDERR);
32 ::_CrtSetReportMode(_CRT_WARN, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
33 ::_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDERR);
34 ::_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
35 ::_CrtSetReportFile(_CRT_ERROR, _CRTDBG_FILE_STDERR);
36 ::_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE | _CRTDBG_MODE_DEBUG);
37 ::_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDERR);
38# endif
39# endif
40
Misha Brukman8fb520e2009-01-01 02:24:48 +000041 return RUN_ALL_TESTS();
42}