explodethosebits 0.3.0__cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- etb/__init__.py +351 -0
- etb/__init__.pyi +976 -0
- etb/_etb.cpython-39-x86_64-linux-gnu.so +0 -0
- etb/_version.py +34 -0
- etb/py.typed +2 -0
- explodethosebits-0.3.0.dist-info/METADATA +405 -0
- explodethosebits-0.3.0.dist-info/RECORD +88 -0
- explodethosebits-0.3.0.dist-info/WHEEL +6 -0
- explodethosebits-0.3.0.dist-info/licenses/LICENSE +21 -0
- explodethosebits-0.3.0.dist-info/sboms/auditwheel.cdx.json +1 -0
- explodethosebits.libs/libcudart-c3a75b33.so.12.8.90 +0 -0
- include/etb/bit_coordinate.hpp +45 -0
- include/etb/bit_extraction.hpp +79 -0
- include/etb/bit_pruning.hpp +122 -0
- include/etb/config.hpp +284 -0
- include/etb/cuda/arch_optimizations.cuh +358 -0
- include/etb/cuda/blackwell_optimizations.cuh +300 -0
- include/etb/cuda/cuda_common.cuh +265 -0
- include/etb/cuda/etb_cuda.cuh +200 -0
- include/etb/cuda/gpu_memory.cuh +406 -0
- include/etb/cuda/heuristics_kernel.cuh +315 -0
- include/etb/cuda/path_generator_kernel.cuh +272 -0
- include/etb/cuda/prefix_pruner_kernel.cuh +370 -0
- include/etb/cuda/signature_kernel.cuh +328 -0
- include/etb/early_stopping.hpp +246 -0
- include/etb/etb.hpp +20 -0
- include/etb/heuristics.hpp +165 -0
- include/etb/memoization.hpp +285 -0
- include/etb/path.hpp +86 -0
- include/etb/path_count.hpp +87 -0
- include/etb/path_generator.hpp +175 -0
- include/etb/prefix_trie.hpp +339 -0
- include/etb/reporting.hpp +437 -0
- include/etb/scoring.hpp +269 -0
- include/etb/signature.hpp +190 -0
- include/gmock/gmock-actions.h +2297 -0
- include/gmock/gmock-cardinalities.h +159 -0
- include/gmock/gmock-function-mocker.h +518 -0
- include/gmock/gmock-matchers.h +5623 -0
- include/gmock/gmock-more-actions.h +658 -0
- include/gmock/gmock-more-matchers.h +120 -0
- include/gmock/gmock-nice-strict.h +277 -0
- include/gmock/gmock-spec-builders.h +2148 -0
- include/gmock/gmock.h +96 -0
- include/gmock/internal/custom/README.md +18 -0
- include/gmock/internal/custom/gmock-generated-actions.h +7 -0
- include/gmock/internal/custom/gmock-matchers.h +37 -0
- include/gmock/internal/custom/gmock-port.h +40 -0
- include/gmock/internal/gmock-internal-utils.h +487 -0
- include/gmock/internal/gmock-port.h +139 -0
- include/gmock/internal/gmock-pp.h +279 -0
- include/gtest/gtest-assertion-result.h +237 -0
- include/gtest/gtest-death-test.h +345 -0
- include/gtest/gtest-matchers.h +923 -0
- include/gtest/gtest-message.h +252 -0
- include/gtest/gtest-param-test.h +546 -0
- include/gtest/gtest-printers.h +1161 -0
- include/gtest/gtest-spi.h +250 -0
- include/gtest/gtest-test-part.h +192 -0
- include/gtest/gtest-typed-test.h +331 -0
- include/gtest/gtest.h +2321 -0
- include/gtest/gtest_pred_impl.h +279 -0
- include/gtest/gtest_prod.h +60 -0
- include/gtest/internal/custom/README.md +44 -0
- include/gtest/internal/custom/gtest-port.h +37 -0
- include/gtest/internal/custom/gtest-printers.h +42 -0
- include/gtest/internal/custom/gtest.h +37 -0
- include/gtest/internal/gtest-death-test-internal.h +307 -0
- include/gtest/internal/gtest-filepath.h +227 -0
- include/gtest/internal/gtest-internal.h +1560 -0
- include/gtest/internal/gtest-param-util.h +1026 -0
- include/gtest/internal/gtest-port-arch.h +122 -0
- include/gtest/internal/gtest-port.h +2481 -0
- include/gtest/internal/gtest-string.h +178 -0
- include/gtest/internal/gtest-type-util.h +220 -0
- lib/libetb_core.a +0 -0
- lib64/cmake/GTest/GTestConfig.cmake +33 -0
- lib64/cmake/GTest/GTestConfigVersion.cmake +43 -0
- lib64/cmake/GTest/GTestTargets-release.cmake +49 -0
- lib64/cmake/GTest/GTestTargets.cmake +139 -0
- lib64/libgmock.a +0 -0
- lib64/libgmock_main.a +0 -0
- lib64/libgtest.a +0 -0
- lib64/libgtest_main.a +0 -0
- lib64/pkgconfig/gmock.pc +10 -0
- lib64/pkgconfig/gmock_main.pc +10 -0
- lib64/pkgconfig/gtest.pc +9 -0
- lib64/pkgconfig/gtest_main.pc +10 -0
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
// Copyright 2005, Google Inc.
|
|
2
|
+
// All rights reserved.
|
|
3
|
+
//
|
|
4
|
+
// Redistribution and use in source and binary forms, with or without
|
|
5
|
+
// modification, are permitted provided that the following conditions are
|
|
6
|
+
// met:
|
|
7
|
+
//
|
|
8
|
+
// * Redistributions of source code must retain the above copyright
|
|
9
|
+
// notice, this list of conditions and the following disclaimer.
|
|
10
|
+
// * Redistributions in binary form must reproduce the above
|
|
11
|
+
// copyright notice, this list of conditions and the following disclaimer
|
|
12
|
+
// in the documentation and/or other materials provided with the
|
|
13
|
+
// distribution.
|
|
14
|
+
// * Neither the name of Google Inc. nor the names of its
|
|
15
|
+
// contributors may be used to endorse or promote products derived from
|
|
16
|
+
// this software without specific prior written permission.
|
|
17
|
+
//
|
|
18
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
21
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
22
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
23
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
24
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
25
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
26
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
27
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
29
|
+
|
|
30
|
+
// The Google C++ Testing and Mocking Framework (Google Test)
|
|
31
|
+
//
|
|
32
|
+
// This header file declares the String class and functions used internally by
|
|
33
|
+
// Google Test. They are subject to change without notice. They should not used
|
|
34
|
+
// by code external to Google Test.
|
|
35
|
+
//
|
|
36
|
+
// This header file is #included by gtest-internal.h.
|
|
37
|
+
// It should not be #included by other files.
|
|
38
|
+
|
|
39
|
+
// IWYU pragma: private, include "gtest/gtest.h"
|
|
40
|
+
// IWYU pragma: friend gtest/.*
|
|
41
|
+
// IWYU pragma: friend gmock/.*
|
|
42
|
+
|
|
43
|
+
#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
|
|
44
|
+
#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
|
|
45
|
+
|
|
46
|
+
#ifdef __BORLANDC__
|
|
47
|
+
// string.h is not guaranteed to provide strcpy on C++ Builder.
|
|
48
|
+
#include <mem.h>
|
|
49
|
+
#endif
|
|
50
|
+
|
|
51
|
+
#include <string.h>
|
|
52
|
+
|
|
53
|
+
#include <cstdint>
|
|
54
|
+
#include <sstream>
|
|
55
|
+
#include <string>
|
|
56
|
+
|
|
57
|
+
#include "gtest/internal/gtest-port.h"
|
|
58
|
+
|
|
59
|
+
namespace testing {
|
|
60
|
+
namespace internal {
|
|
61
|
+
|
|
62
|
+
// String - an abstract class holding static string utilities.
|
|
63
|
+
class GTEST_API_ String {
|
|
64
|
+
public:
|
|
65
|
+
// Static utility methods
|
|
66
|
+
|
|
67
|
+
// Clones a 0-terminated C string, allocating memory using new. The
|
|
68
|
+
// caller is responsible for deleting the return value using
|
|
69
|
+
// delete[]. Returns the cloned string, or NULL if the input is
|
|
70
|
+
// NULL.
|
|
71
|
+
//
|
|
72
|
+
// This is different from strdup() in string.h, which allocates
|
|
73
|
+
// memory using malloc().
|
|
74
|
+
static const char* CloneCString(const char* c_str);
|
|
75
|
+
|
|
76
|
+
#ifdef GTEST_OS_WINDOWS_MOBILE
|
|
77
|
+
// Windows CE does not have the 'ANSI' versions of Win32 APIs. To be
|
|
78
|
+
// able to pass strings to Win32 APIs on CE we need to convert them
|
|
79
|
+
// to 'Unicode', UTF-16.
|
|
80
|
+
|
|
81
|
+
// Creates a UTF-16 wide string from the given ANSI string, allocating
|
|
82
|
+
// memory using new. The caller is responsible for deleting the return
|
|
83
|
+
// value using delete[]. Returns the wide string, or NULL if the
|
|
84
|
+
// input is NULL.
|
|
85
|
+
//
|
|
86
|
+
// The wide string is created using the ANSI codepage (CP_ACP) to
|
|
87
|
+
// match the behaviour of the ANSI versions of Win32 calls and the
|
|
88
|
+
// C runtime.
|
|
89
|
+
static LPCWSTR AnsiToUtf16(const char* c_str);
|
|
90
|
+
|
|
91
|
+
// Creates an ANSI string from the given wide string, allocating
|
|
92
|
+
// memory using new. The caller is responsible for deleting the return
|
|
93
|
+
// value using delete[]. Returns the ANSI string, or NULL if the
|
|
94
|
+
// input is NULL.
|
|
95
|
+
//
|
|
96
|
+
// The returned string is created using the ANSI codepage (CP_ACP) to
|
|
97
|
+
// match the behaviour of the ANSI versions of Win32 calls and the
|
|
98
|
+
// C runtime.
|
|
99
|
+
static const char* Utf16ToAnsi(LPCWSTR utf16_str);
|
|
100
|
+
#endif
|
|
101
|
+
|
|
102
|
+
// Compares two C strings. Returns true if and only if they have the same
|
|
103
|
+
// content.
|
|
104
|
+
//
|
|
105
|
+
// Unlike strcmp(), this function can handle NULL argument(s). A
|
|
106
|
+
// NULL C string is considered different to any non-NULL C string,
|
|
107
|
+
// including the empty string.
|
|
108
|
+
static bool CStringEquals(const char* lhs, const char* rhs);
|
|
109
|
+
|
|
110
|
+
// Converts a wide C string to a String using the UTF-8 encoding.
|
|
111
|
+
// NULL will be converted to "(null)". If an error occurred during
|
|
112
|
+
// the conversion, "(failed to convert from wide string)" is
|
|
113
|
+
// returned.
|
|
114
|
+
static std::string ShowWideCString(const wchar_t* wide_c_str);
|
|
115
|
+
|
|
116
|
+
// Compares two wide C strings. Returns true if and only if they have the
|
|
117
|
+
// same content.
|
|
118
|
+
//
|
|
119
|
+
// Unlike wcscmp(), this function can handle NULL argument(s). A
|
|
120
|
+
// NULL C string is considered different to any non-NULL C string,
|
|
121
|
+
// including the empty string.
|
|
122
|
+
static bool WideCStringEquals(const wchar_t* lhs, const wchar_t* rhs);
|
|
123
|
+
|
|
124
|
+
// Compares two C strings, ignoring case. Returns true if and only if
|
|
125
|
+
// they have the same content.
|
|
126
|
+
//
|
|
127
|
+
// Unlike strcasecmp(), this function can handle NULL argument(s).
|
|
128
|
+
// A NULL C string is considered different to any non-NULL C string,
|
|
129
|
+
// including the empty string.
|
|
130
|
+
static bool CaseInsensitiveCStringEquals(const char* lhs, const char* rhs);
|
|
131
|
+
|
|
132
|
+
// Compares two wide C strings, ignoring case. Returns true if and only if
|
|
133
|
+
// they have the same content.
|
|
134
|
+
//
|
|
135
|
+
// Unlike wcscasecmp(), this function can handle NULL argument(s).
|
|
136
|
+
// A NULL C string is considered different to any non-NULL wide C string,
|
|
137
|
+
// including the empty string.
|
|
138
|
+
// NB: The implementations on different platforms slightly differ.
|
|
139
|
+
// On windows, this method uses _wcsicmp which compares according to LC_CTYPE
|
|
140
|
+
// environment variable. On GNU platform this method uses wcscasecmp
|
|
141
|
+
// which compares according to LC_CTYPE category of the current locale.
|
|
142
|
+
// On MacOS X, it uses towlower, which also uses LC_CTYPE category of the
|
|
143
|
+
// current locale.
|
|
144
|
+
static bool CaseInsensitiveWideCStringEquals(const wchar_t* lhs,
|
|
145
|
+
const wchar_t* rhs);
|
|
146
|
+
|
|
147
|
+
// Returns true if and only if the given string ends with the given suffix,
|
|
148
|
+
// ignoring case. Any string is considered to end with an empty suffix.
|
|
149
|
+
static bool EndsWithCaseInsensitive(const std::string& str,
|
|
150
|
+
const std::string& suffix);
|
|
151
|
+
|
|
152
|
+
// Formats an int value as "%02d".
|
|
153
|
+
static std::string FormatIntWidth2(int value); // "%02d" for width == 2
|
|
154
|
+
|
|
155
|
+
// Formats an int value to given width with leading zeros.
|
|
156
|
+
static std::string FormatIntWidthN(int value, int width);
|
|
157
|
+
|
|
158
|
+
// Formats an int value as "%X".
|
|
159
|
+
static std::string FormatHexInt(int value);
|
|
160
|
+
|
|
161
|
+
// Formats an int value as "%X".
|
|
162
|
+
static std::string FormatHexUInt32(uint32_t value);
|
|
163
|
+
|
|
164
|
+
// Formats a byte as "%02X".
|
|
165
|
+
static std::string FormatByte(unsigned char value);
|
|
166
|
+
|
|
167
|
+
private:
|
|
168
|
+
String(); // Not meant to be instantiated.
|
|
169
|
+
}; // class String
|
|
170
|
+
|
|
171
|
+
// Gets the content of the stringstream's buffer as an std::string. Each '\0'
|
|
172
|
+
// character in the buffer is replaced with "\\0".
|
|
173
|
+
GTEST_API_ std::string StringStreamToString(::std::stringstream* stream);
|
|
174
|
+
|
|
175
|
+
} // namespace internal
|
|
176
|
+
} // namespace testing
|
|
177
|
+
|
|
178
|
+
#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_STRING_H_
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
// Copyright 2008 Google Inc.
|
|
2
|
+
// All Rights Reserved.
|
|
3
|
+
//
|
|
4
|
+
// Redistribution and use in source and binary forms, with or without
|
|
5
|
+
// modification, are permitted provided that the following conditions are
|
|
6
|
+
// met:
|
|
7
|
+
//
|
|
8
|
+
// * Redistributions of source code must retain the above copyright
|
|
9
|
+
// notice, this list of conditions and the following disclaimer.
|
|
10
|
+
// * Redistributions in binary form must reproduce the above
|
|
11
|
+
// copyright notice, this list of conditions and the following disclaimer
|
|
12
|
+
// in the documentation and/or other materials provided with the
|
|
13
|
+
// distribution.
|
|
14
|
+
// * Neither the name of Google Inc. nor the names of its
|
|
15
|
+
// contributors may be used to endorse or promote products derived from
|
|
16
|
+
// this software without specific prior written permission.
|
|
17
|
+
//
|
|
18
|
+
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
|
19
|
+
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
|
20
|
+
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
|
21
|
+
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
|
22
|
+
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
23
|
+
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
|
24
|
+
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
|
25
|
+
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
|
26
|
+
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
27
|
+
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
|
28
|
+
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
29
|
+
|
|
30
|
+
// Type utilities needed for implementing typed and type-parameterized
|
|
31
|
+
// tests.
|
|
32
|
+
|
|
33
|
+
// IWYU pragma: private, include "gtest/gtest.h"
|
|
34
|
+
// IWYU pragma: friend gtest/.*
|
|
35
|
+
// IWYU pragma: friend gmock/.*
|
|
36
|
+
|
|
37
|
+
#ifndef GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
|
|
38
|
+
#define GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
|
|
39
|
+
|
|
40
|
+
#include <string>
|
|
41
|
+
#include <type_traits>
|
|
42
|
+
#include <typeinfo>
|
|
43
|
+
|
|
44
|
+
#include "gtest/internal/gtest-port.h"
|
|
45
|
+
|
|
46
|
+
// #ifdef __GNUC__ is too general here. It is possible to use gcc without using
|
|
47
|
+
// libstdc++ (which is where cxxabi.h comes from).
|
|
48
|
+
#if GTEST_HAS_CXXABI_H_
|
|
49
|
+
#include <cxxabi.h>
|
|
50
|
+
#elif defined(__HP_aCC)
|
|
51
|
+
#include <acxx_demangle.h>
|
|
52
|
+
#endif // GTEST_HASH_CXXABI_H_
|
|
53
|
+
|
|
54
|
+
namespace testing {
|
|
55
|
+
namespace internal {
|
|
56
|
+
|
|
57
|
+
// Canonicalizes a given name with respect to the Standard C++ Library.
|
|
58
|
+
// This handles removing the inline namespace within `std` that is
|
|
59
|
+
// used by various standard libraries (e.g., `std::__1`). Names outside
|
|
60
|
+
// of namespace std are returned unmodified.
|
|
61
|
+
inline std::string CanonicalizeForStdLibVersioning(std::string s) {
|
|
62
|
+
static const char prefix[] = "std::__";
|
|
63
|
+
if (s.compare(0, strlen(prefix), prefix) == 0) {
|
|
64
|
+
std::string::size_type end = s.find("::", strlen(prefix));
|
|
65
|
+
if (end != s.npos) {
|
|
66
|
+
// Erase everything between the initial `std` and the second `::`.
|
|
67
|
+
s.erase(strlen("std"), end - strlen("std"));
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
// Strip redundant spaces in typename to match MSVC
|
|
72
|
+
// For example, std::pair<int, bool> -> std::pair<int,bool>
|
|
73
|
+
static const char to_search[] = ", ";
|
|
74
|
+
static const char replace_str[] = ",";
|
|
75
|
+
size_t pos = 0;
|
|
76
|
+
while (true) {
|
|
77
|
+
// Get the next occurrence from the current position
|
|
78
|
+
pos = s.find(to_search, pos);
|
|
79
|
+
if (pos == std::string::npos) {
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
// Replace this occurrence of substring
|
|
83
|
+
s.replace(pos, strlen(to_search), replace_str);
|
|
84
|
+
pos += strlen(replace_str);
|
|
85
|
+
}
|
|
86
|
+
return s;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
#if GTEST_HAS_RTTI
|
|
90
|
+
// GetTypeName(const std::type_info&) returns a human-readable name of type T.
|
|
91
|
+
inline std::string GetTypeName(const std::type_info& type) {
|
|
92
|
+
const char* const name = type.name();
|
|
93
|
+
#if GTEST_HAS_CXXABI_H_ || defined(__HP_aCC)
|
|
94
|
+
int status = 0;
|
|
95
|
+
// gcc's implementation of typeid(T).name() mangles the type name,
|
|
96
|
+
// so we have to demangle it.
|
|
97
|
+
#if GTEST_HAS_CXXABI_H_
|
|
98
|
+
using abi::__cxa_demangle;
|
|
99
|
+
#endif // GTEST_HAS_CXXABI_H_
|
|
100
|
+
char* const readable_name = __cxa_demangle(name, nullptr, nullptr, &status);
|
|
101
|
+
const std::string name_str(status == 0 ? readable_name : name);
|
|
102
|
+
free(readable_name);
|
|
103
|
+
return CanonicalizeForStdLibVersioning(name_str);
|
|
104
|
+
#elif defined(_MSC_VER)
|
|
105
|
+
// Strip struct and class due to differences between
|
|
106
|
+
// MSVC and other compilers. std::pair<int,bool> is printed as
|
|
107
|
+
// "struct std::pair<int,bool>" when using MSVC vs "std::pair<int, bool>" with
|
|
108
|
+
// other compilers.
|
|
109
|
+
std::string s = name;
|
|
110
|
+
// Only strip the leading "struct " and "class ", so uses rfind == 0 to
|
|
111
|
+
// ensure that
|
|
112
|
+
if (s.rfind("struct ", 0) == 0) {
|
|
113
|
+
s = s.substr(strlen("struct "));
|
|
114
|
+
} else if (s.rfind("class ", 0) == 0) {
|
|
115
|
+
s = s.substr(strlen("class "));
|
|
116
|
+
}
|
|
117
|
+
return s;
|
|
118
|
+
#else
|
|
119
|
+
return name;
|
|
120
|
+
#endif // GTEST_HAS_CXXABI_H_ || __HP_aCC
|
|
121
|
+
}
|
|
122
|
+
#endif // GTEST_HAS_RTTI
|
|
123
|
+
|
|
124
|
+
// GetTypeName<T>() returns a human-readable name of type T if and only if
|
|
125
|
+
// RTTI is enabled, otherwise it returns a dummy type name.
|
|
126
|
+
// NB: This function is also used in Google Mock, so don't move it inside of
|
|
127
|
+
// the typed-test-only section below.
|
|
128
|
+
template <typename T>
|
|
129
|
+
std::string GetTypeName() {
|
|
130
|
+
#if GTEST_HAS_RTTI
|
|
131
|
+
return GetTypeName(typeid(T));
|
|
132
|
+
#else
|
|
133
|
+
return "<type>";
|
|
134
|
+
#endif // GTEST_HAS_RTTI
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
// A unique type indicating an empty node
|
|
138
|
+
struct None {};
|
|
139
|
+
|
|
140
|
+
#define GTEST_TEMPLATE_ \
|
|
141
|
+
template <typename T> \
|
|
142
|
+
class
|
|
143
|
+
|
|
144
|
+
// The template "selector" struct TemplateSel<Tmpl> is used to
|
|
145
|
+
// represent Tmpl, which must be a class template with one type
|
|
146
|
+
// parameter, as a type. TemplateSel<Tmpl>::Bind<T>::type is defined
|
|
147
|
+
// as the type Tmpl<T>. This allows us to actually instantiate the
|
|
148
|
+
// template "selected" by TemplateSel<Tmpl>.
|
|
149
|
+
//
|
|
150
|
+
// This trick is necessary for simulating typedef for class templates,
|
|
151
|
+
// which C++ doesn't support directly.
|
|
152
|
+
template <GTEST_TEMPLATE_ Tmpl>
|
|
153
|
+
struct TemplateSel {
|
|
154
|
+
template <typename T>
|
|
155
|
+
struct Bind {
|
|
156
|
+
typedef Tmpl<T> type;
|
|
157
|
+
};
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
#define GTEST_BIND_(TmplSel, T) TmplSel::template Bind<T>::type
|
|
161
|
+
|
|
162
|
+
template <GTEST_TEMPLATE_ Head_, GTEST_TEMPLATE_... Tail_>
|
|
163
|
+
struct Templates {
|
|
164
|
+
using Head = TemplateSel<Head_>;
|
|
165
|
+
using Tail = Templates<Tail_...>;
|
|
166
|
+
};
|
|
167
|
+
|
|
168
|
+
template <GTEST_TEMPLATE_ Head_>
|
|
169
|
+
struct Templates<Head_> {
|
|
170
|
+
using Head = TemplateSel<Head_>;
|
|
171
|
+
using Tail = None;
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
// Tuple-like type lists
|
|
175
|
+
template <typename Head_, typename... Tail_>
|
|
176
|
+
struct Types {
|
|
177
|
+
using Head = Head_;
|
|
178
|
+
using Tail = Types<Tail_...>;
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
template <typename Head_>
|
|
182
|
+
struct Types<Head_> {
|
|
183
|
+
using Head = Head_;
|
|
184
|
+
using Tail = None;
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
// Helper metafunctions to tell apart a single type from types
|
|
188
|
+
// generated by ::testing::Types
|
|
189
|
+
template <typename... Ts>
|
|
190
|
+
struct ProxyTypeList {
|
|
191
|
+
using type = Types<Ts...>;
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
template <typename>
|
|
195
|
+
struct is_proxy_type_list : std::false_type {};
|
|
196
|
+
|
|
197
|
+
template <typename... Ts>
|
|
198
|
+
struct is_proxy_type_list<ProxyTypeList<Ts...>> : std::true_type {};
|
|
199
|
+
|
|
200
|
+
// Generator which conditionally creates type lists.
|
|
201
|
+
// It recognizes if a requested type list should be created
|
|
202
|
+
// and prevents creating a new type list nested within another one.
|
|
203
|
+
template <typename T>
|
|
204
|
+
struct GenerateTypeList {
|
|
205
|
+
private:
|
|
206
|
+
using proxy = typename std::conditional<is_proxy_type_list<T>::value, T,
|
|
207
|
+
ProxyTypeList<T>>::type;
|
|
208
|
+
|
|
209
|
+
public:
|
|
210
|
+
using type = typename proxy::type;
|
|
211
|
+
};
|
|
212
|
+
|
|
213
|
+
} // namespace internal
|
|
214
|
+
|
|
215
|
+
template <typename... Ts>
|
|
216
|
+
using Types = internal::ProxyTypeList<Ts...>;
|
|
217
|
+
|
|
218
|
+
} // namespace testing
|
|
219
|
+
|
|
220
|
+
#endif // GOOGLETEST_INCLUDE_GTEST_INTERNAL_GTEST_TYPE_UTIL_H_
|
lib/libetb_core.a
ADDED
|
Binary file
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
####### Expanded from @PACKAGE_INIT@ by configure_package_config_file() #######
|
|
3
|
+
####### Any changes to this file will be overwritten by the next CMake run ####
|
|
4
|
+
####### The input file was Config.cmake.in ########
|
|
5
|
+
|
|
6
|
+
get_filename_component(PACKAGE_PREFIX_DIR "${CMAKE_CURRENT_LIST_DIR}/../../../" ABSOLUTE)
|
|
7
|
+
|
|
8
|
+
macro(set_and_check _var _file)
|
|
9
|
+
set(${_var} "${_file}")
|
|
10
|
+
if(NOT EXISTS "${_file}")
|
|
11
|
+
message(FATAL_ERROR "File or directory ${_file} referenced by variable ${_var} does not exist !")
|
|
12
|
+
endif()
|
|
13
|
+
endmacro()
|
|
14
|
+
|
|
15
|
+
macro(check_required_components _NAME)
|
|
16
|
+
foreach(comp ${${_NAME}_FIND_COMPONENTS})
|
|
17
|
+
if(NOT ${_NAME}_${comp}_FOUND)
|
|
18
|
+
if(${_NAME}_FIND_REQUIRED_${comp})
|
|
19
|
+
set(${_NAME}_FOUND FALSE)
|
|
20
|
+
endif()
|
|
21
|
+
endif()
|
|
22
|
+
endforeach()
|
|
23
|
+
endmacro()
|
|
24
|
+
|
|
25
|
+
####################################################################################
|
|
26
|
+
include(CMakeFindDependencyMacro)
|
|
27
|
+
if (ON)
|
|
28
|
+
set(THREADS_PREFER_PTHREAD_FLAG )
|
|
29
|
+
find_dependency(Threads)
|
|
30
|
+
endif()
|
|
31
|
+
|
|
32
|
+
include("${CMAKE_CURRENT_LIST_DIR}/GTestTargets.cmake")
|
|
33
|
+
check_required_components("")
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# This is a basic version file for the Config-mode of find_package().
|
|
2
|
+
# It is used by write_basic_package_version_file() as input file for configure_file()
|
|
3
|
+
# to create a version-file which can be installed along a config.cmake file.
|
|
4
|
+
#
|
|
5
|
+
# The created file sets PACKAGE_VERSION_EXACT if the current version string and
|
|
6
|
+
# the requested version string are exactly the same and it sets
|
|
7
|
+
# PACKAGE_VERSION_COMPATIBLE if the current version is >= requested version.
|
|
8
|
+
# The variable CVF_VERSION must be set before calling configure_file().
|
|
9
|
+
|
|
10
|
+
set(PACKAGE_VERSION "1.14.0")
|
|
11
|
+
|
|
12
|
+
if (PACKAGE_FIND_VERSION_RANGE)
|
|
13
|
+
# Package version must be in the requested version range
|
|
14
|
+
if ((PACKAGE_FIND_VERSION_RANGE_MIN STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION_MIN)
|
|
15
|
+
OR ((PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "INCLUDE" AND PACKAGE_VERSION VERSION_GREATER PACKAGE_FIND_VERSION_MAX)
|
|
16
|
+
OR (PACKAGE_FIND_VERSION_RANGE_MAX STREQUAL "EXCLUDE" AND PACKAGE_VERSION VERSION_GREATER_EQUAL PACKAGE_FIND_VERSION_MAX)))
|
|
17
|
+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
|
18
|
+
else()
|
|
19
|
+
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
|
20
|
+
endif()
|
|
21
|
+
else()
|
|
22
|
+
if(PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
|
|
23
|
+
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
|
24
|
+
else()
|
|
25
|
+
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
|
26
|
+
if(PACKAGE_FIND_VERSION STREQUAL PACKAGE_VERSION)
|
|
27
|
+
set(PACKAGE_VERSION_EXACT TRUE)
|
|
28
|
+
endif()
|
|
29
|
+
endif()
|
|
30
|
+
endif()
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# if the installed or the using project don't have CMAKE_SIZEOF_VOID_P set, ignore it:
|
|
34
|
+
if("${CMAKE_SIZEOF_VOID_P}" STREQUAL "" OR "8" STREQUAL "")
|
|
35
|
+
return()
|
|
36
|
+
endif()
|
|
37
|
+
|
|
38
|
+
# check that the installed version has the same 32/64bit-ness as the one which is currently searching:
|
|
39
|
+
if(NOT CMAKE_SIZEOF_VOID_P STREQUAL "8")
|
|
40
|
+
math(EXPR installedBits "8 * 8")
|
|
41
|
+
set(PACKAGE_VERSION "${PACKAGE_VERSION} (${installedBits}bit)")
|
|
42
|
+
set(PACKAGE_VERSION_UNSUITABLE TRUE)
|
|
43
|
+
endif()
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
#----------------------------------------------------------------
|
|
2
|
+
# Generated CMake target import file for configuration "Release".
|
|
3
|
+
#----------------------------------------------------------------
|
|
4
|
+
|
|
5
|
+
# Commands may need to know the format version.
|
|
6
|
+
set(CMAKE_IMPORT_FILE_VERSION 1)
|
|
7
|
+
|
|
8
|
+
# Import target "GTest::gtest" for configuration "Release"
|
|
9
|
+
set_property(TARGET GTest::gtest APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
|
10
|
+
set_target_properties(GTest::gtest PROPERTIES
|
|
11
|
+
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
|
12
|
+
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libgtest.a"
|
|
13
|
+
)
|
|
14
|
+
|
|
15
|
+
list(APPEND _cmake_import_check_targets GTest::gtest )
|
|
16
|
+
list(APPEND _cmake_import_check_files_for_GTest::gtest "${_IMPORT_PREFIX}/lib64/libgtest.a" )
|
|
17
|
+
|
|
18
|
+
# Import target "GTest::gtest_main" for configuration "Release"
|
|
19
|
+
set_property(TARGET GTest::gtest_main APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
|
20
|
+
set_target_properties(GTest::gtest_main PROPERTIES
|
|
21
|
+
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
|
22
|
+
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libgtest_main.a"
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
list(APPEND _cmake_import_check_targets GTest::gtest_main )
|
|
26
|
+
list(APPEND _cmake_import_check_files_for_GTest::gtest_main "${_IMPORT_PREFIX}/lib64/libgtest_main.a" )
|
|
27
|
+
|
|
28
|
+
# Import target "GTest::gmock" for configuration "Release"
|
|
29
|
+
set_property(TARGET GTest::gmock APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
|
30
|
+
set_target_properties(GTest::gmock PROPERTIES
|
|
31
|
+
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
|
32
|
+
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libgmock.a"
|
|
33
|
+
)
|
|
34
|
+
|
|
35
|
+
list(APPEND _cmake_import_check_targets GTest::gmock )
|
|
36
|
+
list(APPEND _cmake_import_check_files_for_GTest::gmock "${_IMPORT_PREFIX}/lib64/libgmock.a" )
|
|
37
|
+
|
|
38
|
+
# Import target "GTest::gmock_main" for configuration "Release"
|
|
39
|
+
set_property(TARGET GTest::gmock_main APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
|
|
40
|
+
set_target_properties(GTest::gmock_main PROPERTIES
|
|
41
|
+
IMPORTED_LINK_INTERFACE_LANGUAGES_RELEASE "CXX"
|
|
42
|
+
IMPORTED_LOCATION_RELEASE "${_IMPORT_PREFIX}/lib64/libgmock_main.a"
|
|
43
|
+
)
|
|
44
|
+
|
|
45
|
+
list(APPEND _cmake_import_check_targets GTest::gmock_main )
|
|
46
|
+
list(APPEND _cmake_import_check_files_for_GTest::gmock_main "${_IMPORT_PREFIX}/lib64/libgmock_main.a" )
|
|
47
|
+
|
|
48
|
+
# Commands beyond this point should not need to know the version.
|
|
49
|
+
set(CMAKE_IMPORT_FILE_VERSION)
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# Generated by CMake
|
|
2
|
+
|
|
3
|
+
if("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" LESS 2.8)
|
|
4
|
+
message(FATAL_ERROR "CMake >= 2.8.12 required")
|
|
5
|
+
endif()
|
|
6
|
+
if(CMAKE_VERSION VERSION_LESS "2.8.12")
|
|
7
|
+
message(FATAL_ERROR "CMake >= 2.8.12 required")
|
|
8
|
+
endif()
|
|
9
|
+
cmake_policy(PUSH)
|
|
10
|
+
cmake_policy(VERSION 2.8.12...4.0)
|
|
11
|
+
#----------------------------------------------------------------
|
|
12
|
+
# Generated CMake target import file.
|
|
13
|
+
#----------------------------------------------------------------
|
|
14
|
+
|
|
15
|
+
# Commands may need to know the format version.
|
|
16
|
+
set(CMAKE_IMPORT_FILE_VERSION 1)
|
|
17
|
+
|
|
18
|
+
# Protect against multiple inclusion, which would fail when already imported targets are added once more.
|
|
19
|
+
set(_cmake_targets_defined "")
|
|
20
|
+
set(_cmake_targets_not_defined "")
|
|
21
|
+
set(_cmake_expected_targets "")
|
|
22
|
+
foreach(_cmake_expected_target IN ITEMS GTest::gtest GTest::gtest_main GTest::gmock GTest::gmock_main)
|
|
23
|
+
list(APPEND _cmake_expected_targets "${_cmake_expected_target}")
|
|
24
|
+
if(TARGET "${_cmake_expected_target}")
|
|
25
|
+
list(APPEND _cmake_targets_defined "${_cmake_expected_target}")
|
|
26
|
+
else()
|
|
27
|
+
list(APPEND _cmake_targets_not_defined "${_cmake_expected_target}")
|
|
28
|
+
endif()
|
|
29
|
+
endforeach()
|
|
30
|
+
unset(_cmake_expected_target)
|
|
31
|
+
if(_cmake_targets_defined STREQUAL _cmake_expected_targets)
|
|
32
|
+
unset(_cmake_targets_defined)
|
|
33
|
+
unset(_cmake_targets_not_defined)
|
|
34
|
+
unset(_cmake_expected_targets)
|
|
35
|
+
unset(CMAKE_IMPORT_FILE_VERSION)
|
|
36
|
+
cmake_policy(POP)
|
|
37
|
+
return()
|
|
38
|
+
endif()
|
|
39
|
+
if(NOT _cmake_targets_defined STREQUAL "")
|
|
40
|
+
string(REPLACE ";" ", " _cmake_targets_defined_text "${_cmake_targets_defined}")
|
|
41
|
+
string(REPLACE ";" ", " _cmake_targets_not_defined_text "${_cmake_targets_not_defined}")
|
|
42
|
+
message(FATAL_ERROR "Some (but not all) targets in this export set were already defined.\nTargets Defined: ${_cmake_targets_defined_text}\nTargets not yet defined: ${_cmake_targets_not_defined_text}\n")
|
|
43
|
+
endif()
|
|
44
|
+
unset(_cmake_targets_defined)
|
|
45
|
+
unset(_cmake_targets_not_defined)
|
|
46
|
+
unset(_cmake_expected_targets)
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
# Compute the installation prefix relative to this file.
|
|
50
|
+
get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
|
51
|
+
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
|
52
|
+
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
|
53
|
+
get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH)
|
|
54
|
+
if(_IMPORT_PREFIX STREQUAL "/")
|
|
55
|
+
set(_IMPORT_PREFIX "")
|
|
56
|
+
endif()
|
|
57
|
+
|
|
58
|
+
# Create imported target GTest::gtest
|
|
59
|
+
add_library(GTest::gtest STATIC IMPORTED)
|
|
60
|
+
|
|
61
|
+
set_target_properties(GTest::gtest PROPERTIES
|
|
62
|
+
INTERFACE_COMPILE_FEATURES "cxx_std_14"
|
|
63
|
+
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
64
|
+
INTERFACE_LINK_LIBRARIES "Threads::Threads"
|
|
65
|
+
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
66
|
+
)
|
|
67
|
+
|
|
68
|
+
# Create imported target GTest::gtest_main
|
|
69
|
+
add_library(GTest::gtest_main STATIC IMPORTED)
|
|
70
|
+
|
|
71
|
+
set_target_properties(GTest::gtest_main PROPERTIES
|
|
72
|
+
INTERFACE_COMPILE_FEATURES "cxx_std_14"
|
|
73
|
+
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
74
|
+
INTERFACE_LINK_LIBRARIES "Threads::Threads;GTest::gtest"
|
|
75
|
+
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
76
|
+
)
|
|
77
|
+
|
|
78
|
+
# Create imported target GTest::gmock
|
|
79
|
+
add_library(GTest::gmock STATIC IMPORTED)
|
|
80
|
+
|
|
81
|
+
set_target_properties(GTest::gmock PROPERTIES
|
|
82
|
+
INTERFACE_COMPILE_FEATURES "cxx_std_14"
|
|
83
|
+
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
84
|
+
INTERFACE_LINK_LIBRARIES "Threads::Threads;GTest::gtest"
|
|
85
|
+
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
86
|
+
)
|
|
87
|
+
|
|
88
|
+
# Create imported target GTest::gmock_main
|
|
89
|
+
add_library(GTest::gmock_main STATIC IMPORTED)
|
|
90
|
+
|
|
91
|
+
set_target_properties(GTest::gmock_main PROPERTIES
|
|
92
|
+
INTERFACE_COMPILE_FEATURES "cxx_std_14"
|
|
93
|
+
INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
94
|
+
INTERFACE_LINK_LIBRARIES "Threads::Threads;GTest::gmock"
|
|
95
|
+
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include"
|
|
96
|
+
)
|
|
97
|
+
|
|
98
|
+
# Load information for each installed configuration.
|
|
99
|
+
file(GLOB _cmake_config_files "${CMAKE_CURRENT_LIST_DIR}/GTestTargets-*.cmake")
|
|
100
|
+
foreach(_cmake_config_file IN LISTS _cmake_config_files)
|
|
101
|
+
include("${_cmake_config_file}")
|
|
102
|
+
endforeach()
|
|
103
|
+
unset(_cmake_config_file)
|
|
104
|
+
unset(_cmake_config_files)
|
|
105
|
+
|
|
106
|
+
# Cleanup temporary variables.
|
|
107
|
+
set(_IMPORT_PREFIX)
|
|
108
|
+
|
|
109
|
+
# Loop over all imported files and verify that they actually exist
|
|
110
|
+
foreach(_cmake_target IN LISTS _cmake_import_check_targets)
|
|
111
|
+
if(CMAKE_VERSION VERSION_LESS "3.28"
|
|
112
|
+
OR NOT DEFINED _cmake_import_check_xcframework_for_${_cmake_target}
|
|
113
|
+
OR NOT IS_DIRECTORY "${_cmake_import_check_xcframework_for_${_cmake_target}}")
|
|
114
|
+
foreach(_cmake_file IN LISTS "_cmake_import_check_files_for_${_cmake_target}")
|
|
115
|
+
if(NOT EXISTS "${_cmake_file}")
|
|
116
|
+
message(FATAL_ERROR "The imported target \"${_cmake_target}\" references the file
|
|
117
|
+
\"${_cmake_file}\"
|
|
118
|
+
but this file does not exist. Possible reasons include:
|
|
119
|
+
* The file was deleted, renamed, or moved to another location.
|
|
120
|
+
* An install or uninstall procedure did not complete successfully.
|
|
121
|
+
* The installation package was faulty and contained
|
|
122
|
+
\"${CMAKE_CURRENT_LIST_FILE}\"
|
|
123
|
+
but not all the files it references.
|
|
124
|
+
")
|
|
125
|
+
endif()
|
|
126
|
+
endforeach()
|
|
127
|
+
endif()
|
|
128
|
+
unset(_cmake_file)
|
|
129
|
+
unset("_cmake_import_check_files_for_${_cmake_target}")
|
|
130
|
+
endforeach()
|
|
131
|
+
unset(_cmake_target)
|
|
132
|
+
unset(_cmake_import_check_targets)
|
|
133
|
+
|
|
134
|
+
# This file does not depend on other imported targets which have
|
|
135
|
+
# been exported from the same project but in a separate export set.
|
|
136
|
+
|
|
137
|
+
# Commands beyond this point should not need to know the version.
|
|
138
|
+
set(CMAKE_IMPORT_FILE_VERSION)
|
|
139
|
+
cmake_policy(POP)
|
lib64/libgmock.a
ADDED
|
Binary file
|
lib64/libgmock_main.a
ADDED
|
Binary file
|
lib64/libgtest.a
ADDED
|
Binary file
|
lib64/libgtest_main.a
ADDED
|
Binary file
|