Commit Graph

1229 Commits

Author SHA1 Message Date
Derek Mauro
130ae78b99 Merge pull request #2862 from prehistoric-penguin:prehistoric-penguin-patch-1
PiperOrigin-RevId: 313289519
2020-05-28 19:54:47 -04:00
Derek Mauro
731d908c09 Merge pull request #2677 from IYP-Programer-Yeah:fix-file-path-normalize-function
PiperOrigin-RevId: 312486861
2020-05-28 19:54:29 -04:00
Derek Mauro
99ea9ca3fe Merge pull request #2698 from aribibek:patch-1
PiperOrigin-RevId: 312342956
2020-05-28 19:54:19 -04:00
Abseil Team
f3a59610fd Googletest export
Addresses https://github.com/google/googletest/issues/2848 by using `_wfopen(...)` on Windows

PiperOrigin-RevId: 312198825
2020-05-28 19:53:52 -04:00
ppenguin
80d5177ddf
Use count function instead of handwritten loop 2020-05-25 14:25:16 +08:00
Abseil Team
011959aafd Googletest export
Remove broken URL.

PiperOrigin-RevId: 311377660
2020-05-13 20:36:05 -04:00
Abseil Team
8a32680cee Googletest export
Fixed #2823 - Make it so that a semicolon appearing after an invocation of GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_ does not trigger a redundant semicolon warning.

This works by introducing an else block with a statement that intentionally does not end with a semicolon, forcing users to place the semicolon after the expansion. The approach here is preferred as opposed to removing semicolons that appear after each invocation because complete statements that do not have a visible semicolon or braces confuse users and code formatters, since the macro invocation looks superficially like an expression.

PiperOrigin-RevId: 311327491
2020-05-13 20:35:57 -04:00
Andy Getz
48bf552cbf Merge pull request #2778 from lvjp:issue-2777
PiperOrigin-RevId: 310911989
2020-05-13 00:39:57 -04:00
Martin Storsjö
d86e9e23ce Remove an explicit include of debugapi.h
The documentation for IsDebuggerPresent says that one just should
include windows.h, as that one is an umbrella header that includes
the header that declares IsDebuggerPresent. In older Windows SDKs,
debugapi.h didn't exist and IsDebuggerPresent was declared in
winbase.h (also included by windows.h).

This should fix issue #2822 properly.
2020-05-08 10:21:16 +03:00
Martin Storsjö
09f587512a Revert "Googletest export"
This reverts commit a9f6c1ed14.

That commit cannot fix the issue it sets out to fix.

The original issue, #2822, was that building with a toolset
targeting XP compatibility is missing the debugapi.h header -
as debugapi.h didn't exist in older Windows SDKs.

Commit a9f6c1ed14 misinterpreted
the Microsoft documentation about IsDebuggerPresent. The information
about which header to use, "debugapi.h (include Windows.h)" means
that the function declaration currently lives in debugapi.h, but
for compatibility, just include the Windows.h umbrella header.
In older Windows SDKs (e.g. the v6.0a SDK), IsDebuggerPresent
is declared in winbase.h, and debugapi.h doesn't exist at all in those
versions.

Including Windows.h with a different capitalization than the existing
include won't help finding headers that don't exist.

Including Windows.h with a capital W breaks cross compilation with mingw
toolchains, where the header always has been spelled with a lower case
W. When building on native windows, the file system is case insensitive
and the capitalization doesn't matter.

