You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by ne...@apache.org on 2017/05/17 17:48:33 UTC

[1/6] mesos git commit: Introduced a filter for test cases that need thread-safety.

Repository: mesos
Updated Branches:
  refs/heads/master 382618b1f -> 0672c27c9


Introduced a filter for test cases that need thread-safety.

Instead of using asserts that would fail a test at runtime when
thread-safety of the test environment isn't given, these tests are now
filtered out before running the tests.

Review: https://reviews.apache.org/r/58347/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/82f3ab1a
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/82f3ab1a
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/82f3ab1a

Branch: refs/heads/master
Commit: 82f3ab1a0da9e85e5354d8feeb88bf4a8f1ec6f8
Parents: 382618b
Author: Jan Schlicht <ja...@mesosphere.io>
Authored: Wed May 17 10:21:50 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Wed May 17 10:47:40 2017 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/src/tests/future_tests.cpp  |   5 +-
 3rdparty/libprocess/src/tests/io_tests.cpp      |  20 +---
 3rdparty/libprocess/src/tests/limiter_tests.cpp |  15 +--
 3rdparty/libprocess/src/tests/main.cpp          |  28 ++++-
 3rdparty/libprocess/src/tests/metrics_tests.cpp |  20 +---
 3rdparty/libprocess/src/tests/process_tests.cpp | 110 ++++---------------
 3rdparty/libprocess/src/tests/reap_tests.cpp    |   8 +-
 7 files changed, 64 insertions(+), 142 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/future_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/future_tests.cpp b/3rdparty/libprocess/src/tests/future_tests.cpp
index f21361e..0c8725b 100644
--- a/3rdparty/libprocess/src/tests/future_tests.cpp
+++ b/3rdparty/libprocess/src/tests/future_tests.cpp
@@ -493,11 +493,8 @@ TEST(FutureTest, Discard3)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(FutureTest, Select)
+TEST(FutureTest, THREADSAFE_Select)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   Promise<int> promise1;
   Promise<int> promise2;
   Promise<int> promise3;

http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/io_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/io_tests.cpp b/3rdparty/libprocess/src/tests/io_tests.cpp
index 302fadc..cc62d2f 100644
--- a/3rdparty/libprocess/src/tests/io_tests.cpp
+++ b/3rdparty/libprocess/src/tests/io_tests.cpp
@@ -33,10 +33,8 @@ using std::string;
 
 class IOTest: public TemporaryDirectoryTest {};
 
-TEST_F(IOTest, Poll)
+TEST_F(IOTest, THREADSAFE_Poll)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int pipes[2];
   ASSERT_NE(-1, pipe(pipes));
 
@@ -57,10 +55,8 @@ TEST_F(IOTest, Poll)
 }
 
 
-TEST_F(IOTest, Read)
+TEST_F(IOTest, THREADSAFE_Read)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int pipes[2];
   char data[3];
 
@@ -178,10 +174,8 @@ TEST_F(IOTest, BufferedRead)
 }
 
 
-TEST_F(IOTest, Write)
+TEST_F(IOTest, THREADSAFE_Write)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int pipes[2];
 
   // Create a blocking pipe.
@@ -219,10 +213,8 @@ TEST_F(IOTest, Write)
 }
 
 
-TEST_F(IOTest, DISABLED_BlockingWrite)
+TEST_F(IOTest, DISABLED_THREADSAFE_BlockingWrite)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int pipes[2];
 
   // Create a nonblocking pipe.
@@ -294,10 +286,8 @@ TEST_F(IOTest, DISABLED_BlockingWrite)
 }
 
 
-TEST_F(IOTest, Redirect)
+TEST_F(IOTest, THREADSAFE_Redirect)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   // Start by checking that using "invalid" file descriptors fails.
   AWAIT_EXPECT_FAILED(io::redirect(-1, 0));
   AWAIT_EXPECT_FAILED(io::redirect(0, -1));

http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/limiter_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/limiter_tests.cpp b/3rdparty/libprocess/src/tests/limiter_tests.cpp
index b80b1da..70a224c 100644
--- a/3rdparty/libprocess/src/tests/limiter_tests.cpp
+++ b/3rdparty/libprocess/src/tests/limiter_tests.cpp
@@ -27,11 +27,8 @@ using process::Future;
 using process::RateLimiter;
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(LimiterTest, Acquire)
+TEST(LimiterTest, THREADSAFE_Acquire)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int permits = 2;
   Duration duration = Milliseconds(5);
 
@@ -58,11 +55,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(LimiterTest, Acquire)
 // In this test 4 permits are given, but the 2nd permit's acquire
 // is immediately discarded. So, 1st, 3rd and 4th permits should
 // be acquired according to the rate limit.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(LimiterTest, DiscardMiddle)
+TEST(LimiterTest, THREADSAFE_DiscardMiddle)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int permits = 2;
   Duration duration = Milliseconds(5);
 
@@ -97,11 +91,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(LimiterTest, DiscardMiddle)
 // In this test 2 permits are initially given, but the 2nd permit's
 // future is immediately discarded. Then the 3rd permit is given. So,
 // 1st and 3rd permits should be acquired according to the rate limit.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(LimiterTest, DiscardLast)
+TEST(LimiterTest, THREADSAFE_DiscardLast)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   int permits = 2;
   Duration duration = Milliseconds(5);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/main.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/main.cpp b/3rdparty/libprocess/src/tests/main.cpp
index 23eead8..1cbd37c 100644
--- a/3rdparty/libprocess/src/tests/main.cpp
+++ b/3rdparty/libprocess/src/tests/main.cpp
@@ -13,6 +13,7 @@
 #include <signal.h>
 
 #include <memory>
+#include <string>
 #include <vector>
 
 #include <glog/logging.h>
@@ -32,9 +33,34 @@
 
 #include <stout/tests/environment.hpp>
 
+using std::make_shared;
+using std::shared_ptr;
+using std::string;
+using std::vector;
+
 using stout::internal::tests::Environment;
 using stout::internal::tests::TestFilter;
 
+
+class ThreadsafeFilter : public TestFilter
+{
+public:
+  ThreadsafeFilter()
+#if GTEST_IS_THREADSAFE
+    : is_threadsafe(true) {}
+#else
+    : is_threadsafe(false) {}
+#endif
+
+  bool disable(const ::testing::TestInfo* test) const override
+  {
+    return matches(test, "THREADSAFE_") && !is_threadsafe;
+  }
+
+private:
+  const bool is_threadsafe;
+};
+
 using std::shared_ptr;
 using std::vector;
 
@@ -71,7 +97,7 @@ int main(int argc, char** argv)
   os::signals::reset(SIGTERM);
 #endif // __WINDOWS__
 
-  vector<std::shared_ptr<TestFilter>> filters;
+  vector<shared_ptr<TestFilter>> filters = {make_shared<ThreadsafeFilter>()};
   Environment* environment = new Environment(filters);
   testing::AddGlobalTestEnvironment(environment);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/metrics_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/metrics_tests.cpp b/3rdparty/libprocess/src/tests/metrics_tests.cpp
index d7fdb06..c13520d 100644
--- a/3rdparty/libprocess/src/tests/metrics_tests.cpp
+++ b/3rdparty/libprocess/src/tests/metrics_tests.cpp
@@ -136,11 +136,8 @@ TEST_F(MetricsTest, Counter)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_F_TEMP_DISABLED_ON_WINDOWS(MetricsTest, Gauge)
+TEST_F(MetricsTest, THREADSAFE_Gauge)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   GaugeProcess process;
   PID<GaugeProcess> pid = spawn(&process);
   ASSERT_TRUE(pid);
@@ -202,11 +199,8 @@ TEST_F(MetricsTest, Statistics)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_F_TEMP_DISABLED_ON_WINDOWS(MetricsTest, Snapshot)
+TEST_F(MetricsTest, THREADSAFE_Snapshot)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   UPID upid("metrics", process::address());
 
   Clock::pause();
@@ -275,11 +269,8 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(MetricsTest, Snapshot)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_F_TEMP_DISABLED_ON_WINDOWS(MetricsTest, SnapshotTimeout)
+TEST_F(MetricsTest, THREADSAFE_SnapshotTimeout)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   UPID upid("metrics", process::address());
 
   Clock::pause();
