Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
yangql
googletest
Commits
9759dcda
Commit
9759dcda
authored
Feb 19, 2016
by
Daniele Tamino
Browse files
Fix compilation on MinGW with native threads
parent
ff07a5de
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
17 additions
and
4 deletions
+17
-4
googletest/include/gtest/internal/gtest-port.h
googletest/include/gtest/internal/gtest-port.h
+9
-3
googletest/test/gtest-port_test.cc
googletest/test/gtest-port_test.cc
+7
-0
googletest/test/gtest_unittest.cc
googletest/test/gtest_unittest.cc
+1
-1
No files found.
googletest/include/gtest/internal/gtest-port.h
View file @
9759dcda
...
...
@@ -396,10 +396,16 @@
# include <io.h>
# endif
// In order to avoid having to include <windows.h>, use forward declaration
// assuming CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION.
#if GTEST_OS_WINDOWS_MINGW
// MinGW defined _CRITICAL_SECTION and _RTL_CRITICAL_SECTION as two
// separate (equivalent) structs, instead of using typedef
typedef
struct
_CRITICAL_SECTION
GTEST_CRITICAL_SECTION
;
#else
// Assume CRITICAL_SECTION is a typedef of _RTL_CRITICAL_SECTION.
// This assumption is verified by
// WindowsTypesTest.CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION.
struct
_RTL_CRITICAL_SECTION
;
typedef
struct
_RTL_CRITICAL_SECTION
GTEST_CRITICAL_SECTION
;
#endif
#else
// This assumes that non-Windows OSes provide unistd.h. For OSes where this
// is not the case, we need to include headers that provide the functions
...
...
@@ -1693,7 +1699,7 @@ class GTEST_API_ Mutex {
// by the linker.
MutexType
type_
;
long
critical_section_init_phase_
;
// NOLINT
_RTL
_CRITICAL_SECTION
*
critical_section_
;
GTEST
_CRITICAL_SECTION
*
critical_section_
;
GTEST_DISALLOW_COPY_AND_ASSIGN_
(
Mutex
);
};
...
...
googletest/test/gtest-port_test.cc
View file @
9759dcda
...
...
@@ -1295,9 +1295,16 @@ TEST(WindowsTypesTest, HANDLEIsVoidStar) {
StaticAssertTypeEq
<
HANDLE
,
void
*>
();
}
#if GTEST_OS_WINDOWS_MINGW
TEST
(
WindowsTypesTest
,
_CRITICAL_SECTIONIs_CRITICAL_SECTION
)
{
StaticAssertTypeEq
<
CRITICAL_SECTION
,
_CRITICAL_SECTION
>
();
}
#else
TEST
(
WindowsTypesTest
,
CRITICAL_SECTIONIs_RTL_CRITICAL_SECTION
)
{
StaticAssertTypeEq
<
CRITICAL_SECTION
,
_RTL_CRITICAL_SECTION
>
();
}
#endif
#endif // GTEST_OS_WINDOWS
}
// namespace internal
...
...
googletest/test/gtest_unittest.cc
View file @
9759dcda
...
...
@@ -442,7 +442,7 @@ class FormatEpochTimeInMillisAsIso8601Test : public Test {
// tzset() distinguishes between the TZ variable being present and empty
// and not being present, so we have to consider the case of time_zone
// being NULL.
#if _MSC_VER
#if _MSC_VER
|| GTEST_OS_WINDOWS_MINGW
// ...Unless it's MSVC, whose standard library's _putenv doesn't
// distinguish between an empty and a missing variable.
const
std
::
string
env_var
=
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment