| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
| |
The current link pointed to a non existing section in the FAQ.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
1d9a1912e7f42e8ae66ea365b5b8508fecb31509
Closes #1658
Review and changes, mister@google.com
PiperOrigin-RevId: 210374286
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To make sure packages are relocatable, use `$<INSTALL_PREFIX>` in
`$<INSTALL_INTERFACE:...>` `target_include_directories`.
`$<INSTALL_PREFIX>` was introduced in CMake 2.8.11, which is already
being checked for locally.
References:
- https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html#id19
- https://github.com/robotology/how-to-export-cpp-library/blob/claudio/headeronly/src/LibTemplateCMake/CMakeLists.txt#L42
Signed-off-by: Dakota Hawkins <dakotahawkins@gmail.com>
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Remove unneeded check for NULL.
Note: this started as OSS PR https://github.com/google/googletest/pull/967 but changed
PiperOrigin-RevId: 209819732
|
| |
| |
| |
| |
| |
| | |
Internal Change
PiperOrigin-RevId: 209498445
|
| |
| |
| |
| |
| |
| | |
Internal Change
PiperOrigin-RevId: 209471987
|
|\ \
| |/ |
|
| |
| |
| |
| | |
Rework of the closed pull request #768
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I _think_ this represents some of the "best practices" for exporting
targets. They'll be available in a `googletest::` namespace (e.g.
`googletest::gmock`) with non-namespaced `ALIAS` targets.
- Added GOOGLETEST_VERSION variable
- Use `CMakePackageConfigHelpers`, bump minimum CMake version to 2.8.8
Signed-off-by: Dakota Hawkins <dakotahawkins@gmail.com>
|
| |
| |
| |
| |
| |
| | |
- 209457654 Import of OSS PR, https://github.com/google/googletest/pu... by misterg <misterg@google.com>
PiperOrigin-RevId: 209457654
|
| |
| |
| |
| |
| |
| | |
- 209457486 Import of OSS PR, https://github.com/google/googletest/pu... by misterg <misterg@google.com>
PiperOrigin-RevId: 209457486
|
| |\
| | |
| | | |
docs: fixed broken references to sections in Advanced guide
|
| | | |
|
| | | |
|
| |\ \
| | |/ |
|
| | |\ |
|
| | | | |
|
| | |\ \ |
|
| | |\ \ \ |
|
| | |\ \ \ \ |
|
| | |\ \ \ \ \ |
|
| | | | | | | | |
|
| | | | | | | | |
|
| |\ \ \ \ \ \ \
| | | |_|_|_|_|/
| | |/| | | | | |
|
| | |\ \ \ \ \ \
| | | | | | | | |
| | | | | | | | | |
Remove default /EHsc compiler flag
|
| | | |\ \ \ \ \ \
| | | | | |_|_|_|/
| | | | |/| | | | |
|
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | |
| | | | | | | | | |
This prevents warning D9025 (one command-line option overrides
another) on MSVC builds: some test targets are built with
the /EHs-c- which conflicts with /EHsc.
|
| | |\ \ \ \ \ \ \ |
|
| | | | | | | | | | |
|
| | |\ \ \ \ \ \ \ \
| | | | |_|/ / / / /
| | | |/| | | | | | |
|
| | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
Because in `std::tr1::tuple_element` the first template parameter should be of type int (https://gcc.gnu.org/onlinedocs/libstdc++/libstdc++-html-USERS-4.4/a00547.html), but the code inserts a size_t, the first template parameter should be casted to int before, to get rid of the following errors:
googletest-src/googletest/include/gtest/gtest-printers.h:957:60: error: conversion from ‘long unsigned int’ to ‘int’ may change value [-Werror=conversion]
struct tuple_element : ::std::tr1::tuple_element<I, Tuple> {};
and
googletest-src/googletest/include/gtest/gtest-printers.h:961:56: error: conversion from ‘long unsigned int’ to ‘int’ may change value [-Werror=conversion]
const typename ::std::tr1::tuple_element<I, Tuple>::type>::type get(
|
| |\ \ \ \ \ \ \ \ \ \
| | | |_|_|/ / / / / /
| | |/| | | | | | | | |
|
| | | |_|/ / / / / /
| | |/| | | | | | | |
|
| | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | |
| | | | | | | | | | |
| | | | | | | | | | | |
And then we can merge
|
| | | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | |
| | | | | | | | | | | |
| | | | | | | | | | | | |
Just small style changes and we can accept this PR
|
| | | | |\ \ \ \ \ \ \ \
| | | | | | |/ / / / / /
| | | | | |/| | | | | | |
|
| | | | |\ \ \ \ \ \ \ \ |
|
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | |
| | | | | | | | | | | | | |
Add a new RAII MemoryIsNotDeallocated class that excludes memory allocations from Microsoft’s debug CRT leak detection report.
We use this RAII class to silence 2 false positive leaks that are caused by memory allocations that are intentionally never deallocated.
*Background*
The MS debug CRT has a lightweight memory leak detection mechanism that can only detect if a memory allocation is missing a matching deallocation.
Consequently, it will report a false positive leak for memory that’s intentionally never deallocated. For example, memory that’s reachable for the entire lifetime of a app.
Note the MS debug CRT is always tracking memory allocations but the final memory leak report is disabled by default. As you can’t avoid paying for its cost, you may as well use it.
The memory leak report can be enabled by calling the following function
#ifdef _MSC_VER
_CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF);
#endif // _MSC_VER
anywhere before exiting main.
For example, the following are the false positive leaks reported before this change;
Detected memory leaks!
Dumping objects ->
{750} normal block at 0x015DF938, 8 bytes long.
Data: < ] > 00 F9 5D 01 00 00 00 00
{749} normal block at 0x015DEE60, 32 bytes long.
Data: <` ] ` ] ` ] > 60 EE 5D 01 60 EE 5D 01 60 EE 5D 01 01 01 CD CD
{748} normal block at 0x015DF900, 12 bytes long.
Data: <8 ] ` ] > 38 F9 5D 01 60 EE 5D 01 00 00 00 00
{747} normal block at 0x015DA0F8, 24 bytes long.
Data: < > FF FF FF FF FF FF FF FF 00 00 00 00 00 00 00 00
Object dump complete.
As you can see from above it’s not easy to identify the above are false positives. Consequently, if false positive leaks are not fixed or silenced, then it becomes impractical to identify real memory leaks.
|
| | | |\ \ \ \ \ \ \ \ \ \
| | | | | |_|/ / / / / / /
| | | | |/| | | | | | | | |
|
| | | |\ \ \ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ |
|
| | | |\ \ \ \ \ \ \ \ \ \ \ \ \ \ \
| | | | | |_|_|_|_|_|_|_|_|/ / / / /
| | | | |/| | | | | | | | | | | | | |
|