@@ -510,11 +501,8 @@ TEST_F(MetricsTest, AsyncTimer)
 
 // Tests that the `/metrics/snapshot` endpoint rejects unauthenticated requests
 // when HTTP authentication is enabled.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_F_TEMP_DISABLED_ON_WINDOWS(MetricsTest, SnapshotAuthenticationEnabled)
+TEST_F(MetricsTest, THREADSAFE_SnapshotAuthenticationEnabled)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   process::Owned<Authenticator> authenticator(
     new BasicAuthenticator(
         READONLY_HTTP_AUTHENTICATION_REALM, {{"foo", "bar"}}));

http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/process_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/process_tests.cpp b/3rdparty/libprocess/src/tests/process_tests.cpp
index bf90c7e..2d3544a 100644
--- a/3rdparty/libprocess/src/tests/process_tests.cpp
+++ b/3rdparty/libprocess/src/tests/process_tests.cpp
@@ -124,11 +124,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Spawn)
+TEST(ProcessTest, THREADSAFE_Spawn)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   SpawnProcess process;
 
   EXPECT_CALL(process, initialize());
@@ -157,11 +154,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Dispatch)
+TEST(ProcessTest, THREADSAFE_Dispatch)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   DispatchProcess process;
 
   EXPECT_CALL(process, func0());
@@ -193,11 +187,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Dispatch)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Defer1)
+TEST(ProcessTest, THREADSAFE_Defer1)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   DispatchProcess process;
 
   EXPECT_CALL(process, func0());
@@ -291,11 +282,8 @@ private:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Defer2)
+TEST(ProcessTest, THREADSAFE_Defer2)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   DeferProcess process;
 
   PID<DeferProcess> pid = spawn(process);
@@ -326,11 +314,8 @@ void set(T* t1, const T& t2)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Defer3)
+TEST(ProcessTest, THREADSAFE_Defer3)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   std::atomic_bool bool1(false);
   std::atomic_bool bool2(false);
 
@@ -361,11 +346,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Handlers)
+TEST(ProcessTest, THREADSAFE_Handlers)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   HandlersProcess process;
 
   Future<Nothing> func;
@@ -387,11 +369,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Handlers)
 
 // Tests DROP_MESSAGE and DROP_DISPATCH and in particular that an
 // event can get dropped before being processed.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Expect)
+TEST(ProcessTest, THREADSAFE_Expect)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   HandlersProcess process;
 
   EXPECT_CALL(process, func(_, _))
@@ -419,11 +398,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Expect)
 
 
 // Tests the FutureArg<N> action.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Action)
+TEST(ProcessTest, THREADSAFE_Action)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   HandlersProcess process;
 
   PID<HandlersProcess> pid = spawn(&process);
@@ -467,11 +443,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Inheritance)
+TEST(ProcessTest, THREADSAFE_Inheritance)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   DerivedProcess process;
 
   EXPECT_CALL(process, func())
@@ -498,11 +471,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Inheritance)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Thunk)
+TEST(ProcessTest, THREADSAFE_Thunk)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   struct Thunk
   {
     static int run(int i)
@@ -544,11 +514,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Delegate)
+TEST(ProcessTest, THREADSAFE_Delegate)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   DelegateeProcess delegatee;
   DelegatorProcess delegator(delegatee.self());
 
@@ -578,11 +545,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Delay)
+TEST(ProcessTest, THREADSAFE_Delay)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   Clock::pause();
 
   std::atomic_bool timeoutCalled(false);
@@ -618,11 +582,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Order)
+TEST(ProcessTest, THREADSAFE_Order)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   Clock::pause();
 
   TimeoutProcess process1;
@@ -674,11 +635,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Donate)
+TEST(ProcessTest, THREADSAFE_Donate)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   DonateProcess process;
   spawn(process);
 
@@ -1171,11 +1129,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Settle)
+TEST(ProcessTest, THREADSAFE_Settle)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   Clock::pause();
   SettleProcess process;
   spawn(process);
@@ -1187,11 +1142,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Settle)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Pid)
+TEST(ProcessTest, THREADSAFE_Pid)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   TimeoutProcess process;
 
   PID<TimeoutProcess> pid = process;
@@ -1223,11 +1175,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Listener)
+TEST(ProcessTest, THREADSAFE_Listener)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   MultipleListenerProcess process;
 
   EXPECT_CALL(process, event1());
@@ -1252,11 +1201,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Executor)
+TEST(ProcessTest, THREADSAFE_Executor)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   std::atomic_bool event1Called(false);
   std::atomic_bool event2Called(false);
 
@@ -1301,11 +1247,8 @@ public:
 };
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Remote)
+TEST(ProcessTest, THREADSAFE_Remote)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   RemoteProcess process;
   spawn(process);
 
@@ -1337,11 +1280,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Remote)
 
 
 // Like the 'remote' test but uses http::connect.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Http1)
+TEST(ProcessTest, THREADSAFE_Http1)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   RemoteProcess process;
   spawn(process);
 
@@ -1390,11 +1330,8 @@ TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Http1)
 
 // Like 'http1' but uses the 'Libprocess-From' header. We can
 // also use http::post here since we expect a 202 response.
-// NOTE: GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Http2)
+TEST(ProcessTest, THREADSAFE_Http2)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   RemoteProcess process;
   spawn(process);
 
@@ -1503,11 +1440,8 @@ static string itoa2(int* const& i)
 }
 
 
-// GTEST_IS_THREADSAFE is not defined on Windows. See MESOS-5903.
-TEST_TEMP_DISABLED_ON_WINDOWS(ProcessTest, Async)
+TEST(ProcessTest, THREADSAFE_Async)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   // Non-void functions with different no.of args.
   EXPECT_EQ(1, async(&foo).get());
   EXPECT_EQ(10, async(&foo1, 10).get());

http://git-wip-us.apache.org/repos/asf/mesos/blob/82f3ab1a/3rdparty/libprocess/src/tests/reap_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/reap_tests.cpp b/3rdparty/libprocess/src/tests/reap_tests.cpp
index 30518de..7e7aadc 100644
--- a/3rdparty/libprocess/src/tests/reap_tests.cpp
+++ b/3rdparty/libprocess/src/tests/reap_tests.cpp
@@ -103,10 +103,8 @@ TEST(ReapTest, NonChildProcess)
 
 // This test checks that the we can reap a child process and obtain
 // the correct exit status.
-TEST(ReapTest, ChildProcess)
+TEST(ReapTest, THREADSAFE_ChildProcess)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   // The child process sleeps and will be killed by the parent.
   Try<ProcessTree> tree = Fork(None(),
                                Exec("sleep 10"))();
@@ -136,10 +134,8 @@ TEST(ReapTest, ChildProcess)
 
 
 // Check that we can reap a child process that is already exited.
