summaryrefslogtreecommitdiff
blob: e6d3622ee11f25db4346cb0c492210e88709ebba (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
From 7f437a6e06d2ec3abd3e2fd1101ab6aab386bc44 Mon Sep 17 00:00:00 2001
From: Stanislav Angelovic <stanislav.angelovic@siemens.com>
Date: Thu, 27 Jan 2022 13:38:19 +0100
Subject: [PATCH] fix(tests): printer for std::chrono in googletest v1.11.0

---
 tests/CMakeLists.txt          |  2 +-
 tests/integrationtests/Defs.h | 22 ++++++++++------------
 2 files changed, 11 insertions(+), 13 deletions(-)

diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index fbf198c..ec42e55 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -19,7 +19,7 @@ if (NOT TARGET GTest::gmock)
     if (NOT TARGET GTest::gmock)
         include(FetchContent)
 
-        message("Fetching googletest...")
+        message("Fetching googletest v${GOOGLETEST_VERSION}...")
         FetchContent_Declare(googletest
                             GIT_REPOSITORY ${GOOGLETEST_GIT_REPO}
                             GIT_TAG        release-${GOOGLETEST_VERSION}
diff --git a/tests/integrationtests/Defs.h b/tests/integrationtests/Defs.h
index 2f129a4..2bfc7c9 100644
--- a/tests/integrationtests/Defs.h
+++ b/tests/integrationtests/Defs.h
@@ -56,20 +56,18 @@ const bool DEFAULT_BLOCKING_VALUE{true};
 
 constexpr const double DOUBLE_VALUE{3.24L};
 
-/** Duration stream operator for human readable gtest value output.
- *
- * Note that the conversion to double is lossy if the input type has 64 or more bits.
- * This is ok for our integration tests because they don't have very
- * accurate timing requirements.
- *
- * @return human readable duration in seconds
- */
+}}
+
+namespace testing::internal {
+
+// Printer for std::chrono::duration types.
+// This is a workaround, since it's not a good thing to add this to std namespace.
 template< class Rep, class Period >
-static std::ostream& operator<<(std::ostream& os, const std::chrono::duration<Rep, Period>& d)
-{
+void PrintTo(const ::std::chrono::duration<Rep, Period>& d, ::std::ostream* os) {
     auto seconds = std::chrono::duration_cast<std::chrono::duration<double>>(d);
-    return os << seconds.count() << " s";
+    *os << seconds.count() << "s";
+}
+
 }
-}}
 
 #endif /* SDBUS_CPP_INTEGRATIONTESTS_DEFS_H_ */