This fixes issue #2840.
2020-05-08 10:13:33 +03:00
vslashg
e589a33717 Merge pull request #2751 from calumr:quiet-flag
PiperOrigin-RevId: 309958629
2020-05-05 17:07:14 -04:00
Abseil Team
a9f6c1ed14 Googletest export
Addresses Github issue (https://github.com/google/googletest/issues/2822) by following the Microsoft documention (https://docs.microsoft.com/en-us/windows/win32/api/debugapi/nf-debugapi-isdebuggerpresent) to include capital-W Windows.h before including debugapi.h.

See "Header	debugapi.h (include Windows.h)"

PiperOrigin-RevId: 309745868
2020-05-05 17:06:56 -04:00
Abseil Team
0eea2e9fc6 Googletest export
Fix documentation. This address https://github.com/google/googletest/pull/2827.

PiperOrigin-RevId: 309241571
2020-05-01 17:12:28 -04:00
Gennadiy Rozental
472cd8fd8b Merge pull request #2818 from inazarenko:master
PiperOrigin-RevId: 308711492
2020-05-01 17:12:10 -04:00
Gennadiy Rozental
b99b421d8d Merge pull request #2818 from inazarenko:master
PiperOrigin-RevId: 308650221
2020-05-01 17:12:01 -04:00
Gennadiy Rozental
ef25d27d46 Merge pull request #2815 from Quuxplusone:simple
PiperOrigin-RevId: 308625388
2020-05-01 17:11:43 -04:00
Abseil Team
d7ca9af004 Googletest export
Use InitGoogleTest() instead of InitGoogle() in code example

PiperOrigin-RevId: 308070819
2020-05-01 17:11:26 -04:00
Abseil Team
1b3eb6ef34 Googletest export
Explicitly define copy constructors used in googletest tests

As of C++11, providing a user-declared copy assignment operator should
suppress the availability of an implicit default copy constructor.
Classes that provide (or delete) a copy assignment operator must provide
their own copy constructor if one is desired. This may be an explicit
default copy constructor if appropriate.

As googletest is a C++11 codebase, this change should be made without
qualification.

This addresses the -Wdeprecated-copy warnings issued by trunk clang:

While compiling googletest/test/googletest-death-test-test.cc:

In file included from .../googletest/test/googletest-death-test-test.cc:33:
.../googletest/include/gtest/gtest-death-test.h:196:8: error: definition of implicit copy constructor for 'ExitedWithCode' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy]
  void operator=(const ExitedWithCode& other);
       ^
.../googletest/test/googletest-death-test-test.cc:279:16: note: in implicit copy constructor for 'testing::ExitedWithCode' first required here
  EXPECT_PRED1(pred0,  status0);
               ^

While compiling googletest/test/googletest-param-test-test.cc:

.../googletest/test/googletest-param-test-test.cc:502:8: error: definition of implicit copy constructor for 'NonDefaultConstructAssignString' is deprecated because it has a user-declared copy assignment operator [-Werror,-Wdeprecated-copy]
  void operator=(const NonDefaultConstructAssignString&);
       ^