-TEST(ReapTest, TerminatedChildProcess)
+TEST(ReapTest, THREADSAFE_TerminatedChildProcess)
 {
-  ASSERT_TRUE(GTEST_IS_THREADSAFE);
-
   // The child process immediately exits.
   Try<ProcessTree> tree = Fork(None(),
                                Exec("exit 0"))();


[5/6] mesos git commit: Updated GMock/GTest in libprocess.

Posted by ne...@apache.org.
Updated GMock/GTest in libprocess.

This will fix various issues that occured with version 1.7.0.
As GTest is now using 'std::tuple' instead of 'std::tr1::tuple', some
test cases have been updated accordingly.

Review: https://reviews.apache.org/r/58351/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/b01ed401
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/b01ed401
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/b01ed401

Branch: refs/heads/master
Commit: b01ed401ad3fbee9777b4bf7388a6ddb0a11a0a1
Parents: e6cdf2a
Author: Jan Schlicht <ja...@mesosphere.io>
Authored: Wed May 17 10:21:57 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Wed May 17 10:48:05 2017 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/3rdparty/Makefile.am         | 11 ++++++-----
 3rdparty/libprocess/Makefile.am                  |  5 +++--
 .../libprocess/cmake/ProcessTestsConfigure.cmake |  2 +-
 3rdparty/libprocess/configure.ac                 |  3 ---
 3rdparty/libprocess/include/process/gmock.hpp    | 19 +++++++------------
 5 files changed, 17 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/b01ed401/3rdparty/libprocess/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/3rdparty/Makefile.am b/3rdparty/libprocess/3rdparty/Makefile.am
index 9dc5fb5..8a2adf2 100644
--- a/3rdparty/libprocess/3rdparty/Makefile.am
+++ b/3rdparty/libprocess/3rdparty/Makefile.am
@@ -31,9 +31,10 @@ include ../../versions.am
 
 BOOST = boost-$(BOOST_VERSION)
 GLOG = glog-$(GLOG_VERSION)
-GMOCK = gmock-$(GMOCK_VERSION)
+GOOGLETEST = googletest-release-$(GOOGLETEST_VERSION)
+GMOCK = $(GOOGLETEST)/googlemock
 GPERFTOOLS = gperftools-$(GPERFTOOLS_VERSION)
-GTEST = $(GMOCK)/gtest
+GTEST = $(GOOGLETEST)/googletest
 HTTP_PARSER = http-parser-$(HTTP_PARSER_VERSION)
 LIBEV = libev-$(LIBEV_VERSION)
 PROTOBUF = protobuf-$(PROTOBUF_VERSION)
@@ -42,7 +43,7 @@ PICOJSON = picojson-$(PICOJSON_VERSION)
 EXTRA_DIST =		\
   $(BOOST).tar.gz	\
   $(GLOG).tar.gz	\
-  $(GMOCK).tar.gz	\
+  $(GOOGLETEST).tar.gz	\
   $(GPERFTOOLS).tar.gz	\
   $(HTTP_PARSER).tar.gz	\
   $(LIBEV).tar.gz	\
@@ -70,7 +71,7 @@ EXTRA_DIST +=		\
 CLEAN_EXTRACTED =	\
   $(BOOST)		\
   $(GLOG)		\
-  $(GMOCK)		\
+  $(GOOGLETEST)		\
   $(GPERFTOOLS)		\
   $(HTTP_PARSER)	\
   $(LIBEV)		\
@@ -177,7 +178,7 @@ libgmock_la_CPPFLAGS =			\
   -I$(GTEST)/include -I$(GTEST) -I$(GTEST)/src	\
   -I$(GMOCK)/include -I$(GMOCK) -I$(GMOCK)/src
 
-  gmock_sources.cc: $(GMOCK)-stamp
+  gmock_sources.cc: $(GOOGLETEST)-stamp
 
 $(GMOCK)-build-stamp: libgmock.la
 	touch $@

http://git-wip-us.apache.org/repos/asf/mesos/blob/b01ed401/3rdparty/libprocess/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/Makefile.am b/3rdparty/libprocess/Makefile.am
index 80758d6..c2190b4 100644
--- a/3rdparty/libprocess/Makefile.am
+++ b/3rdparty/libprocess/Makefile.am
@@ -54,9 +54,10 @@ STOUT = ../stout
 BOOST = $(BUNDLED_DIR)/boost-$(BOOST_VERSION)
 ELFIO = $(BUNDLED_DIR)/elfio-$(ELFIO_VERSION)
 GLOG = $(BUNDLED_DIR)/glog-$(GLOG_VERSION)
-GMOCK = $(BUNDLED_DIR)/gmock-$(GMOCK_VERSION)
+GOOGLETEST = $(BUNDLED_DIR)/googletest-release-$(GOOGLETEST_VERSION)
+GMOCK = $(GOOGLETEST)/googlemock
 GPERFTOOLS = $(BUNDLED_DIR)/gperftools-$(GPERFTOOLS_VERSION)
-GTEST = $(GMOCK)/gtest
+GTEST = $(GOOGLETEST)/googletest
 HTTP_PARSER = $(BUNDLED_DIR)/http-parser-$(HTTP_PARSER_VERSION)
 LIBEV = $(BUNDLED_DIR)/libev-$(LIBEV_VERSION)
 PICOJSON = $(BUNDLED_DIR)/picojson-$(PICOJSON_VERSION)

http://git-wip-us.apache.org/repos/asf/mesos/blob/b01ed401/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake b/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
index 31e20e4..5a23990 100644
--- a/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
+++ b/3rdparty/libprocess/cmake/ProcessTestsConfigure.cmake
@@ -28,7 +28,7 @@ set(PROCESS_TEST_DEPENDENCIES
   ${PROCESS_TEST_DEPENDENCIES}
   ${PROCESS_DEPENDENCIES}
   ${PROCESS_TARGET}
-  ${GMOCK_TARGET}
+  ${GOOGLETEST_TARGET}
   )
 
 # DEFINE THIRD-PARTY INCLUDE DIRECTORIES. Tells compiler toolchain where to get

http://git-wip-us.apache.org/repos/asf/mesos/blob/b01ed401/3rdparty/libprocess/configure.ac
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/configure.ac b/3rdparty/libprocess/configure.ac
index 1540006..cec0190 100644
--- a/3rdparty/libprocess/configure.ac
+++ b/3rdparty/libprocess/configure.ac
@@ -331,9 +331,6 @@ case "$host_os" in
     if test "x$ax_cv_cxx_compiler_vendor" = "xclang"; then
       CXXFLAGS="$CXXFLAGS -stdlib=libc++"
     fi
-
-    # GTEST on OSX needs its own tr1 tuple.
-    CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1 -DGTEST_LANG_CXX11"
     ;;
   freebsd* )
     # If we're using clang, we need to pass -stdlib=libc++ too.

http://git-wip-us.apache.org/repos/asf/mesos/blob/b01ed401/3rdparty/libprocess/include/process/gmock.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/gmock.hpp b/3rdparty/libprocess/include/process/gmock.hpp
index 05d8b8e..e9af943 100644
--- a/3rdparty/libprocess/include/process/gmock.hpp
+++ b/3rdparty/libprocess/include/process/gmock.hpp
@@ -24,11 +24,6 @@
 #include <stout/nothing.hpp>
 #include <stout/synchronized.hpp>
 
-// NOTE: The gmock library relies on std::tr1::tuple. The gmock
-// library provides multiple possible 'tuple' implementations but it
-// still uses std::tr1::tuple as the "type" name, hence our use of it
-// in this file.
-
 
 #define FUTURE_MESSAGE(name, from, to)          \
   process::FutureMessage(name, from, to)
@@ -74,7 +69,7 @@ ACTION_TEMPLATE(PromiseArg,
   // WillRepeatedly). We won't be able to set it a second time but at
   // least we won't get a segmentation fault. We could also consider
   // warning users if they attempted to set it more than once.
-  promise->set(std::tr1::get<k>(args));
+  promise->set(std::get<k>(args));
   delete promise;
 }
 
@@ -98,7 +93,7 @@ ACTION_TEMPLATE(PromiseArgField,
   // WillRepeatedly). We won't be able to set it a second time but at
   // least we won't get a segmentation fault. We could also consider
   // warning users if they attempted to set it more than once.
-  promise->set(*(std::tr1::get<k>(args).*field));
+  promise->set(*(std::get<k>(args).*field));
   delete promise;
 }
 
