Skip to content
Snippets Groups Projects
  1. May 14, 2020
    • Abseil Team's avatar
      Googletest export · 8a32680c
      Abseil Team authored
      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
      8a32680c
  2. May 13, 2020
  3. May 08, 2020
    • Martin Storsjö's avatar
      Remove an explicit include of debugapi.h · d86e9e23
      Martin Storsjö authored
      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.
      d86e9e23
    • Martin Storsjö's avatar
      Revert "Googletest export" · 09f58751
      Martin Storsjö authored
      This reverts commit a9f6c1ed.
      
      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 a9f6c1ed 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.
      09f58751
    • Abseil Team's avatar
      Googletest export · a09ea700
      Abseil Team authored
      Fix `-Wgnu-zero-variadic-macro-arguments` in GMock
      
      Passing zero arguments to the variadic part of a macro is a GNU
      extension and triggers warnings when build projects using GMock with
      `-pedantic`.
      
       - Fix uses of `GMOCK_PP_INTERNAL_16TH` to always receive at least 17
      arguments. (this was triggered when `GMOCK_PP_NARG` or `GMOCK_PP_HAS_COMMA`
      were used with an argument containing no commas).
       - Fix `GMOCK_PP_HEAD` to append a dummy unused argument so that
      `GMOCK_PP_INTERNAL_HEAD` always has two arguments.
      
      PiperOrigin-RevId: 310414611
      a09ea700
  4. May 06, 2020
  5. May 02, 2020
    • Abseil Team's avatar
      Googletest export · 0eea2e9f
      Abseil Team authored
      Fix documentation. This address https://github.com/google/googletest/pull/2827.
      
      PiperOrigin-RevId: 309241571
      0eea2e9f
    • Abseil Team's avatar
      Googletest export · 3cfb4117
      Abseil Team authored
      Fix link to "high-perf dependency injection technique".
      
      PiperOrigin-RevId: 308893893
      3cfb4117
    • Gennadiy Rozental's avatar
      Merge pull request #2818 from inazarenko:master · 472cd8fd
      Gennadiy Rozental authored
      PiperOrigin-RevId: 308711492
      472cd8fd
    • Gennadiy Rozental's avatar
      Merge pull request #2818 from inazarenko:master · b99b421d
      Gennadiy Rozental authored
      PiperOrigin-RevId: 308650221
      b99b421d
    • Abseil Team's avatar
      Googletest export · 12932978
      Abseil Team authored
      internal change
      
      PiperOrigin-RevId: 308648034
      12932978
    • Gennadiy Rozental's avatar
      Merge pull request #2815 from Quuxplusone:simple · ef25d27d
      Gennadiy Rozental authored
      PiperOrigin-RevId: 308625388
      ef25d27d
    • Abseil Team's avatar
      Googletest export · 95555251
      Abseil Team authored
      Rewrite ReturnNew action without using pump.
      
      PiperOrigin-RevId: 308219616
      95555251
    • Abseil Team's avatar
      Googletest export · d7ca9af0
      Abseil Team authored
      Use InitGoogleTest() instead of InitGoogle() in code example
      
      PiperOrigin-RevId: 308070819
      d7ca9af0
    • Gennadiy Rozental's avatar
      Merge pull request #2797 from Jyun-Neng:master · b0e53e2d
      Gennadiy Rozental authored
      PiperOrigin-RevId: 307604377
      b0e53e2d
    • Abseil Team's avatar
      Googletest export · 1b3eb6ef
      Abseil Team authored
      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 306f3754. Perhaps those previous changes did not consider
      test code.
      
      PiperOrigin-RevId: 307495126
      1b3eb6ef
    • Abseil Team's avatar
      Googletest export · fb5d9b66
      Abseil Team authored
      Fix comment that describes how to test against nullopt.
      
      PiperOrigin-RevId: 307448375
      fb5d9b66
    • Abseil Team's avatar
      Googletest export · a6770105
      Abseil Team authored
      Internal change
      
      PiperOrigin-RevId: 307040308
      a6770105
  6. May 01, 2020
  7. Apr 24, 2020
    • Arthur O'Dwyer's avatar
      1b066f4e
    • Arthur O'Dwyer's avatar
      Fix a -Wdeprecated warning. · c7d8ec72
      Arthur O'Dwyer authored
          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&);
                   ^
      c7d8ec72
    • Arthur O'Dwyer's avatar
      Fix a -Wdeprecated warning. · 01c0ff5e
      Arthur O'Dwyer authored
          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() {}
                      ^
      01c0ff5e
    • Arthur O'Dwyer's avatar
      Fix a -Wdeprecated warning. · 11b3cec1
      Arthur O'Dwyer authored
          gmock-spec-builders.h:503:3: error:
          definition of implicit copy constructor for 'Expectation' is deprecated
          because it has a user-declared destructor [-Werror,-Wdeprecated]
              ~Expectation();
              ^
      11b3cec1
    • Arthur O'Dwyer's avatar
      Remove all uses of GTEST_DISALLOW_{MOVE_,}ASSIGN_. · 766ac2e1
      Arthur O'Dwyer authored
      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.
      766ac2e1
  8. Apr 20, 2020
  9. Apr 17, 2020
    • Arthur O'Dwyer's avatar
      VariadicMatcher needs a non-defaulted move constructor for compile-time performance. · 4f002f1e
      Arthur O'Dwyer authored
      We are about to remove all uses of GTEST_DISALLOW_ASSIGN_ in favor
      of using the Rule of Zero everywhere.
      
      Unfortunately, if we use the Rule of Zero here, then when the compiler
      needs to figure out if VariadicMatcher is move-constructible, it will
      recurse down into `tuple<Args...>`, which on libstdc++ recurses too deeply.
      
          In file included from googlemock/test/gmock-matchers_test.cc:43:
          In file included from googlemock/include/gmock/gmock-matchers.h:258:
          In file included from /usr/include/c++/5.5.0/algorithm:60:
          In file included from /usr/include/c++/5.5.0/utility:70:
          In file included from /usr/include/c++/5.5.0/bits/stl_pair.h:59:
          In file included from /usr/include/c++/5.5.0/bits/move.h:57:
          /usr/bin/include/c++/5.5.0/type_traits:115:26: fatal error:
                recursive template instantiation exceeded maximum depth of 256
              : public conditional<_B1::value, _B1, _B2>::type
                                   ^
      
      The move constructor is the only problematic case, for some unknown reason.
      With GTEST_DISALLOW_ASSIGN_, the presence of a copy assignment operator
      causes the move constructor to be non-declared, thus non-defaulted, thus
      non-problematic. Without GTEST_DISALLOW_ASSIGN_, we have to do one of the
      following:
      
      - Default the copy constructor, so that the move constructor will be non-declared.
      
      - Define our own non-defaulted move constructor.
      
      ...except that doing the latter STILL did not work!
      Fortunately, the former (default the copy constructor, don't provide
      any move constructor) both works in practice and is semantically
      equivalent to the old code.
      4f002f1e
    • Mark Barolak's avatar
      Merge pull request #2805 from pepsiman:patch-1 · dcc92d0a
      Mark Barolak authored
      PiperOrigin-RevId: 306462650
      dcc92d0a
    • Mark Barolak's avatar
      Merge pull request #2802 from e-i-n-s:fix_clang_warning · 71d5df6c
      Mark Barolak authored
      PiperOrigin-RevId: 306460942
      71d5df6c
    • Mark Barolak's avatar
      Merge pull request #2810 from ptahmose:master · 4c8e6a9f
      Mark Barolak authored
      PiperOrigin-RevId: 306460738
      4c8e6a9f
    • Abseil Team's avatar
      Googletest export · 373d72b6
      Abseil Team authored
      Fix link to "After clause". Sorry, reader, but this heading is in another document!
      
      PiperOrigin-RevId: 305947971
      373d72b6
    • Mark Barolak's avatar
      Merge pull request #2756 from Conan-Kudo:fix-pkgconfig-reqs · 4fe5ac53
      Mark Barolak authored
      PiperOrigin-RevId: 305747437
      4fe5ac53
    • Mark Barolak's avatar
      Merge pull request #2772 from Quuxplusone:travis · c2032090
      Mark Barolak authored
      PiperOrigin-RevId: 305747317
      c2032090
    • Mark Barolak's avatar
      Merge pull request #2773 from Quuxplusone:replace-noexcept · b51a49e0
      Mark Barolak authored
      PiperOrigin-RevId: 305707266
      b51a49e0
  10. Apr 12, 2020
  11. Apr 09, 2020
  12. Apr 07, 2020
Loading