Commit Graph

305 Commits

Author SHA1 Message Date
Alexey Sokolov
092d088533 Add ability to throw from ASSERT
while not losing benefits of EXPECT, and not killing the whole test,
as with --gtest_throw_on_failure.

183822976
2018-02-08 01:15:42 +00:00
Gennadiy Civil
e6ec8bc52f Merges and also adding new bazel build mode 2018-01-31 12:05:18 -05:00
Gennadiy Civil
e55fded0c8 Code merges 2018-01-30 17:34:22 -05:00
Gennadiy Civil
2a4683021a Ability to optionally depend on Abseil plus upstream of 183716547 2018-01-30 11:42:03 -05:00
Peter Collingbourne
3498a1ac52 Use _CPPUNWIND instead of _HAS_EXCEPTIONS with MSVC.
_HAS_EXCEPTIONS is specific to the MSVC STL and defining it to 0 causes
problems with libc++, so libc++ users may leave it undefined. This can
cause GTEST_HAS_EXCEPTIONS to be defined incorrectly if the user has
disabled exceptions via the compiler, which can lead to build errors.

_CPPUNWIND is a builtin macro provided by the compiler so it should
work with both STLs.
2018-01-25 14:15:43 -08:00
Gennadiy Civil
e29805aa5d upstream cl 182543808 2018-01-24 13:04:36 -05:00
Gennadiy Civil
ad0146bfe2 Merge branch 'master' into win-libcxx 2018-01-23 12:32:44 -05:00
Gennadiy Civil
f1c87ad9f5 merges, cl/155419551 and other 2018-01-22 15:20:19 -05:00
Gennadiy Civil
1489dc8daa Merge branch 'master' into support_xboxone 2018-01-18 17:42:34 -05:00
Gennadiy Civil
20b53ad786 Merge branch 'master' into win-libcxx 2018-01-18 17:41:36 -05:00
Peter Collingbourne
ba99a04be2 Check whether _MSC_VER is defined when detecting presence of cxxabi.h under libc++.
If _MSC_VER is defined, it means that we are using the Microsoft
ABI, so cxxabi.h (which is associated with the Itanium ABI) will not
be available.
2018-01-17 20:29:10 -08:00
Fedor Trushkin
9c82e7745c Expose ScopedTrace utility in public interface 2018-01-17 16:41:59 +01:00
Gennadiy Civil
08b323f717 Reverting some changes, need to make the merge compile 2018-01-15 18:16:11 -05:00
Gennadiy Civil
9195571c69 Reverting some changes, need to make the merge compile 2018-01-15 17:39:33 -05:00
Gennadiy Civil
6d04de7419 Reverting some changes, need to make the merge compile 2018-01-15 17:36:45 -05:00
Gennadiy Civil
b9e297838d Reverting some changes, need to make the merge compile 2018-01-15 17:34:46 -05:00
Gennadiy Civil
d629744ec0 More code merges 2018-01-15 16:23:23 -05:00
Gennadiy Civil
da1f7fe1e7 Code merging 2018-01-15 16:06:32 -05:00
gpetit
33d73d42b4 Added support for WINAPI_PARTITION_TV_TITLE which is defined on XboxOne 2018-01-12 10:20:26 -05:00
Gennadiy Civil
93b77987f5 continue upstream/merge, etc 2018-01-11 17:36:34 -05:00
Gennadiy Civil
6914ae2394 Upstream cl 103120214 2018-01-11 11:31:23 -05:00
Gennadiy Civil
1d757db65c More merge, cleanup 2018-01-10 16:49:20 -05:00
Gennadiy Civil
481fe9446a More merge, cleanup 2018-01-10 16:45:59 -05:00
Gennadiy Civil
6a26e47cfc Code merge, upstreaming accumulated changes, cleanup 2018-01-10 14:42:29 -05:00
Gennadiy Civil
62dbaa2947 revert 2018-01-10 14:00:52 -05:00
Gennadiy Civil
d630a8bdac code merges, cleanup 2018-01-10 13:58:00 -05:00
Gennadiy Civil
d237297ceb code merge, cleanups 2018-01-09 22:46:17 -05:00
Gennadiy Civil
2ad5661db2 Upstream of cl 129104714 2018-01-09 16:41:15 -05:00
Gennadiy Civil
5eecadf67a Revert one file 2018-01-09 15:46:44 -05:00
Gennadiy Civil
9fce984a67 wip, cleanups/merge 2018-01-09 14:48:06 -05:00
Gennadiy Civil
258fd6e168 cleanup, merge 2018-01-09 13:59:27 -05:00
Gennadiy Civil
6b4967a23a Merge branch 'master' into missing-declarations 2018-01-04 22:01:38 -05:00
David Benjamin
1acf8c752e Also define GTEST_ATTRIBUTE_PRINTF_ in clang-cl.
clang-cl is clang for Windows running in MSVC mode. Chromium uses it for
Windows builds. clang-cl is weird in that it defines __clang__ and
_MSC_VER, but *NOT* __GNUC__. This is vaguely analogous to how normal
clang defines __clang__ (what it is) and __GNUC__ (what it is compatible
with).

