1. 11 Feb, 2021 2 commits
  2. 10 Jun, 2020 2 commits
    • Abseil Team's avatar
      Googletest export · 9f287b46
      Abseil Team authored
      Make visible ParseInt32 in case users have separate gmock/gtest libraries and hidden-by-default symbols.
      
      This function is still considered an internal implementation detail and is subject to change without notice. It is still unsafe/unsupported to link together libraries built at different commits.
      
      PiperOrigin-RevId: 315405429
      9f287b46
    • Ryan Harrison's avatar
      Fix build issue for MinGW · 1eda5d82
      Ryan Harrison authored
      Fixes #2885
      1eda5d82
  3. 29 May, 2020 3 commits
  4. 28 May, 2020 2 commits
  5. 24 Apr, 2020 1 commit
    • 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
  6. 11 Mar, 2020 1 commit
    • Romain Geissler's avatar
      Make sure IsATTY does not clobber errno. · a1b0173d
      Romain Geissler authored
      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.
      a1b0173d
  7. 11 Feb, 2020 1 commit
    • Abseil Team's avatar
      Googletest export · 6f5fd0d7
      Abseil Team authored
      Add gmock Matcher<std::string_view> specialization.
      
      PiperOrigin-RevId: 294443240
      6f5fd0d7
  8. 20 Dec, 2019 2 commits
  9. 17 Dec, 2019 1 commit
  10. 26 Nov, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · be74b4b2
      Abseil Team authored
      Wrap call to std::numeric_limits<>::max into round braces to appease MSVC.
      
      Closes #2589
      
      PiperOrigin-RevId: 282581361
      be74b4b2
  11. 22 Nov, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · 717ce7fe
      Abseil Team authored
      Use standard C++11 integer types in gtest-port.h.
      
      Remove testing::internal::{Int,Uint}{32,64} in favor of types
      guaranteed to be in <cstdint> since C++11.
      
      Tests for built-in integer type coverage are switched from
      {Int,Uint}64 to [unsigned] long long, which is guaranteed by
      C++11 to exist and be at least 64-bit wide.
      
      PiperOrigin-RevId: 281565263
      717ce7fe
  12. 24 Oct, 2019 1 commit
  13. 22 Oct, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · 611a321a
      Abseil Team authored
      Remove bool_constant in favor of std::integral_constant<bool, ...>;
      The one non-trivial use of bool_constant has been changed to have significantly
      fewer template specializations.
      
      PiperOrigin-RevId: 275842490
      611a321a
  14. 11 Oct, 2019 3 commits
  15. 25 Sep, 2019 1 commit
  16. 23 Sep, 2019 1 commit
    • Krystian Kuzniarek's avatar
      remove GTEST_ARRAY_SIZE_ · e0d16aa3
      Krystian Kuzniarek authored
      This macro didn't work when an array was passed to a function by pointer,
      in which case the information about its size was lost.
      Better alternatives are:
      * std::extent<T>::value (compile-time)
      * std::array<T, N>::size() (compile-time)
      * std::distance(std::begin(array), std::end(array)) (run-time)
      e0d16aa3
  17. 16 Sep, 2019 1 commit
  18. 11 Sep, 2019 1 commit
  19. 10 Sep, 2019 2 commits
  20. 23 Aug, 2019 1 commit
  21. 20 Aug, 2019 1 commit
  22. 14 Aug, 2019 1 commit
  23. 13 Aug, 2019 2 commits
  24. 30 Jul, 2019 1 commit
  25. 12 Apr, 2019 1 commit
  26. 11 Apr, 2019 1 commit
  27. 01 Apr, 2019 2 commits
    • Abseil Team's avatar
      Googletest export · b617b277
      Abseil Team authored
      Add HWASan annotations.
      
      These mirror existing ASan annotations.
      
      HWASan uses memory (address) tagging to detect memory errors:
      https://clang.llvm.org/docs/HardwareAssistedAddressSanitizerDesign.html
      
      It inserts a random tag in the MSB of heap and stack allocation addresses. This tag dominates pointer comparison in StackGrowsDown(), making the result non-deterministic, and entirely unrelated to the actual stack growth direction. The function attribute disables this behavior.
      
      The annotations in gtest-printers are there because the printers are used to basically dump memory. The sanitizers may have ideas why this memory should not be accessed, and that is counter productive. In particular, the test may access only part of an array, but in case of a test failure gtest will dump the entire array which may contain uninitialized bytes - that's what SANITIZE_MEMORY annotation is for. There are similar reasons for ADDRESS and THREAD annotations. HWADDRESS in its current implementation can not cause issues there, I believe, but it falls under the same umbrella of tools whose checking should not apply to test printers because it is not the code under test.
      
      PiperOrigin-RevId: 241379822
      b617b277
    • Abseil Team's avatar
      Googletest export · d9825431
      Abseil Team authored
      Remove support for "global" ::string and ::wstring types.
      This support existed for legacy codebases that existed from before namespaces
      where a thing. It is no longer necessary.
      
      PiperOrigin-RevId: 241335738
      d9825431
  28. 01 Mar, 2019 1 commit
    • Abseil Team's avatar
      Googletest export · db9b85e2
      Abseil Team authored
      Let embedders customize GTEST_INTERNAL_DEPRECATED().
      
      GTEST_INTERNAL_DEPRECATED is currently used to nudge googletest users to migrate off old TEST_CASE macros to the new TEST_SUITE macros. This move is non-trivial for Chromium (see https://crbug.com/925652), and might be difficult for other big projects with many dependencies.
      
      This CL facilitates moving off of deprecated APIs by making it possible for an embedder to define GTEST_INTERNAL_DEPRECATED() in gtest/internal/custom/gtest-port.h. Example usage:
      
      1) #define GTEST_INTERNAL_DEPRECATED() to nothing, to disable deprecation warnings while migrating off googletest's deprecated APIs. This can be preferable to having to disable all deprecation warnings (-Wno-error=deprecated or -Wno-deprecated-declarations).
      
      2) #define GTEST_INTERNAL_DEPRECATED() for an unsupported compiler.
      
      PiperOrigin-RevId: 236171043
      db9b85e2
  29. 13 Feb, 2019 1 commit