@@ -323,7 +318,7 @@ private:
 
 MATCHER_P3(MessageMatcher, name, from, to, "")
 {
-  const MessageEvent& event = ::std::tr1::get<0>(arg);
+  const MessageEvent& event = ::std::get<0>(arg);
   return (testing::Matcher<std::string>(name).Matches(event.message->name) &&
           testing::Matcher<UPID>(from).Matches(event.message->from) &&
           testing::Matcher<UPID>(to).Matches(event.message->to));
@@ -335,7 +330,7 @@ MATCHER_P3(MessageMatcher, name, from, to, "")
 // https://developers.google.com/protocol-buffers/docs/techniques#union.
 MATCHER_P4(UnionMessageMatcher, message, unionType, from, to, "")
 {
-  const process::MessageEvent& event = ::std::tr1::get<0>(arg);
+  const process::MessageEvent& event = ::std::get<0>(arg);
   message_type message;
 
   return (testing::Matcher<std::string>(message.GetTypeName()).Matches(
@@ -349,7 +344,7 @@ MATCHER_P4(UnionMessageMatcher, message, unionType, from, to, "")
 
 MATCHER_P2(DispatchMatcher, pid, method, "")
 {
-  const DispatchEvent& event = ::std::tr1::get<0>(arg);
+  const DispatchEvent& event = ::std::get<0>(arg);
   return (testing::Matcher<UPID>(pid).Matches(event.pid) &&
           event.functionType.isSome() &&
           *event.functionType.get() == typeid(method));
@@ -358,7 +353,7 @@ MATCHER_P2(DispatchMatcher, pid, method, "")
 
 MATCHER_P3(HttpMatcher, message, path, deserializer, "")
 {
-  const HttpEvent& event = ::std::tr1::get<0>(arg);
+  const HttpEvent& event = ::std::get<0>(arg);
 
   Try<message_type> message_ = deserializer(event.request->body);
   if (message_.isError()) {
@@ -373,7 +368,7 @@ MATCHER_P3(HttpMatcher, message, path, deserializer, "")
 // "union" trick.
 MATCHER_P4(UnionHttpMatcher, message, unionType, path, deserializer, "")
 {
-  const HttpEvent& event = ::std::tr1::get<0>(arg);
+  const HttpEvent& event = ::std::get<0>(arg);
 
   Try<message_type> message_ = deserializer(event.request->body);
   if (message_.isError()) {


[6/6] mesos git commit: Fixed Makefile.am variable syntax.

Posted by ne...@apache.org.
Fixed Makefile.am variable syntax.


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/0672c27c
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/0672c27c
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/0672c27c

Branch: refs/heads/master
Commit: 0672c27c9192d38aae6496e18acf1b9806d3a26c
Parents: b01ed40
Author: Neil Conway <ne...@gmail.com>
Authored: Wed May 17 10:46:42 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Wed May 17 10:48:10 2017 -0700

----------------------------------------------------------------------
 3rdparty/Makefile.am | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/0672c27c/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index 8706e78..31eb971 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -45,7 +45,7 @@ include versions.am
 BOOST = boost-$(BOOST_VERSION)
 ELFIO = elfio-$(ELFIO_VERSION)
 GLOG = glog-$(GLOG_VERSION)
-GOOGLETEST = googletest-release-${GOOGLETEST_VERSION}
+GOOGLETEST = googletest-release-$(GOOGLETEST_VERSION)
 GMOCK = $(GOOGLETEST)/googlemock
 GPERFTOOLS = gperftools-$(GPERFTOOLS_VERSION)
 GTEST = $(GOOGLETEST)/googletest


[4/6] mesos git commit: Updated GMock/GTest in stout.

Posted by ne...@apache.org.
Updated GMock/GTest in stout.

This will fix various issues that occured with version 1.7.0.
As GTest is now using 'std::tuple' instead of 'std::tr1::tuple', some
test cases have been updated accordingly.

Review: https://reviews.apache.org/r/58350/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/e6cdf2a6
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/e6cdf2a6
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/e6cdf2a6

Branch: refs/heads/master
Commit: e6cdf2a6090310de017c5004865bd69fa9e4050a
Parents: 9545564
Author: Jan Schlicht <ja...@mesosphere.io>
Authored: Wed May 17 10:21:56 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Wed May 17 10:48:00 2017 -0700

----------------------------------------------------------------------
 3rdparty/stout/3rdparty/Makefile.am            |  7 +++---
 3rdparty/stout/Makefile.am                     |  5 +++--
 3rdparty/stout/cmake/StoutTestsConfigure.cmake | 24 +++++++--------------
 3rdparty/stout/configure.ac                    |  3 ---
 4 files changed, 15 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/e6cdf2a6/3rdparty/stout/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/stout/3rdparty/Makefile.am b/3rdparty/stout/3rdparty/Makefile.am
index 73f6e05..88a4b02 100644
--- a/3rdparty/stout/3rdparty/Makefile.am
+++ b/3rdparty/stout/3rdparty/Makefile.am
@@ -31,15 +31,16 @@ include ../../versions.am
 
 BOOST = boost-$(BOOST_VERSION)
 GLOG = glog-$(GLOG_VERSION)
-GMOCK = gmock-$(GMOCK_VERSION)
-GTEST = $(GMOCK)/gtest
+GOOGLETEST = googletest-release-$(GOOGLETEST_VERSION)
+GMOCK = $(GOOGLETEST)/googlemock
+GTEST = $(GOOGLETEST)/googletest
 PROTOBUF = protobuf-$(PROTOBUF_VERSION)
 PICOJSON = picojson-$(PICOJSON_VERSION)
 
 EXTRA_DIST =		\
   $(BOOST).tar.gz	\
   $(GLOG).tar.gz	\
-  $(GMOCK).tar.gz	\
+  $(GOOGLETEST).tar.gz	\
   $(PROTOBUF).tar.gz	\
   $(PICOJSON).tar.gz
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/e6cdf2a6/3rdparty/stout/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/stout/Makefile.am b/3rdparty/stout/Makefile.am
index ebf1069..8a1aef3 100644
--- a/3rdparty/stout/Makefile.am
+++ b/3rdparty/stout/Makefile.am
@@ -50,8 +50,9 @@ include ../versions.am
 BOOST = $(BUNDLED_DIR)/boost-$(BOOST_VERSION)
 ELFIO = $(BUNDLED_DIR)/elfio-$(ELFIO_VERSION)
 GLOG = $(BUNDLED_DIR)/glog-$(GLOG_VERSION)
-GMOCK = $(BUNDLED_DIR)/gmock-$(GMOCK_VERSION)
-GTEST = $(GMOCK)/gtest
+GOOGLETEST = $(BUNDLED_DIR)/googletest-release-$(GOOGLETEST_VERSION)
+GMOCK = $(GOOGLETEST)/googlemock
+GTEST = $(GOOGLETEST)/googletest
 PROTOBUF = $(BUNDLED_DIR)/protobuf-$(PROTOBUF_VERSION)
 PICOJSON = $(BUNDLED_DIR)/picojson-$(PICOJSON_VERSION)
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/e6cdf2a6/3rdparty/stout/cmake/StoutTestsConfigure.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/stout/cmake/StoutTestsConfigure.cmake b/3rdparty/stout/cmake/StoutTestsConfigure.cmake
index 685f1c8..1bd3d3d 100644
--- a/3rdparty/stout/cmake/StoutTestsConfigure.cmake
+++ b/3rdparty/stout/cmake/StoutTestsConfigure.cmake
@@ -37,26 +37,19 @@ set(
 
 # COMPILER CONFIGURATION.
 #########################
-EXTERNAL("gmock" ${GMOCK_VERSION} "${MESOS_3RDPARTY_BIN}")
-
-if (APPLE)
-  # GTEST on OSX needs its own tr1 tuple.
-  add_definitions(-DGTEST_USE_OWN_TR1_TUPLE=1 -DGTEST_LANG_CXX11)
-endif (APPLE)
-
-set(GTEST_SRC ${GMOCK_ROOT}/gtest)
+EXTERNAL("googletest" ${GOOGLETEST_VERSION} "${MESOS_3RDPARTY_BIN}")
 
 # Convenience variables for include directories of third-party dependencies.
-set(GMOCK_INCLUDE_DIR ${GMOCK_ROOT}/include)
-set(GTEST_INCLUDE_DIR ${GTEST_SRC}/include)
+set(GMOCK_INCLUDE_DIR ${GOOGLETEST_ROOT}/googlemock/include)
+set(GTEST_INCLUDE_DIR ${GOOGLETEST_ROOT}/googletest/include)
 
 # Convenience variables for `lib` directories of built third-party dependencies.
 if (WIN32)
-  set(GMOCK_LIB_DIR ${GMOCK_ROOT}-build/${CMAKE_BUILD_TYPE})
-  set(GTEST_LIB_DIR ${GMOCK_ROOT}-build/gtest/${CMAKE_BUILD_TYPE})
+  set(GMOCK_LIB_DIR ${GOOGLETEST_ROOT}-build/googlemock/${CMAKE_BUILD_TYPE})
+  set(GTEST_LIB_DIR ${GOOGLETEST_ROOT}-build/googlemock/gtest/${CMAKE_BUILD_TYPE})
 else (WIN32)
-  set(GMOCK_LIB_DIR ${GMOCK_ROOT}-lib/lib/)
-  set(GTEST_LIB_DIR ${GMOCK_ROOT}-build/gtest/lib/.libs)
+  set(GMOCK_LIB_DIR ${GOOGLETEST_ROOT}-lib/lib)
+  set(GTEST_LIB_DIR ${GOOGLETEST_ROOT}-lib/lib/gtest)
 endif (WIN32)
 
 # Convenience variables for "lflags", the symbols we pass to CMake to generate
@@ -70,8 +63,7 @@ set(GTEST_LFLAG gtest)
 set(STOUT_TEST_DEPENDENCIES
   ${STOUT_TEST_DEPENDENCIES}
   ${STOUT_DEPENDENCIES}
-  ${GMOCK_TARGET}
-  ${GTEST_TARGET}
+  ${GOOGLETEST_TARGET}
   )
 
 # DEFINE THIRD-PARTY INCLUDE DIRECTORIES. Tells compiler toolchain where to get

http://git-wip-us.apache.org/repos/asf/mesos/blob/e6cdf2a6/3rdparty/stout/configure.ac
----------------------------------------------------------------------
diff --git a/3rdparty/stout/configure.ac b/3rdparty/stout/configure.ac
index 50c1f6f..abb6521 100644
--- a/3rdparty/stout/configure.ac
+++ b/3rdparty/stout/configure.ac
@@ -690,9 +690,6 @@ case "$host_os" in
     if test "x$ax_cv_cxx_compiler_vendor" = "xclang"; then
       CXXFLAGS="$CXXFLAGS -stdlib=libc++"
     fi
-
-    # GTEST on OSX needs its own tr1 tuple.
-    CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1 -DGTEST_LANG_CXX11"
     ;;
   freebsd* )
     # If we're using clang, we need to pass -stdlib=libc++ too.


[2/6] mesos git commit: Fixed use of 'GTEST_IS_THREADSAFE'.

Posted by ne...@apache.org.
Fixed use of 'GTEST_IS_THREADSAFE'.

Fixed use of 'GTEST_IS_THREADSAFE'.

Review: https://reviews.apache.org/r/58348/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/d4fcff0e
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/d4fcff0e
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/d4fcff0e

Branch: refs/heads/master
Commit: d4fcff0e9a0ac41211d5e92fde30d932ce0a6fc0
Parents: 82f3ab1
Author: Jan Schlicht <ja...@mesosphere.io>
Authored: Wed May 17 10:21:52 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Wed May 17 10:47:48 2017 -0700

----------------------------------------------------------------------
 src/tests/environment.cpp | 14 ++++----------
 src/tests/main.cpp        |  2 +-
 2 files changed, 5 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/d4fcff0e/src/tests/environment.cpp
----------------------------------------------------------------------
diff --git a/src/tests/environment.cpp b/src/tests/environment.cpp
index 3d2d8f1..047798c 100644
--- a/src/tests/environment.cpp
+++ b/src/tests/environment.cpp
@@ -80,6 +80,7 @@ using process::Owned;
 
 using stout::internal::tests::TestFilter;
 
+
 namespace mesos {
 namespace internal {
 namespace tests {
@@ -716,16 +717,9 @@ void Environment::SetUp()
     os::setenv("MESOS_NATIVE_JAVA_LIBRARY", path);
   }
 
-  // TODO(hausdorff): Revisit whether we need this check when we complete work
-  // to light up Agent tests on Windows (see epic tracking this work at
-  // MESOS-6695). As we incrementally add tests to the Windows build, we will
-  // add this check to the tests that need it; eventually, the goal is to get
-  // rid of this altogether. See MESOS-5903.
-#ifndef __WINDOWS__
-  if (!GTEST_IS_THREADSAFE) {
-    EXIT(EXIT_FAILURE) << "Testing environment is not thread safe, bailing!";
-  }
-#endif // __WINDOWS__
+#if !GTEST_IS_THREADSAFE
+  EXIT(EXIT_FAILURE) << "Testing environment is not thread safe, bailing!";
+#endif // !GTEST_IS_THREADSAFE
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/d4fcff0e/src/tests/main.cpp
----------------------------------------------------------------------
diff --git a/src/tests/main.cpp b/src/tests/main.cpp
index 5d062c3..a7dc99b 100644
--- a/src/tests/main.cpp
+++ b/src/tests/main.cpp
@@ -158,7 +158,7 @@ int main(int argc, char** argv)
 
   // Instantiate our environment. Note that it will be managed by
   // gtest after we add it via testing::AddGlobalTestEnvironment.
-  environment = new Environment(flags);
+  environment = new tests::Environment(flags);
 
   testing::AddGlobalTestEnvironment(environment);
 


[3/6] mesos git commit: Updated GMock/GTest to version 1.8.0.

Posted by ne...@apache.org.
Updated GMock/GTest to version 1.8.0.

This will fix various issues that occured with version 1.7.0.
As GTest is now using 'std::tuple' instead of 'std::tr1::tuple', some
test cases have been updated accordingly.

Review: https://reviews.apache.org/r/58349/


Project: http://git-wip-us.apache.org/repos/asf/mesos/repo
Commit: http://git-wip-us.apache.org/repos/asf/mesos/commit/95455644
Tree: http://git-wip-us.apache.org/repos/asf/mesos/tree/95455644
Diff: http://git-wip-us.apache.org/repos/asf/mesos/diff/95455644

Branch: refs/heads/master
Commit: 954556444205d6e25e0f7f597eaa5d022c4e41d9
Parents: d4fcff0
Author: Jan Schlicht <ja...@mesosphere.io>
Authored: Wed May 17 10:21:54 2017 -0700
Committer: Neil Conway <ne...@gmail.com>
Committed: Wed May 17 10:47:54 2017 -0700

----------------------------------------------------------------------
 3rdparty/CMakeLists.txt                         |  24 ++++++++---------
 3rdparty/Makefile.am                            |  11 ++++----
 3rdparty/cmake/Versions.cmake                   |   2 +-
 3rdparty/gmock-1.7.0.tar.gz                     | Bin 1907242 -> 0 bytes
 3rdparty/googletest-release-1.8.0.tar.gz        | Bin 0 -> 1281617 bytes
 3rdparty/versions.am                            |   2 +-
 LICENSE                                         |   2 +-
 configure.ac                                    |   3 ---
 src/Makefile.am                                 |   5 ++--
 src/tests/cmake/MesosTestsConfigure.cmake       |   2 +-
 .../linux_capabilities_isolator_tests.cpp       |   2 +-
 src/tests/fetcher_cache_tests.cpp               |   2 +-
 src/tests/hierarchical_allocator_tests.cpp      |  26 +++++++++----------
 src/tests/scheduler_tests.cpp                   |   6 ++---
 src/tests/sorter_tests.cpp                      |  22 ++++++++--------
 support/mesos-style.py                          |   4 +--
 support/mesos-tidy/entrypoint.sh                |   2 +-
 17 files changed, 57 insertions(+), 58 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/3rdparty/CMakeLists.txt
----------------------------------------------------------------------
diff --git a/3rdparty/CMakeLists.txt b/3rdparty/CMakeLists.txt
index cb118f6..03f314f 100755
--- a/3rdparty/CMakeLists.txt
+++ b/3rdparty/CMakeLists.txt
@@ -282,7 +282,7 @@ list(
 include(StoutConfigure)
 include(StoutTestsConfigure)
 
-set(GMOCK_URL    ${FETCH_URL}/gmock-${GMOCK_VERSION}.tar.gz)
+set(GOOGLETEST_URL ${FETCH_URL}/googletest-release-${GOOGLETEST_VERSION}.tar.gz)
 # NOTE: The Windows version of protobuf is patched and only available in the
 # 3rdparty repo, not the local repo.
 if (NOT WIN32)
@@ -291,12 +291,12 @@ elseif (WIN32)
   set(PROTOBUF_URL ${3RDPARTY_DEPENDENCIES}/protobuf-${PROTOBUF_VERSION}.tar.gz)
 endif (NOT WIN32)
 
-# NOTE: `gmock` is "installed" into a lib directory, see "NOTE: (fix for
+# NOTE: `googletest` is "installed" into a lib directory, see "NOTE: (fix for
 # MESOS-3250)" comment above for explanation.
 if (NOT WIN32)
-  set(GMOCK_INSTALL_CMD mkdir -p ${GMOCK_ROOT}-lib/lib && cp -r ${GMOCK_ROOT}-build/. ${GMOCK_ROOT}-lib/lib && cp -r ${GMOCK_ROOT}-build/gtest/. ${GMOCK_ROOT}-lib/lib)
+  set(GOOGLETEST_INSTALL_CMD mkdir -p ${GOOGLETEST_ROOT}-lib/lib && cp -r ${GOOGLETEST_ROOT}-build/googlemock/. ${GOOGLETEST_ROOT}-lib/lib)
 elseif (WIN32)
-  set(GMOCK_INSTALL_CMD ${CMAKE_NOOP})
+  set(GOOGLETEST_INSTALL_CMD ${CMAKE_NOOP})
 endif (NOT WIN32)
 
 if (NOT WIN32)
@@ -313,17 +313,17 @@ endif (NOT WIN32)
 # NOTE: An implicit consequence of the following code is that on non-Windows
 # platforms, gmock and gtest are assumed to be CMake projects, and are thus
 # configured and built using default CMake commands. The reason is that on
-# non-Windows platforms, we choose to set `GMOCK_CONFIG_CMD` and
-# `GMOCK_BUILD_CMD` with stub commands, which cause CMake to "fall back" to
+# non-Windows platforms, we choose to set `GOOGLETEST_CONFIG_CMD` and
+# `GOOGLETEST_BUILD_CMD` with stub commands, which cause CMake to "fall back" to
 # trying to build them with CMake.
 ExternalProject_Add(
-  ${GMOCK_TARGET}
-  PREFIX            ${GMOCK_CMAKE_ROOT}
+  ${GOOGLETEST_TARGET}
+  PREFIX            ${GOOGLETEST_CMAKE_ROOT}
   CMAKE_ARGS        -DBUILD_SHARED_LIBS=FALSE
-  CONFIGURE_COMMAND ${GMOCK_CONFIG_CMD}
-  BUILD_COMMAND     ${GMOCK_BUILD_CMD}
-  INSTALL_COMMAND   ${GMOCK_INSTALL_CMD}
-  URL               ${GMOCK_URL}
+  CONFIGURE_COMMAND ${GOOGLETEST_CONFIG_CMD}
+  BUILD_COMMAND     ${GOOGLETEST_BUILD_CMD}
+  INSTALL_COMMAND   ${GOOGLETEST_INSTALL_CMD}
+  URL               ${GOOGLETEST_URL}
   )
 
 ExternalProject_Add(

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/3rdparty/Makefile.am
----------------------------------------------------------------------
diff --git a/3rdparty/Makefile.am b/3rdparty/Makefile.am
index 61d832b2..8706e78 100644
--- a/3rdparty/Makefile.am
+++ b/3rdparty/Makefile.am
@@ -45,9 +45,10 @@ include versions.am
 BOOST = boost-$(BOOST_VERSION)
 ELFIO = elfio-$(ELFIO_VERSION)
 GLOG = glog-$(GLOG_VERSION)
-GMOCK = gmock-$(GMOCK_VERSION)
+GOOGLETEST = googletest-release-${GOOGLETEST_VERSION}
+GMOCK = $(GOOGLETEST)/googlemock
 GPERFTOOLS = gperftools-$(GPERFTOOLS_VERSION)
-GTEST = $(GMOCK)/gtest
+GTEST = $(GOOGLETEST)/googletest
 HTTP_PARSER = http-parser-$(HTTP_PARSER_VERSION)
 LEVELDB = leveldb-$(LEVELDB_VERSION)
 LIBEV = libev-$(LIBEV_VERSION)
@@ -63,7 +64,7 @@ EXTRA_DIST =		\
   $(BOOST).tar.gz	\
   $(ELFIO).tar.gz	\
   $(GLOG).tar.gz	\
-  $(GMOCK).tar.gz	\
+  $(GOOGLETEST).tar.gz	\
   $(GPERFTOOLS).tar.gz	\
   $(HTTP_PARSER).tar.gz	\
   $(LEVELDB).tar.gz	\
@@ -107,7 +108,7 @@ CLEAN_EXTRACTED =	\
   $(BOOST)		\
   $(ELFIO)		\
   $(GLOG)		\
-  $(GMOCK)		\
+  $(GOOGLETEST)		\
   $(GPERFTOOLS)		\
   $(HTTP_PARSER)	\
   $(LEVELDB)		\
@@ -277,7 +278,7 @@ libgmock_la_CPPFLAGS =			\
   -I$(GTEST)/include -I$(GTEST) -I$(GTEST)/src	\
   -I$(GMOCK)/include -I$(GMOCK) -I$(GMOCK)/src
 
-  gmock_sources.cc: $(GMOCK)-stamp
+  gmock_sources.cc: $(GOOGLETEST)-stamp
 
 $(GMOCK)-build-stamp: libgmock.la
 	touch $@

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/3rdparty/cmake/Versions.cmake
----------------------------------------------------------------------
diff --git a/3rdparty/cmake/Versions.cmake b/3rdparty/cmake/Versions.cmake
index 728f88f..d3f572c 100644
--- a/3rdparty/cmake/Versions.cmake
+++ b/3rdparty/cmake/Versions.cmake
@@ -1,7 +1,7 @@
 set(BOOST_VERSION       "1.53.0")
 set(CURL_VERSION        "7.43.0")
 set(ELFIO_VERSION       "3.2")
-set(GMOCK_VERSION       "1.7.0")
+set(GOOGLETEST_VERSION  "1.8.0")
 set(HTTP_PARSER_VERSION "2.6.2")
 set(LEVELDB_VERSION     "1.19")
 set(LIBAPR_VERSION      "1.5.2")

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/3rdparty/gmock-1.7.0.tar.gz
----------------------------------------------------------------------
diff --git a/3rdparty/gmock-1.7.0.tar.gz b/3rdparty/gmock-1.7.0.tar.gz
deleted file mode 100644
index 09f5ea3..0000000
Binary files a/3rdparty/gmock-1.7.0.tar.gz and /dev/null differ

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/3rdparty/googletest-release-1.8.0.tar.gz
----------------------------------------------------------------------
diff --git a/3rdparty/googletest-release-1.8.0.tar.gz b/3rdparty/googletest-release-1.8.0.tar.gz
new file mode 100644
index 0000000..a40df33
Binary files /dev/null and b/3rdparty/googletest-release-1.8.0.tar.gz differ

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/3rdparty/versions.am
----------------------------------------------------------------------
diff --git a/3rdparty/versions.am b/3rdparty/versions.am
index b814470..55e170a 100644
--- a/3rdparty/versions.am
+++ b/3rdparty/versions.am
@@ -22,7 +22,7 @@
 BOOST_VERSION = 1.53.0
 ELFIO_VERSION = 3.2
 GLOG_VERSION = 0.3.3
-GMOCK_VERSION = 1.7.0
+GOOGLETEST_VERSION = 1.8.0
 GPERFTOOLS_VERSION = 2.5
 HTTP_PARSER_VERSION = 2.6.2
 LEVELDB_VERSION = 1.19

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/LICENSE
----------------------------------------------------------------------
diff --git a/LICENSE b/LICENSE
index 512b089..1b3e72c 100644
--- a/LICENSE
+++ b/LICENSE
@@ -394,7 +394,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
 
 ======================================================================
-For gmock-1.7.0 (3rdparty/gmock-1.7.0.tar.gz):
+For googletest-release-1.8.0 (3rdparty/googletest-release-1.8.0.tar.gz):
 ======================================================================
 
 Copyright 2008, Google Inc.

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/configure.ac
----------------------------------------------------------------------
diff --git a/configure.ac b/configure.ac
index fe5b20b..8c17307 100644
--- a/configure.ac
+++ b/configure.ac
@@ -542,9 +542,6 @@ case "$host_os" in
     if test "x$ax_cv_cxx_compiler_vendor" = "xclang"; then
       CXXFLAGS="$CXXFLAGS -stdlib=libc++"
     fi
-
-    # GTEST on OSX and FreeBSD needs its own tr1 tuple.
-    CXXFLAGS="$CXXFLAGS -DGTEST_USE_OWN_TR1_TUPLE=1 -DGTEST_LANG_CXX11"
     ;;
   freebsd* )
     # If we're using clang, we need to pass -stdlib=libc++ too.

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/Makefile.am
----------------------------------------------------------------------
diff --git a/src/Makefile.am b/src/Makefile.am
index 1522c5b..434a00e 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -35,8 +35,9 @@ STOUT = 3rdparty/stout
 BOOST = 3rdparty/boost-$(BOOST_VERSION)
 ELFIO = 3rdparty/elfio-$(ELFIO_VERSION)
 GLOG = 3rdparty/glog-$(GLOG_VERSION)
-GMOCK = 3rdparty/gmock-$(GMOCK_VERSION)
-GTEST = $(GMOCK)/gtest
+GOOGLETEST = 3rdparty/googletest-release-$(GOOGLETEST_VERSION)
+GMOCK = $(GOOGLETEST)/googlemock
+GTEST = $(GOOGLETEST)/googletest
 PROTOBUF = 3rdparty/protobuf-$(PROTOBUF_VERSION)
 PICOJSON = 3rdparty/picojson-$(PICOJSON_VERSION)
 NVML = 3rdparty/nvml-$(NVML_VERSION)

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/tests/cmake/MesosTestsConfigure.cmake
----------------------------------------------------------------------
diff --git a/src/tests/cmake/MesosTestsConfigure.cmake b/src/tests/cmake/MesosTestsConfigure.cmake
index 62e2741..e06789c 100644
--- a/src/tests/cmake/MesosTestsConfigure.cmake
+++ b/src/tests/cmake/MesosTestsConfigure.cmake
@@ -52,7 +52,7 @@ add_definitions(-DSBINDIR="${S_BIN_DIR}")
 set(MESOS_TESTS_DEPENDENCIES
   ${MESOS_TESTS_DEPENDENCIES}
   ${MESOS_TARGET}
-  ${GMOCK_TARGET}
+  ${GOOGLETEST_TARGET}
   )
 
 # DEFINE THIRD-PARTY INCLUDE DIRECTORIES. Tells compiler toolchain where to get

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/linux_capabilities_isolator_tests.cpp b/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
index f9d2a53..40376a0 100644
--- a/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
+++ b/src/tests/containerizer/linux_capabilities_isolator_tests.cpp
@@ -167,7 +167,7 @@ ACTION_TEMPLATE(PushTaskStatus,
                 HAS_1_TEMPLATE_PARAMS(int, k),
                 AND_1_VALUE_PARAMS(statuses))
 {
-  statuses->put(std::tr1::get<k>(args));
+  statuses->put(std::get<k>(args));
 }
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/tests/fetcher_cache_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fetcher_cache_tests.cpp b/src/tests/fetcher_cache_tests.cpp
index 3bd63ed..c6ba79a 100644
--- a/src/tests/fetcher_cache_tests.cpp
+++ b/src/tests/fetcher_cache_tests.cpp
@@ -479,7 +479,7 @@ ACTION_TEMPLATE(PushIndexedTaskStatus,
                 HAS_1_TEMPLATE_PARAMS(int, k),
                 AND_1_VALUE_PARAMS(tasks))
 {
-  const TaskStatus& taskStatus = ::std::tr1::get<k>(args);
+  const TaskStatus& taskStatus = ::std::get<k>(args);
   Try<int> taskId = numify<int>(taskStatus.task_id().value());
   ASSERT_SOME(taskId);
   Queue<TaskStatus> queue = (tasks)[taskId.get()].statusQueue;

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/tests/hierarchical_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hierarchical_allocator_tests.cpp b/src/tests/hierarchical_allocator_tests.cpp
index 08180b9..6dee229 100644
--- a/src/tests/hierarchical_allocator_tests.cpp
+++ b/src/tests/hierarchical_allocator_tests.cpp
@@ -4805,7 +4805,7 @@ TEST_P(HierarchicalAllocatorTestWithParam, AllocateSharedResources)
 
 class HierarchicalAllocator_BENCHMARK_Test
   : public HierarchicalAllocatorTestBase,
-    public WithParamInterface<std::tr1::tuple<size_t, size_t>> {};
+    public WithParamInterface<std::tuple<size_t, size_t>> {};
 
 
 // The Hierarchical Allocator benchmark tests are parameterized
@@ -4823,8 +4823,8 @@ INSTANTIATE_TEST_CASE_P(
 // add a framework after the slaves are added.
 TEST_P(HierarchicalAllocator_BENCHMARK_Test, AddAndUpdateSlave)
 {
-  size_t slaveCount = std::tr1::get<0>(GetParam());
-  size_t frameworkCount = std::tr1::get<1>(GetParam());
+  size_t slaveCount = std::get<0>(GetParam());
+  size_t frameworkCount = std::get<1>(GetParam());
 
   vector<SlaveInfo> slaves;
   slaves.reserve(slaveCount);
@@ -4938,8 +4938,8 @@ TEST_P(HierarchicalAllocator_BENCHMARK_Test, AddAndUpdateSlave)
 // subsequent offers.
 TEST_P(HierarchicalAllocator_BENCHMARK_Test, DeclineOffers)
 {
-  size_t slaveCount = std::tr1::get<0>(GetParam());
-  size_t frameworkCount = std::tr1::get<1>(GetParam());
+  size_t slaveCount = std::get<0>(GetParam());
+  size_t frameworkCount = std::get<1>(GetParam());
 
   // Pause the clock because we want to manually drive the allocations.
   Clock::pause();
@@ -5092,8 +5092,8 @@ static Labels createLabels(
 // TODO(neilc): Refactor to reduce code duplication with `DeclineOffers` test.
 TEST_P(HierarchicalAllocator_BENCHMARK_Test, ResourceLabels)
 {
-  size_t slaveCount = std::tr1::get<0>(GetParam());
-  size_t frameworkCount = std::tr1::get<1>(GetParam());
+  size_t slaveCount = std::get<0>(GetParam());
+  size_t frameworkCount = std::get<1>(GetParam());
 
   // Pause the clock because we want to manually drive the allocations.
   Clock::pause();
@@ -5266,8 +5266,8 @@ TEST_P(HierarchicalAllocator_BENCHMARK_Test, ResourceLabels)
 // on allocation times.
 TEST_P(HierarchicalAllocator_BENCHMARK_Test, SuppressOffers)
 {
-  size_t agentCount = std::tr1::get<0>(GetParam());
-  size_t frameworkCount = std::tr1::get<1>(GetParam());
+  size_t agentCount = std::get<0>(GetParam());
+  size_t frameworkCount = std::get<1>(GetParam());
 
   // Pause the clock because we want to manually drive the allocations.
   Clock::pause();
@@ -5423,8 +5423,8 @@ TEST_P(HierarchicalAllocator_BENCHMARK_Test, SuppressOffers)
 // TODO(bmahler): Add allocations to this benchmark.
 TEST_P(HierarchicalAllocator_BENCHMARK_Test, Metrics)
 {
-  size_t slaveCount = std::tr1::get<0>(GetParam());
-  size_t frameworkCount = std::tr1::get<1>(GetParam());
+  size_t slaveCount = std::get<0>(GetParam());
+  size_t frameworkCount = std::get<1>(GetParam());
 
   // Pause the clock because we want to manually drive the allocations.
   Clock::pause();
@@ -5503,8 +5503,8 @@ TEST_P(HierarchicalAllocator_BENCHMARK_Test, Metrics)
 // batching (MESOS-6904).
 TEST_P(HierarchicalAllocator_BENCHMARK_Test, AllocatorBacklog)
 {
-  size_t agentCount = std::tr1::get<0>(GetParam());
-  size_t frameworkCount = std::tr1::get<1>(GetParam());
+  size_t agentCount = std::get<0>(GetParam());
+  size_t frameworkCount = std::get<1>(GetParam());
 
   // Pause the clock because we want to manually drive the allocations.
   Clock::pause();

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/tests/scheduler_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/scheduler_tests.cpp b/src/tests/scheduler_tests.cpp
index 0f5d9ad..d23a393 100644
--- a/src/tests/scheduler_tests.cpp
+++ b/src/tests/scheduler_tests.cpp
@@ -1828,7 +1828,7 @@ TEST_P(SchedulerReconcileTasks_BENCHMARK_Test, SchedulerDriver)
 // or disabled.
 class SchedulerSSLTest
   : public MesosTest,
-    public WithParamInterface<std::tr1::tuple<ContentType, string>>
+    public WithParamInterface<std::tuple<ContentType, string>>
 {
 // These test setup/teardown methods are only needed when compiled with SSL.
 #ifdef USE_SSL_SOCKET
@@ -1837,7 +1837,7 @@ protected:
   {
     MesosTest::SetUp();
 
-    if (std::tr1::get<1>(GetParam()) == "https") {
+    if (std::get<1>(GetParam()) == "https") {
       generate_keys_and_certs();
       set_environment_variables({
           {"LIBPROCESS_SSL_ENABLED", "true"},
@@ -1918,7 +1918,7 @@ TEST_P(SchedulerSSLTest, RunTaskAndTeardown)
     .WillOnce(FutureSatisfy(&connected))
     .WillRepeatedly(Return()); // Ignore future invocations.
 
-  ContentType contentType = std::tr1::get<0>(GetParam());
+  ContentType contentType = std::get<0>(GetParam());
 
   v1::scheduler::TestMesos mesos(master.get()->pid, contentType, scheduler);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/src/tests/sorter_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/sorter_tests.cpp b/src/tests/sorter_tests.cpp
index 8e7ff79..2389664 100644
--- a/src/tests/sorter_tests.cpp
+++ b/src/tests/sorter_tests.cpp
@@ -1467,7 +1467,7 @@ TEST(SorterTest, RemoveSharedResources)
 
 class Sorter_BENCHMARK_Test
   : public ::testing::Test,
-    public ::testing::WithParamInterface<std::tr1::tuple<size_t, size_t>> {};
+    public ::testing::WithParamInterface<std::tuple<size_t, size_t>> {};
 
 
 // The sorter benchmark tests are parameterized by
@@ -1485,8 +1485,8 @@ INSTANTIATE_TEST_CASE_P(
 // different amount of allocations.
 TEST_P(Sorter_BENCHMARK_Test, FullSort)
 {
-  size_t agentCount = std::tr1::get<0>(GetParam());
-  size_t clientCount = std::tr1::get<1>(GetParam());
+  size_t agentCount = std::get<0>(GetParam());
+  size_t clientCount = std::get<1>(GetParam());
 
   cout << "Using " << agentCount << " agents and "
        << clientCount << " clients" << endl;
@@ -1617,7 +1617,7 @@ TEST_P(Sorter_BENCHMARK_Test, FullSort)
 class HierarchicalSorter_BENCHMARK_Test
   : public ::testing::Test,
     public ::testing::WithParamInterface<
-        std::tr1::tuple<size_t, std::tr1::tuple<size_t, size_t>>> {};
+        std::tuple<size_t, std::tuple<size_t, size_t>>> {};
 
 
 INSTANTIATE_TEST_CASE_P(
@@ -1627,9 +1627,9 @@ INSTANTIATE_TEST_CASE_P(
       ::testing::Values(1000U, 5000U, 10000U, 20000U, 30000U, 50000U),
       ::testing::Values(
           // ~1000 clients with different heights and branching factors.
-          std::tr1::tuple<size_t, size_t>{3U, 32U},   // 1056 clients.
-          std::tr1::tuple<size_t, size_t>{7U, 3U},    // 1092 clients.
-          std::tr1::tuple<size_t, size_t>{10U, 2U}))  // 1022 clients.
+          std::tuple<size_t, size_t>{3U, 32U},   // 1056 clients.
+          std::tuple<size_t, size_t>{7U, 3U},    // 1092 clients.
+          std::tuple<size_t, size_t>{10U, 2U}))  // 1022 clients.
     );
 
 
@@ -1640,10 +1640,10 @@ INSTANTIATE_TEST_CASE_P(
 // of each internal node).
 TEST_P(HierarchicalSorter_BENCHMARK_Test, FullSort)
 {
-  const size_t agentCount = std::tr1::get<0>(GetParam());
-  const std::tr1::tuple<size_t, size_t> tuple = std::tr1::get<1>(GetParam());
-  const size_t treeHeight = std::tr1::get<0>(tuple);
-  const size_t branchingFactor = std::tr1::get<1>(tuple);
+  const size_t agentCount = std::get<0>(GetParam());
+  const std::tuple<size_t, size_t> tuple = std::get<1>(GetParam());
+  const size_t treeHeight = std::get<0>(tuple);
+  const size_t branchingFactor = std::get<1>(tuple);
 
   vector<SlaveID> agents;
   agents.reserve(agentCount);

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/support/mesos-style.py
----------------------------------------------------------------------
diff --git a/support/mesos-style.py b/support/mesos-style.py
index 53ffe3b..f9c8528 100755
--- a/support/mesos-style.py
+++ b/support/mesos-style.py
@@ -191,7 +191,7 @@ class CppLinter(LinterBase):
                    os.path.join('3rdparty', 'libprocess'),
                    os.path.join('3rdparty', 'stout')]
 
-    exclude_files = '(protobuf\-2\.4\.1|gmock\-1\.6\.0|glog\-0\.3\.3|boost\-1\.53\.0|libev\-4\.15|java/jni|\.pb\.cc|\.pb\.h|\.md|\.virtualenv)'
+    exclude_files = '(protobuf\-2\.4\.1|googletest\-release\-1\.8\.0|glog\-0\.3\.3|boost\-1\.53\.0|libev\-4\.15|java/jni|\.pb\.cc|\.pb\.h|\.md|\.virtualenv)'
 
     source_files = '\.(cpp|hpp|cc|h)$'
 
@@ -248,7 +248,7 @@ class PyLinter(LinterBase):
 
     source_dirs = ['src/cli_new']
 
-    exclude_files = '(protobuf\-2\.4\.1|gmock\-1\.6\.0|glog\-0\.3\.3|boost\-1\.53\.0|libev\-4\.15|java/jni|\.virtualenv)'
+    exclude_files = '(protobuf\-2\.4\.1|googletest\-release\-1\.8\.0|glog\-0\.3\.3|boost\-1\.53\.0|libev\-4\.15|java/jni|\.virtualenv)'
 
     source_files = '\.(py)$'
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/95455644/support/mesos-tidy/entrypoint.sh
----------------------------------------------------------------------
diff --git a/support/mesos-tidy/entrypoint.sh b/support/mesos-tidy/entrypoint.sh
index 5dbaa60..5a7d85d 100755
--- a/support/mesos-tidy/entrypoint.sh
+++ b/support/mesos-tidy/entrypoint.sh
@@ -36,7 +36,7 @@ cmake -DCMAKE_BUILD_TYPE=Release \
 cmake --build 3rdparty --target boost-1.53.0 -- -j $(nproc)
 cmake --build 3rdparty --target elfio-3.2 -- -j $(nproc)
 cmake --build 3rdparty --target glog-0.3.3 -- -j $(nproc)
-cmake --build 3rdparty --target gmock-1.7.0 -- -j $(nproc)
+cmake --build 3rdparty --target googletest-release-1.8.0 -- -j $(nproc)
 cmake --build 3rdparty --target http_parser-2.6.2 -- -j $(nproc)
 
 # TODO(mpark): The `|| true` is a hack to try both `libev` and `libevent` and