However, clang-cl still implements most GCC extensions, being clang.
Notably, the way to control -Wformat-literal is still with
__attribute__((__format__)). For better error-checking and strict
-Wformatl-literal compatibility (see
53c478d639), define
GTEST_ATTRIBUTE_PRINTF_ in clang-cl too.
2018-01-03 14:55:52 -05:00
David Benjamin
b3d9be5c1d Pass the -Wmissing-declarations warning.
This makes it easier to use GTest in projects that build with the
-Wmissing-declarations warning. This fixes the warning in headers and
source files, though not GTest's own tests as it is rather noisy there.
2018-01-03 14:50:22 -05:00
Gennadiy Civil
ba6ecedede Merge pull request #1374 from davidben/tuple-msvc
Fix testing::Combine on MSVC 2017.
2018-01-03 14:11:38 -05:00
David Benjamin
90244a6aef Fix testing::Combine on MSVC 2017.
On platforms with std::tuple and not std::tr1::tuple, GTEST_HAS_COMBINE
gets turned off when it works fine (due to GTEST_TUPLE_NAMESPACE_).
Elsewhere in the project, several GTEST_HAS_TR1_TUPLE checks
additionally check GTEST_HAS_STD_TUPLE_, so use that formulation.

(The ones that don't are specific to std::tr1::tuple and are followed by
an identical GTEST_HAS_STD_TUPLE_ version underneath it.)

In particular, this fixes testing::Combine on MSVC 2017, which regressed
here:
https://github.com/google/googletest/pull/1348#issuecomment-353879010
2018-01-02 12:57:49 -05:00
Gennadiy Civil
fa6730103e Merge branch 'master' into uintptr 2018-01-02 10:54:26 -05:00
David Benjamin
bcd35523cd Avoid warning C4619 in MSVC 2017.
C4800 has since been removed in MSVC 2017, so trying to silence it
throws warning C4619 when enabled.
2017-12-25 11:02:02 -05:00
Gregory Pakosz
7990f56637 Re-enable MSVC++ C4389 warning in CmdHelperEq()
C4389 was inhibited in commit 4b83461 making behavior inconsistent with
other compilers.
2017-12-21 16:35:38 +01:00
Gennadiy Civil
a7fceb4a98 Update gtest-param-test.h.pump 2017-12-19 10:58:37 -05:00
Gennadiy Civil
8a48f0ed4e Update gtest-param-test.h.pump 2017-12-19 10:55:49 -05:00
Gennadiy Civil
55fca1937d Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-12-09 09:41:02 -05:00
Wojciech Mamrak
57bb0bbbf8 Remove C4996 warning in VS2017 2017-12-07 18:20:25 +01:00
Gennadiy Civil
49eb76df47 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-11-07 10:32:23 -08:00
m-gupta
060783b7d2 Merge branch 'master' into gtestapifix 2017-10-25 10:24:56 -07:00
Arkadiy Shapkin
77380cddf7 Enable C++11 features for VS2015 and VS2017 2017-10-25 03:24:49 +03:00
Manoj Gupta
1beff241c3 googletest: Add GTEST_API_ attribute to ThreadLocal class.
ThreadLocal class needs to be have default visibility.
Root cause is gtest uses typeinfo for the ThreadLocal class.
The problem manifests When gtest/gmock are built as a shared library
with libc++. When a class is used in typeinfo, it must have default
visibility.

There is an explanation about typeinfo and visibility here:
https://developer.apple.com/library/content/documentation/DeveloperTools/Conceptual/CppRuntimeEnv/Articles/SymbolVisibility.html

When libc++ is used with gtest in shared library mode, any tests
that are compiled with -fvisibility=hidden and exercise the
macro EXPECT_CALL, it results in an abort like:
[ FATAL ] /usr/include/gtest/internal/gtest-port.h:1394::
Condition typeid(*base) == typeid(Derived) failed.
This is because the typeinfo for ThreadLocal class is not visible.
Therefore, linker failed to match it to the shared library symbol, creating a
new symbol instead.

This fixes https://github.com/google/googletest/issues/1207.
2017-10-20 14:41:06 -07:00
Herbert Thielen
ceee80c383 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-10-04 21:03:47 +02:00
Jonathan Wakely
b70cf1a663 Use gender-neutral pronouns in comments and docs 2017-09-27 13:31:13 +01:00
Herbert Thielen
98024ad202 Merge branch 'master' into hethi/issue-360-remove-GTEST_HAS_PARAM_TESTS 2017-09-24 10:01:52 +02:00