.../googletest/test/googletest-param-test-test.cc:507:36: note: in implicit copy constructor for 'NonDefaultConstructAssignString' first required here
      Combine(Values(0, 1), Values(NonDefaultConstructAssignString("A"),

This matches other changes made elsewhere in the googletest codebase,
such as 306f3754a7. Perhaps those previous changes did not consider
test code.

PiperOrigin-RevId: 307495126
2020-05-01 17:11:08 -04:00
Abseil Team
a677010564 Googletest export
Internal change

PiperOrigin-RevId: 307040308
2020-05-01 17:10:51 -04:00
Arthur O'Dwyer
c7d8ec72cc Fix a -Wdeprecated warning.
googletest-param-test-test.cc:502:8: error:
    definition of implicit copy constructor for
    'NonDefaultConstructAssignString' is deprecated because it has a
    user-declared copy assignment operator [-Werror,-Wdeprecated]
        void operator=(const NonDefaultConstructAssignString&);
             ^
2020-04-23 22:22:34 -04:00
Arthur O'Dwyer
01c0ff5e23 Fix a -Wdeprecated warning.
googletest-port-test.cc:97:11: error:
    definition of implicit copy constructor for 'Base' is deprecated because
    it has a user-declared destructor [-Werror,-Wdeprecated]
        virtual ~Base() {}
                ^
2020-04-23 22:22:34 -04:00
Arthur O'Dwyer
766ac2e1a4 Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_.
None of these are strictly needed for correctness.
A large number of them (maybe all of them?) trigger `-Wdeprecated`
warnings on Clang trunk as soon as you try to use the implicitly
defaulted (but deprecated) copy constructor of a class that has
deleted its copy assignment operator.

By declaring a deleted copy assignment operator, the old code
also caused the move constructor and move assignment operator
to be non-declared. This means that the old code never got move
semantics -- "move-construction" would simply call the defaulted
(but deprecated) copy constructor instead. With the new code,
"move-construction" calls the defaulted move constructor, which
I believe is what we want to happen. So this is a runtime
performance optimization.

Unfortunately we can't yet physically remove the definitions
of these macros from gtest-port.h, because they are being used
by other code internally at Google (according to zhangxy988).
But no new uses should be added going forward.
2020-04-23 22:22:07 -04:00
Mario Voorsluys
7c8ab528b7 Fix test with stack. 2020-04-22 07:05:09 +02:00
Igor Nazarenko
9d580ea805 Enable protobuf printing for open-source proto messages. 2020-04-19 17:30:50 -07:00
Mark Barolak
dcc92d0ab6 Merge pull request #2805 from pepsiman:patch-1
PiperOrigin-RevId: 306462650
2020-04-16 13:33:10 -04:00
Mark Barolak
71d5df6c6b Merge pull request #2802 from e-i-n-s:fix_clang_warning
PiperOrigin-RevId: 306460942
2020-04-16 13:33:01 -04:00
Mark Barolak
4c8e6a9fe1 Merge pull request #2810 from ptahmose:master
PiperOrigin-RevId: 306460738
2020-04-16 13:32:51 -04:00
Mark Barolak
4fe5ac5333 Merge pull request #2756 from Conan-Kudo:fix-pkgconfig-reqs
PiperOrigin-RevId: 305747437
2020-04-16 13:32:33 -04:00
Mark Barolak
b51a49e0cb Merge pull request #2773 from Quuxplusone:replace-noexcept
PiperOrigin-RevId: 305707266
2020-04-16 13:32:14 -04:00
Juergen Bohl
be3ac45cf6 fix signed/unsigned comparison issue (on OpenBSD) 2020-04-12 15:31:02 +02:00
Malcolm Parsons
0b6d567619
Remove redundant .c_str() 2020-04-09 09:47:57 +01:00
Marco Studerus
644f3a992c gtest-unittest-api_test - fix warning in clang build 2020-04-06 23:30:09 -07:00
Andy Getz
e3f0319d89 Merge pull request #2715 from kuzkry:document-premature-exit-file-protocol
PiperOrigin-RevId: 304617903
2020-04-04 18:05:39 -04:00
Andy Getz
7084afda5a Merge pull request #2762 from pkryger:avoid_sigprof
PiperOrigin-RevId: 304613137
2020-04-04 18:05:30 -04:00
Abseil Team
c344cb5a8d Googletest export
This change updates testing::internal::IsAProtocolMessage to return true not
just for full proto messages but also for lite ones (i.e. those inheriting
directly from MessageLite).

PiperOrigin-RevId: 304286535
2020-04-04 18:05:22 -04:00
Andy Getz
dc82a33473 Merge pull request #2765 from kuzkry:unsupported-build-systems
PiperOrigin-RevId: 303742575
2020-03-31 19:23:30 -04:00
Andy Getz
01e4fbf5ca Merge pull request #2764 from kuzkry:googletest-output-test-dead-code
PiperOrigin-RevId: 303414597
2020-03-31 19:23:21 -04:00
Laurent VERDOÏA
e3c25c1699 Fix --gtest_print_time coloring 2020-03-29 14:58:47 +02:00
Arthur O'Dwyer
6ed4e7168f Replace the last instance of throw() with noexcept. NFC.
Fixes a -Wdeprecated warning.

/home/travis/build/Quuxplusone/googletest/googletest/test/googletest-death-test_ex_test.cc:62:28: error:
      dynamic exception specifications are deprecated [-Werror,-Wdeprecated]
  const char* what() const throw() override { return "exceptional message"; }
                           ^~~~~~~
/home/travis/build/Quuxplusone/googletest/googletest/test/googletest-death-test_ex_test.cc:62:28: note:
      use 'noexcept' instead
  const char* what() const throw() override { return "exceptional message"; }
                           ^~~~~~~
                           noexcept
2020-03-28 15:15:20 -04:00
vslashg
189299e957
Merge branch 'master' into quiet-flag 2020-03-27 15:36:58 -04:00
Mario Voorsluys
c447b2166b Fixed xml unit-tests and added extra tests
The extra tests check that the xml output is correct when a failure occurs before skipping, and that the right skip message is added to the file.

The json file had to be fixed because it's the same executable.
2020-03-26 19:17:20 +01:00
Mario Voorsluys
23dadb8472 Fix multiple \n characters in xml file when using GTEST_SKIP. 2020-03-26 19:14:32 +01:00
Mario Voorsluys
d28d05cc64 Only write ">\n" once when there is failure and skipped tests. 2020-03-26 15:03:32 +01:00
Mario Voorsluys
59e5b401a5 Output skipped information in the xml file. 2020-03-26 13:56:05 +01:00
Abseil Team
1ced315a48 Googletest export
Add --gtest_fail_fast support to googletest.

  - Analogous functionality to to golang -test.failfast and python --failfast
  - Stops test execution upon first test failure.
  - Also add support Bazel equivalent env var (TESTBRIDGE_TEST_RUNNER_FAIL_FAST)

PiperOrigin-RevId: 302488880
2020-03-24 17:32:07 -04:00
Krystian Kuzniarek
acabdf65fb remove chapters on Autotools, Meson and plain Makefiles 2020-03-24 15:37:34 +01:00
Krystian Kuzniarek
82e5767f78 remove dead code in googletest-output-test 2020-03-24 15:18:30 +01:00
Przemek Kryger
08347d7a16 Swap settimer and sigaction calls to avoid SIGPROF
Fixes #2760.
2020-03-24 10:08:42 +00:00
Neal Gompa
3549237957 Ensure that gtest/gmock pkgconfig requirements specify version
Google Test and Google Mock require matching versions to work,
so this requirement should be described in the pkgconfig files.

This change is derived from the one used for the Fedora gtest package.

Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2020-03-21 06:38:09 -04:00
Neal Gompa
94a7cf8c57 Set the version for the libraries
When building packaged shared libraries for use, having the version
set makes it so that the soname is set correctly for parallel installation.

This change is derived from the one used for the Fedora gtest package.

Signed-off-by: Neal Gompa <ngompa13@gmail.com>
2020-03-21 05:50:10 -04:00
vslashg
dbe804f986 Merge pull request #2746 from Romain-Geissler-1A:master
PiperOrigin-RevId: 302045808
2020-03-20 20:15:24 -04:00
Calum Robinson
fb19f57880 Add GTEST_BRIEF option
Only prints failures and a total pass count
2020-03-19 20:33:58 +00:00
Abseil Team
482ac6ee63 Googletest export
Move internal function out of header because Hyrum's law always wins.

PiperOrigin-RevId: 301446904
2020-03-17 17:20:47 -04:00
Abseil Team
230afdb24e Googletest export
Internal change

PiperOrigin-RevId: 299345492
2020-03-17 17:20:23 -04:00
Abseil Team
0bf8ea3065 Googletest export
Simplify the fallback printing logic to have a single sequence of trial printers.

PiperOrigin-RevId: 298621376
2020-03-17 17:20:15 -04:00
vslashg
3de76551e0 Merge pull request #2722 from JohanMabille:warnings
PiperOrigin-RevId: 298608772
2020-03-17 17:20:07 -04:00
vslashg
878bd92e0f Merge pull request #2716 from kuzkry:autotools-leftover
PiperOrigin-RevId: 298599235
2020-03-17 17:19:59 -04:00
Romain Geissler
a1b0173df9 Make sure IsATTY does not clobber errno.
Exposition of the problem:
> cat main.cpp

TEST(errnoTest, errnoTest)
{
    ASSERT_EQ(errno, 0);
}

int main(int argc, char** argv)
{
    ::testing::InitGoogleTest(&argc, argv);

    return RUN_ALL_TESTS();
}

Compiled with gcc 10 like this:
> g++ -pthread -o runtest main.cpp -Wl,-Bstatic -lgtest -Wl,-Bdynamic

Before patch:
>  ./runtest
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from errnoTest
[ RUN      ] errnoTest.errnoTest
[       OK ] errnoTest.errnoTest (0 ms)
[----------] 1 test from errnoTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 1 test.

(output is colored, I run this inside an interactive terminal).

> ./runtest | cat
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from errnoTest
[ RUN      ] errnoTest.errnoTest
main.cpp:5: Failure
Expected equality of these values:
  (*__errno_location ())
    Which is: 25
  0
[  FAILED  ] errnoTest.errnoTest (0 ms)
[----------] 1 test from errnoTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 0 tests.
[  FAILED  ] 1 test, listed below:
[  FAILED  ] errnoTest.errnoTest

 1 FAILED TEST

(output is not colored, since IsTTY return false, because of the pipe,
however it also clobbered errno for the tests).

After the patch, both cases are working fine:
> ./runtest
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from errnoTest
[ RUN      ] errnoTest.errnoTest
[       OK ] errnoTest.errnoTest (0 ms)
[----------] 1 test from errnoTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 1 test.

> ./runtest | cat
[==========] Running 1 test from 1 test suite.
[----------] Global test environment set-up.
[----------] 1 test from errnoTest
[ RUN      ] errnoTest.errnoTest
[       OK ] errnoTest.errnoTest (0 ms)
[----------] 1 test from errnoTest (0 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test suite ran. (0 ms total)
[  PASSED  ] 1 test.
2020-03-11 22:39:20 +00:00
Abseil Team
e588eb1ff9 Googletest export
Rename internal color enumerators to avoid conflicts with curses.h macro definitions.
Fixes #2685

PiperOrigin-RevId: 297639382
2020-02-28 16:41:09 -05:00
NINI1988
ff4872659a Add missing call for gtest_list_output_unittest_ unitTest.
Add unitTest for fixed TEST_P line number.
Use CodeLocation TestInfo struct.
2020-02-21 17:51:29 +01:00
Johan Mabille
04e52ebe78 Fixed warnings 2020-02-21 11:55:07 +01:00
NINI1988
25385c23e9 Fix: shadow member 2020-02-18 22:55:20 +01:00
NINI1988
921972cba3 Add correct line number to TEST_P test cases for gtest_output. 2020-02-18 22:23:44 +01:00
Abseil Team
6f5fd0d719 Googletest export
Add gmock Matcher<std::string_view> specialization.

PiperOrigin-RevId: 294443240
2020-02-11 15:50:26 -05:00
Abseil Team
139fa202c9 Googletest export
Refactor function GetNextPrime so that the loop precondition is checked before
loop instead of during every loop run.  Also by removing the loop condition,
it shows that the only exit from the loop is the return statement.

PiperOrigin-RevId: 293932783
2020-02-11 15:49:53 -05:00
Abseil Team
74b44b2d0f Googletest export
Disable warning C4800 for Visual Studio 2019.

The compiler warning C4800 is disabled by default in Visual Studio 2019,
but it can be enabled on the command line. The only version of
Visual Studio that does not support warning C4800 is Visual Studio 2017.

PiperOrigin-RevId: 292624510
2020-02-07 13:34:51 -05:00
Abseil Team
7bc671b8e0 Googletest export
Add documentation for ASSERT_DEBUG_DEATH/EXPECT_DEBUG_DEATH

PiperOrigin-RevId: 292138974
2020-02-07 13:34:33 -05:00
Abseil Team
7413280c52 Googletest export
Adds missing `#define` guard around `TEST_F(...)`

PiperOrigin-RevId: 291703056
2020-02-07 13:34:11 -05:00
Abseil Team
f1a6db9d4a Googletest export
Deleted an orphaned duplicate file and exclude another that shouldn't be part of :gtest_all_test.

This showed up while trying to debug the presubmit failure for: https://github.com/google/googletest/pull/2683

PiperOrigin-RevId: 291398123
2020-02-07 13:33:55 -05:00
aribibek
461bd03fc7
fix a link to documentation
fix a documentation link on "how to customize the printing of the arguments"
2020-02-06 18:41:20 +06:00
Krystian Kuzniarek
c378d7eb93 remove a dead reference to the Autotools script 2020-01-29 11:42:59 +01:00
Hosein Ghahramanzadeh
c09fbb2393 Fix always false condition and clean function body
An always false condition was remove from Normalize member function of
FilePath and the body of the function which was poorly writen is
improved.
2020-01-25 00:50:48 +03:30
Abseil Team
10b1902d89 Googletest export
Fix SCOPED_TRACE() message header in example

PiperOrigin-RevId: 290800241
2020-01-21 16:26:40 -05:00
Abseil Team
18b67bfc58 Googletest export
Add extra filtering so that the reported message differentiates between the case where INSTANTIATE_TEST_SUITE_P is missing vs. the case where TEST_P is missing.

PiperOrigin-RevId: 290114508
2020-01-21 16:26:08 -05:00
Abseil Team
8b4817e3df Googletest export
Correct the spelling of PARAMETERIZED.

PiperOrigin-RevId: 289897278
2020-01-16 13:56:21 -05:00
Abseil Team
3e79d366e3 Googletest export
Wire up things to support marking a type paramaterized test as allowed to be un-instantiated.

PiperOrigin-RevId: 289699939
2020-01-16 13:56:04 -05:00
Abseil Team
0b024bd91a Googletest export
Add GTEST_ALLOW_UNINSTANTIATED_PARAMTERIZED_TEST to mark a paramaterized test as allowed to be un-instantiated.

This allows test suites, that are defined in libraries and, for other reasons, get linked in (which should probably be avoided, but isn't always possible) to be marked as allowed to go uninstantiated.

This can also be used to grandfather existing issues and expedite adoption of the checks with regards to new cases before they can be fixed.

PiperOrigin-RevId: 289581573
2020-01-16 13:55:45 -05:00
Abseil Team
ed16134fb3 Googletest export
Change testing::TempDir() return value for Android

PiperOrigin-RevId: 289102017
2020-01-16 13:55:36 -05:00
Abseil Team
d854bd6acc Googletest export
Removing GTEST_API from TrueWithString.
This type is only used in test code on one side of a DLL boundary so it is not
necessary.

PiperOrigin-RevId: 288927929
2020-01-09 18:25:32 -05:00
Abseil Team
8417b73322 Googletest export
Close #2658
Mark test case destrucors as override.

PiperOrigin-RevId: 288507991
2020-01-09 18:25:16 -05:00
Andy Soffer
fbe34cecf4 Merge pull request #2639 from trzecieu:trzeci/move_ctor_assign
PiperOrigin-RevId: 286896167
2020-01-02 16:49:07 -05:00
Abseil Team
a13a062618 Googletest export
Add option (default to disabled) to make C++ type parameterized tests (TYPED_TEST_P) fail when they're not instantiated.

When an un-instantiated TYPED_TEST_P is found, a new test will be inserted that emits a suitable message. For now, that is just a notice, but the hope it to flip the bit to make it fail by default.

PiperOrigin-RevId: 286408038
2020-01-02 16:48:59 -05:00
Andy Soffer
008629ae21 Merge pull request #2624 from ShabbyX:master
PiperOrigin-RevId: 286397298
2020-01-02 16:48:50 -05:00
Piotr Paczkowski (trzeci.eu)
bf31ed376a
Make move operation noexcept. 2019-12-20 09:51:35 +01:00
Piotr Paczkowski (trzeci.eu)
cc05a3ca01
Define default destructor for test classes 2019-12-20 09:45:28 +01:00
Piotr Paczkowski (trzeci.eu)
05701fee28
Deleted functions as part of public interface 2019-12-20 09:41:58 +01:00
Piotr Paczkowski (trzeci.eu)
77b3a250ea
Review notes: Return T& from assignment operators 2019-12-20 09:39:06 +01:00
trzeci
9d8222ad66
Disable move constructor and assignment operator for test classes.
Disable move operations for TEST() and TEST_F() macros.
Previous implementation disabled only copy ctor and assing operator, but
this was violating rule of 5[1], which was captured by static code analysis tools
like clang-tidy `cppcoreguidelines-special-member-functions`.

[1]: https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#c21-if-you-define-or-delete-any-default-operation-define-or-delete-them-all
2019-12-17 23:43:31 +01:00
CJ Johnson
d166e09483 Merge pull request #2590 from kuzkry:remove-workaround_g++-stale-comments
PiperOrigin-RevId: 285812343
2019-12-16 16:03:59 -05:00
Shahbaz Youssefi
1800a38fb7 Revert "Googletest export": disallow empty prefix
This reverts commit 20b5b8ecc7.
Reason for revert: Breaks existing applications, such as ANGLE
(angleproject.org), requires adding an extra prefix that needs to be
typed for no reason (when testing from command line) and increases the
logs' sizes by a non-trivial amount due to the very large number of
tests ANGLE runs.

Original commit message:

    Add a compile time check to ensure that the parameters to TEST_P and
    INSTANTIATE_TEST_SUITE_P are not empty. Some compilers already fail
    in that case and, even where it works, it's likely to result in
    technically invalid code by virtue of creating reserved identifiers:
    https://en.cppreference.com/w/cpp/language/identifiers

First, every project is perfectly capable of adding a prefix if they
want to support such a compiler. This change penalizes every
project.

Second, using a prefix such as `_p` also results in reserved
identifiers, so this change is not really solving the problem.  For that
matter, instead of generating `gtest_##prefix##...`, you can generate
`gtest_x##prefix##...` to correctly fix the issue, including when empty
prefixes are used.
2019-12-16 13:01:59 -05:00
Shahbaz Youssefi
4b7809c2f5 Revert "Googletest export": Remove test for empty prefix
This reverts commit 4c25e2b87f.
Reason for revert: Reverting the commit that disallows empty prefixes.

Original commit message:

    Remove a test case rendered obsolete by disallowing empty argument for INSTANTIATE_TEST_SUITE_P.
    Remove the code that it was testing.
2019-12-16 13:01:52 -05:00
Shahbaz Youssefi
d201646906 Workaround VS bug w.r.t empty arguments to macros
Empty arguments can be passed to macros per C99 and C++11 specs, which
can then be forwarded to other macros.

Visual Studio's compiler has a bug in the following situation:

    #define A(x) #x
    #define B(x, y) A(x)
    B(, b)

In the above case, Visual Studio first expands x to nothing, then
complains that A is not invoked with the right amount of arguments.
However, x in A(x) is still one argument, even if it expands to no
preprocessing tokens.  See also https://stackoverflow.com/a/7674214.
2019-12-16 11:27:52 -05:00
Matt Calabrese
5b162a79d4 Merge pull request #2589 from kuzkry:remove-workaround_g++-no-space-after-first-macro-argument
PiperOrigin-RevId: 285255373
2019-12-13 12:58:11 -05:00
Abseil Team
d16f86ff1c Googletest export
Add GTEST_API_ to correct a build failure under MSCV.

PiperOrigin-RevId: 285208464
2019-12-13 12:58:02 -05:00
Abseil Team
d442089d53 Googletest export
Detect when C++ parametric tests (TEST_P) are not instantiated.

When an un-instantiated TEST_P is found, a new test will be inserted that will emit a warning message.

This can be made to error with minor code edits.
In the future, that is intended to be the default.

PiperOrigin-RevId: 284901666
2019-12-13 12:57:44 -05:00
Mark Barolak
78fdd6c00b Merge pull request #2609 from kuzkry:revert-2596
PiperOrigin-RevId: 284041013
2019-12-06 11:34:42 -05:00
Abseil Team
9ed99c6c83 Googletest export
Change googletest to notice failures during SetUpTestSuite() and TearDownTestSuite().

Previously, errors that occurred during those functions were logged but otherwise ignored. After this change, such failures will cause the test to fail and a brief summary will be printed at the bottom of the test log.

See https://github.com/google/googletest/issues/2330.

PiperOrigin-RevId: 284033342
2019-12-06 11:34:34 -05:00
Abseil Team
2002f267f0 Googletest export
Update example Environment class destructor annotation

PiperOrigin-RevId: 283986183
2019-12-05 14:41:59 -05:00
Abseil Team
cf75d4b92e Googletest export
Internal change

PiperOrigin-RevId: 283948137
2019-12-05 14:41:41 -05:00
Krystian Kuzniarek
967d8e05c2 Revert "unify googletest and googlemock main functions"
This reverts commit a909becdc5.
2019-11-27 15:00:52 +01:00