You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mesos.apache.org by jp...@apache.org on 2018/07/17 21:25:05 UTC

[1/7] mesos git commit: Add use of `override` to the Mesos C++ style guide.

Repository: mesos
Updated Branches:
  refs/heads/master 80881423b -> 0c2a9f46d


Add use of `override` to the Mesos C++ style guide.

Add an explicit guideline to the Mesos C++ style guide that the use of
`override` keyword is required. Update cpplint and clang-tidy tooling
to encourage this.

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


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

Branch: refs/heads/master
Commit: 0c2a9f46de6b34468a938f739c4243b13ff8a034
Parents: 3e432d8
Author: James Peach <jp...@apache.org>
Authored: Tue Jul 17 09:41:28 2018 -0700
Committer: James Peach <jp...@apache.org>
Committed: Tue Jul 17 14:23:01 2018 -0700

----------------------------------------------------------------------
 docs/c++-style-guide.md | 13 +++++++++++++
 support/clang-tidy      |  2 ++
 support/mesos-style.py  |  7 ++++---
 3 files changed, 19 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/0c2a9f46/docs/c++-style-guide.md
----------------------------------------------------------------------
diff --git a/docs/c++-style-guide.md b/docs/c++-style-guide.md
index 80a1af3..0b1fdf2 100644
--- a/docs/c++-style-guide.md
+++ b/docs/c++-style-guide.md
@@ -647,3 +647,16 @@ Const expression constructors allow object initialization at compile time provid
   C++11 does not provide `constexpr string` or `constexpr` containers in the STL and hence `constexpr` cannot be used for any class using stout's Error() class.
 
 * `enum class`.
+
+* `override`.
+
+When overriding a virtual member function, the `override` keyword should always be used.  The [Google C++ Style Guide](https://google.github.io/styleguide/cppguide.html#Inheritance) supplies the rationale for this:
+
+<blockquote>
+A function or destructor marked override or final that is not an
+override of a base class virtual function will not compile, and
+this helps catch common errors. The specifiers serve as documentation;
+if no specifier is present, the reader has to check all ancestors
+of the class in question to determine if the function or destructor
+is virtual or not.
+</blockquote>

http://git-wip-us.apache.org/repos/asf/mesos/blob/0c2a9f46/support/clang-tidy
----------------------------------------------------------------------
diff --git a/support/clang-tidy b/support/clang-tidy
index fcffb39..188d71f 100644
--- a/support/clang-tidy
+++ b/support/clang-tidy
@@ -26,6 +26,8 @@ mesos-*,\
 \
 misc-use-after-move,\
 \
+modernize-use-override,\
+\
 readability-redundant-string-cstr\
 "
 FormatStyle: file

http://git-wip-us.apache.org/repos/asf/mesos/blob/0c2a9f46/support/mesos-style.py
----------------------------------------------------------------------
diff --git a/support/mesos-style.py b/support/mesos-style.py
index 6726e6e..4f3488c 100755
--- a/support/mesos-style.py
+++ b/support/mesos-style.py
@@ -258,20 +258,21 @@ class CppLinter(LinterBase):
             'build/deprecated',
             'build/endif_comment',
             'build/nullptr',
-            'readability/todo',
+            'readability/inheritance',
             'readability/namespace',
+            'readability/todo',
             'runtime/vlog',
             'whitespace/blank_line',
             'whitespace/comma',
-            'whitespace/end_of_line',
+            'whitespace/comments',
             'whitespace/ending_newline',
+            'whitespace/end_of_line',
             'whitespace/forcolon',
             'whitespace/indent',
             'whitespace/line_length',
             'whitespace/operators',
             'whitespace/semicolon',
             'whitespace/tab',
-            'whitespace/comments',
             'whitespace/todo']
 
         rules_filter = '--filter=-,+' + ',+'.join(active_rules)


[2/7] mesos git commit: Apply the `override` keyword to libprocess.

Posted by jp...@apache.org.
Apply the `override` keyword to libprocess.

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


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

Branch: refs/heads/master
Commit: a51f0d66a2c01b1f05550b44522f6a05e995e052
Parents: 5affcfd
Author: James Peach <jp...@apache.org>
Authored: Tue Jul 17 09:30:49 2018 -0700
Committer: James Peach <jp...@apache.org>
Committed: Tue Jul 17 14:23:01 2018 -0700

----------------------------------------------------------------------
 3rdparty/libprocess/README.md                       |  2 +-
 3rdparty/libprocess/examples/example.cpp            |  4 ++--
 3rdparty/libprocess/include/process/async.hpp       |  2 +-
 3rdparty/libprocess/include/process/collect.hpp     |  8 ++++----
 3rdparty/libprocess/include/process/event.hpp       | 16 ++++++++--------
 3rdparty/libprocess/include/process/filter.hpp      |  8 ++++----
 3rdparty/libprocess/include/process/firewall.hpp    |  6 +++---
 3rdparty/libprocess/include/process/gmock.hpp       | 15 ++++++++-------
 3rdparty/libprocess/include/process/grpc.hpp        |  2 +-
 3rdparty/libprocess/include/process/gtest.hpp       |  2 +-
 3rdparty/libprocess/include/process/help.hpp        |  2 +-
 3rdparty/libprocess/include/process/limiter.hpp     |  2 +-
 3rdparty/libprocess/include/process/logging.hpp     |  4 ++--
 .../libprocess/include/process/metrics/counter.hpp  |  4 ++--
 .../libprocess/include/process/metrics/metrics.hpp  |  2 +-
 .../include/process/metrics/pull_gauge.hpp          |  4 ++--
 .../include/process/metrics/push_gauge.hpp          |  4 ++--
 .../libprocess/include/process/metrics/timer.hpp    |  2 +-
 3rdparty/libprocess/include/process/process.hpp     |  4 ++--
 3rdparty/libprocess/include/process/profiler.hpp    |  4 ++--
 3rdparty/libprocess/include/process/protobuf.hpp    |  4 ++--
 3rdparty/libprocess/include/process/reap.hpp        |  2 +-
 3rdparty/libprocess/include/process/run.hpp         |  2 +-
 3rdparty/libprocess/include/process/sequence.hpp    |  2 +-
 3rdparty/libprocess/include/process/system.hpp      |  6 +++---
 3rdparty/libprocess/src/encoder.hpp                 | 16 ++++++++--------
 3rdparty/libprocess/src/http.cpp                    |  6 +++---
 3rdparty/libprocess/src/http_proxy.hpp              |  2 +-
 3rdparty/libprocess/src/memory_profiler.hpp         |  4 ++--
 3rdparty/libprocess/src/poll_socket.hpp             | 16 ++++++++--------
 3rdparty/libprocess/src/process.cpp                 |  6 +++---
 3rdparty/libprocess/src/tests/benchmarks.cpp        | 10 +++++-----
 3rdparty/libprocess/src/tests/http_tests.cpp        |  6 +++---
 3rdparty/libprocess/src/tests/metrics_tests.cpp     |  2 +-
 3rdparty/libprocess/src/tests/process_tests.cpp     | 16 ++++++++--------
 3rdparty/libprocess/src/tests/profiler_tests.cpp    |  2 +-
 36 files changed, 100 insertions(+), 99 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/README.md
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/README.md b/3rdparty/libprocess/README.md
index 9846ece..f25914e 100644
--- a/3rdparty/libprocess/README.md
+++ b/3rdparty/libprocess/README.md
@@ -384,7 +384,7 @@ using namespace process::http;
 class HttpProcess : public Process<HttpProcess>
 {
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     route("/testing", None(), [](const Request& request) {
       return testing(request.query);

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/examples/example.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/examples/example.cpp b/3rdparty/libprocess/examples/example.cpp
index 0db2d03..3bbe209 100644
--- a/3rdparty/libprocess/examples/example.cpp
+++ b/3rdparty/libprocess/examples/example.cpp
@@ -31,7 +31,7 @@ class MyProcess : public Process<MyProcess>
 {
 public:
   MyProcess(): ProcessBase("my-process") {}
-  virtual ~MyProcess() {}
+  ~MyProcess() override {}
 
   Future<int> func1()
   {
@@ -66,7 +66,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // route("/vars", None(), &MyProcess::vars);
     route("/vars", None(), [=](const Request& request) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/async.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/async.hpp b/3rdparty/libprocess/include/process/async.hpp
index 116c90c..a704bee 100644
--- a/3rdparty/libprocess/include/process/async.hpp
+++ b/3rdparty/libprocess/include/process/async.hpp
@@ -71,7 +71,7 @@ private:
   friend class AsyncExecutor;
 
   AsyncExecutorProcess() : ProcessBase(ID::generate("__async_executor__")) {}
-  virtual ~AsyncExecutorProcess() {}
+  ~AsyncExecutorProcess() override {}
 
   // Not copyable, not assignable.
   AsyncExecutorProcess(const AsyncExecutorProcess&);

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/collect.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/collect.hpp b/3rdparty/libprocess/include/process/collect.hpp
index 5263f01..7318a4a 100644
--- a/3rdparty/libprocess/include/process/collect.hpp
+++ b/3rdparty/libprocess/include/process/collect.hpp
@@ -127,13 +127,13 @@ public:
       promise(_promise),
       ready(0) {}
 
-  virtual ~CollectProcess()
+  ~CollectProcess() override
   {
     delete promise;
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop this nonsense if nobody cares.
     promise->future().onDiscard(defer(this, &CollectProcess::discarded));
@@ -210,12 +210,12 @@ public:
       promise(_promise),
       ready(0) {}
 
-  virtual ~AwaitProcess()
+  ~AwaitProcess() override
   {
     delete promise;
   }
 
-  virtual void initialize()
+  void initialize() override
   {
     // Stop this nonsense if nobody cares.
     promise->future().onDiscard(defer(this, &AwaitProcess::discarded));

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/event.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/event.hpp b/3rdparty/libprocess/include/process/event.hpp
index ec64eb7..d96db74 100644
--- a/3rdparty/libprocess/include/process/event.hpp
+++ b/3rdparty/libprocess/include/process/event.hpp
@@ -71,7 +71,7 @@ struct Event
     struct IsVisitor : EventVisitor
     {
       explicit IsVisitor(bool* _result) : result(_result) {}
-      virtual void visit(const T&) { *result = true; }
+      void visit(const T&) override { *result = true; }
       bool* result;
     } visitor(&result);
     visit(&visitor);
@@ -85,7 +85,7 @@ struct Event
     struct AsVisitor : EventVisitor
     {
       explicit AsVisitor(const T** _result) : result(_result) {}
-      virtual void visit(const T& t) { *result = &t; }
+      void visit(const T& t) override { *result = &t; }
       const T** result;
     } visitor(&result);
     visit(&visitor);
@@ -152,7 +152,7 @@ struct HttpEvent : Event
   HttpEvent& operator=(HttpEvent&&) = default;
   HttpEvent& operator=(const HttpEvent&) = delete;
 
-  virtual ~HttpEvent()
+  ~HttpEvent() override
   {
     if (response) {
       // Fail the response in case it wasn't set.
@@ -268,7 +268,7 @@ inline Event::operator JSON::Object() const
   {
     explicit Visitor(JSON::Object* _object) : object(_object) {}
 
-    virtual void visit(const MessageEvent& event)
+    void visit(const MessageEvent& event) override
     {
       object->values["type"] = "MESSAGE";
 
@@ -280,7 +280,7 @@ inline Event::operator JSON::Object() const
       object->values["body"] = message.body;
     }
 
-    virtual void visit(const HttpEvent& event)
+    void visit(const HttpEvent& event) override
     {
       object->values["type"] = "HTTP";
 
@@ -290,17 +290,17 @@ inline Event::operator JSON::Object() const
       object->values["url"] = stringify(request.url);
     }
 
-    virtual void visit(const DispatchEvent& event)
+    void visit(const DispatchEvent& event) override
     {
       object->values["type"] = "DISPATCH";
     }
 
-    virtual void visit(const ExitedEvent& event)
+    void visit(const ExitedEvent& event) override
     {
       object->values["type"] = "EXITED";
     }
 
-    virtual void visit(const TerminateEvent& event)
+    void visit(const TerminateEvent& event) override
     {
       object->values["type"] = "TERMINATE";
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/filter.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/filter.hpp b/3rdparty/libprocess/include/process/filter.hpp
index 3f4a827..79a1917 100644
--- a/3rdparty/libprocess/include/process/filter.hpp
+++ b/3rdparty/libprocess/include/process/filter.hpp
@@ -33,22 +33,22 @@ public:
       explicit FilterVisitor(Filter* _filter, bool* _result)
         : filter(_filter), result(_result) {}
 
-      virtual void visit(const MessageEvent& event)
+      void visit(const MessageEvent& event) override
       {
         *result = filter->filter(event);
       }
 
-      virtual void visit(const DispatchEvent& event)
+      void visit(const DispatchEvent& event) override
       {
         *result = filter->filter(event);
       }
 
-      virtual void visit(const HttpEvent& event)
+      void visit(const HttpEvent& event) override
       {
         *result = filter->filter(event);
       }
 
-      virtual void visit(const ExitedEvent& event)
+      void visit(const ExitedEvent& event) override
       {
         *result = filter->filter(event);
       }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/firewall.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/firewall.hpp b/3rdparty/libprocess/include/process/firewall.hpp
index 0a7b985..c0f48aa 100644
--- a/3rdparty/libprocess/include/process/firewall.hpp
+++ b/3rdparty/libprocess/include/process/firewall.hpp
@@ -72,11 +72,11 @@ class DisabledEndpointsFirewallRule : public FirewallRule
 public:
   explicit DisabledEndpointsFirewallRule(const hashset<std::string>& _paths);
 
-  virtual ~DisabledEndpointsFirewallRule() {}
+  ~DisabledEndpointsFirewallRule() override {}
 
-  virtual Option<http::Response> apply(
+  Option<http::Response> apply(
       const network::inet::Socket&,
-      const http::Request& request)
+      const http::Request& request) override
   {
     if (paths.contains(request.url.path)) {
       return http::Forbidden("Endpoint '" + request.url.path + "' is disabled");

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/gmock.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/gmock.hpp b/3rdparty/libprocess/include/process/gmock.hpp
index b5ead1c..e30f586 100644
--- a/3rdparty/libprocess/include/process/gmock.hpp
+++ b/3rdparty/libprocess/include/process/gmock.hpp
@@ -193,8 +193,9 @@ private:
       *future = promise.future();
     }
 
-    virtual typename ::testing::ActionInterface<F>::Result Perform(
+    typename ::testing::ActionInterface<F>::Result Perform(
         const typename ::testing::ActionInterface<F>::ArgumentTuple& args)
+        override
     {
       const typename ::testing::ActionInterface<F>::Result result =
         action.Perform(args);
@@ -258,10 +259,10 @@ class TestsFilter : public Filter
 public:
   TestsFilter() = default;
 
-  virtual bool filter(const MessageEvent& event) { return handle(event); }
-  virtual bool filter(const DispatchEvent& event) { return handle(event); }
-  virtual bool filter(const HttpEvent& event) { return handle(event); }
-  virtual bool filter(const ExitedEvent& event) { return handle(event); }
+  bool filter(const MessageEvent& event) override { return handle(event); }
+  bool filter(const DispatchEvent& event) override { return handle(event); }
+  bool filter(const HttpEvent& event) override { return handle(event); }
+  bool filter(const ExitedEvent& event) override { return handle(event); }
 
   template <typename T>
   bool handle(const T& t)
@@ -316,12 +317,12 @@ public:
     return filter;
   }
 
-  virtual void OnTestProgramStart(const ::testing::UnitTest&)
+  void OnTestProgramStart(const ::testing::UnitTest&) override
   {
     started = true;
   }
 
-  virtual void OnTestEnd(const ::testing::TestInfo&)
+  void OnTestEnd(const ::testing::TestInfo&) override
   {
     if (filter != nullptr) {
       // Remove the filter in libprocess _before_ deleting.

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/grpc.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/grpc.hpp b/3rdparty/libprocess/include/process/grpc.hpp
index bdafeb3..28a854f 100644
--- a/3rdparty/libprocess/include/process/grpc.hpp
+++ b/3rdparty/libprocess/include/process/grpc.hpp
@@ -275,7 +275,7 @@ private:
   {
   public:
     RuntimeProcess();
-    virtual ~RuntimeProcess();
+    ~RuntimeProcess() override;
 
     void send(SendCallback callback);
     void receive(ReceiveCallback callback);

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/gtest.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/gtest.hpp b/3rdparty/libprocess/include/process/gtest.hpp
index 79ea2b1..fd4de8a 100644
--- a/3rdparty/libprocess/include/process/gtest.hpp
+++ b/3rdparty/libprocess/include/process/gtest.hpp
@@ -48,7 +48,7 @@ public:
     return listener;
   }
 
-  virtual void OnTestEnd(const ::testing::TestInfo&)
+  void OnTestEnd(const ::testing::TestInfo&) override
   {
     if (process::Clock::paused()) {
       process::Clock::resume();

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/help.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/help.hpp b/3rdparty/libprocess/include/process/help.hpp
index 3393b71..5208458 100644
--- a/3rdparty/libprocess/include/process/help.hpp
+++ b/3rdparty/libprocess/include/process/help.hpp
@@ -135,7 +135,7 @@ public:
   friend void json(JSON::ObjectWriter* writer, const Help& help);
 
 protected:
-  virtual void initialize();
+  void initialize() override;
 
 private:
   // Handles the following:

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/limiter.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/limiter.hpp b/3rdparty/libprocess/include/process/limiter.hpp
index b4b6a7b..2e9e380 100644
--- a/3rdparty/libprocess/include/process/limiter.hpp
+++ b/3rdparty/libprocess/include/process/limiter.hpp
@@ -77,7 +77,7 @@ public:
     CHECK_GT(permitsPerSecond, 0);
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     foreach (Promise<Nothing>* promise, promises) {
       promise->discard();

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/logging.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/logging.hpp b/3rdparty/libprocess/include/process/logging.hpp
index aad7ce8..b145244 100644
--- a/3rdparty/libprocess/include/process/logging.hpp
+++ b/3rdparty/libprocess/include/process/logging.hpp
@@ -37,12 +37,12 @@ public:
     CHECK(sizeof(FLAGS_v) == sizeof(int32_t));
   }
 
-  virtual ~Logging() {}
+  ~Logging() override {}
 
   Future<Nothing> set_level(int level, const Duration& duration);
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     route("/toggle", authenticationRealm, TOGGLE_HELP(), &This::toggle);
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/metrics/counter.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/metrics/counter.hpp b/3rdparty/libprocess/include/process/metrics/counter.hpp
index 15aeeb5..f532d8b 100644
--- a/3rdparty/libprocess/include/process/metrics/counter.hpp
+++ b/3rdparty/libprocess/include/process/metrics/counter.hpp
@@ -36,9 +36,9 @@ public:
     push(static_cast<double>(data->value.load()));
   }
 
-  virtual ~Counter() {}
+  ~Counter() override {}
 
-  virtual Future<double> value() const
+  Future<double> value() const override
   {
     return static_cast<double>(data->value.load());
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/metrics/metrics.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/metrics/metrics.hpp b/3rdparty/libprocess/include/process/metrics/metrics.hpp
index 3dc6bbf..75711ed 100644
--- a/3rdparty/libprocess/include/process/metrics/metrics.hpp
+++ b/3rdparty/libprocess/include/process/metrics/metrics.hpp
@@ -45,7 +45,7 @@ public:
       const Option<Duration>& timeout);
 
 protected:
-  virtual void initialize();
+  void initialize() override;
 
 private:
   static std::string help();

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/metrics/pull_gauge.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/metrics/pull_gauge.hpp b/3rdparty/libprocess/include/process/metrics/pull_gauge.hpp
index 5c2a227..aa9b463 100644
--- a/3rdparty/libprocess/include/process/metrics/pull_gauge.hpp
+++ b/3rdparty/libprocess/include/process/metrics/pull_gauge.hpp
@@ -56,9 +56,9 @@ public:
   PullGauge(const std::string& name, const std::function<Future<double>()>& f)
     : Metric(name, None()), data(new Data(f)) {}
 
-  virtual ~PullGauge() {}
+  ~PullGauge() override {}
 
-  virtual Future<double> value() const { return data->f(); }
+  Future<double> value() const override { return data->f(); }
 
 private:
   struct Data

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/metrics/push_gauge.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/metrics/push_gauge.hpp b/3rdparty/libprocess/include/process/metrics/push_gauge.hpp
index 5c39846..0dd2c20 100644
--- a/3rdparty/libprocess/include/process/metrics/push_gauge.hpp
+++ b/3rdparty/libprocess/include/process/metrics/push_gauge.hpp
@@ -51,9 +51,9 @@ public:
   explicit PushGauge(const std::string& name)
     : Metric(name, None()), data(new Data()) {}
 
-  virtual ~PushGauge() {}
+  ~PushGauge() override {}
 
-  virtual Future<double> value() const
+  Future<double> value() const override
   {
     return static_cast<double>(data->value.load());
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/metrics/timer.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/metrics/timer.hpp b/3rdparty/libprocess/include/process/metrics/timer.hpp
index 0a9c022..8d91c0c 100644
--- a/3rdparty/libprocess/include/process/metrics/timer.hpp
+++ b/3rdparty/libprocess/include/process/metrics/timer.hpp
@@ -42,7 +42,7 @@ public:
     : Metric(name + "_" + T::units(), window),
       data(new Data()) {}
 
-  Future<double> value() const
+  Future<double> value() const override
   {
     Future<double> value;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/process.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/process.hpp b/3rdparty/libprocess/include/process/process.hpp
index c36df99..7c255ac 100644
--- a/3rdparty/libprocess/include/process/process.hpp
+++ b/3rdparty/libprocess/include/process/process.hpp
@@ -74,7 +74,7 @@ class ProcessBase : public EventConsumer
 public:
   explicit ProcessBase(const std::string& id = "");
 
-  virtual ~ProcessBase();
+  ~ProcessBase() override;
 
   const UPID& self() const { return pid; }
 
@@ -500,7 +500,7 @@ private:
 template <typename T>
 class Process : public virtual ProcessBase {
 public:
-  virtual ~Process() {}
+  ~Process() override {}
 
   /**
    * Returns the `PID` of the process.

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/profiler.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/profiler.hpp b/3rdparty/libprocess/include/process/profiler.hpp
index 74890ae..48375b4 100644
--- a/3rdparty/libprocess/include/process/profiler.hpp
+++ b/3rdparty/libprocess/include/process/profiler.hpp
@@ -28,10 +28,10 @@ public:
     : ProcessBase("profiler"),
       authenticationRealm(_authenticationRealm) {}
 
-  virtual ~Profiler() {}
+  ~Profiler() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     route("/start",
           authenticationRealm,

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/protobuf.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/protobuf.hpp b/3rdparty/libprocess/include/process/protobuf.hpp
index 5a75a83..45ac3aa 100644
--- a/3rdparty/libprocess/include/process/protobuf.hpp
+++ b/3rdparty/libprocess/include/process/protobuf.hpp
@@ -100,7 +100,7 @@ template <typename T>
 class ProtobufProcess : public process::Process<T>
 {
 public:
-  virtual ~ProtobufProcess() {}
+  ~ProtobufProcess() override {}
 
 protected:
   void consume(process::MessageEvent&& event) override
@@ -413,7 +413,7 @@ public:
       install<Res>(&ReqResProcess<Req, Res>::response);
   }
 
-  virtual ~ReqResProcess()
+  ~ReqResProcess() override
   {
     // Discard the promise.
     promise.discard();

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/reap.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/reap.hpp b/3rdparty/libprocess/include/process/reap.hpp
index 628bc0a..ac72186 100644
--- a/3rdparty/libprocess/include/process/reap.hpp
+++ b/3rdparty/libprocess/include/process/reap.hpp
@@ -38,7 +38,7 @@ public:
   Future<Option<int>> reap(pid_t pid);
 
 protected:
-  virtual void initialize();
+  void initialize() override;
 
   void wait();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/run.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/run.hpp b/3rdparty/libprocess/include/process/run.hpp
index 0d282c9..e0bb2ee 100644
--- a/3rdparty/libprocess/include/process/run.hpp
+++ b/3rdparty/libprocess/include/process/run.hpp
@@ -35,7 +35,7 @@ public:
       thunk(_thunk),
       promise(_promise) {}
 
-  virtual ~ThunkProcess() {}
+  ~ThunkProcess() override {}
 
 protected:
   void serve(Event&& event) override

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/sequence.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/sequence.hpp b/3rdparty/libprocess/include/process/sequence.hpp
index 24712b1..797d1f2 100644
--- a/3rdparty/libprocess/include/process/sequence.hpp
+++ b/3rdparty/libprocess/include/process/sequence.hpp
@@ -140,7 +140,7 @@ public:
   }
 
 protected:
-  virtual void finalize()
+  void finalize() override
   {
     last.discard();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/include/process/system.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/include/process/system.hpp b/3rdparty/libprocess/include/process/system.hpp
index 81ded8a..8f32c9a 100644
--- a/3rdparty/libprocess/include/process/system.hpp
+++ b/3rdparty/libprocess/include/process/system.hpp
@@ -54,10 +54,10 @@ public:
           self().id + "/mem_free_bytes",
           defer(self(), &System::_mem_free_bytes)) {}
 
-  virtual ~System() {}
+  ~System() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // TODO(dhamon): Check return values.
     metrics::add(load_1min);
@@ -70,7 +70,7 @@ protected:
     route("/stats.json", statsHelp(), &System::stats);
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     metrics::remove(load_1min);
     metrics::remove(load_5min);

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/encoder.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/encoder.hpp b/3rdparty/libprocess/src/encoder.hpp
index 70b5ec4..963a4ff 100644
--- a/3rdparty/libprocess/src/encoder.hpp
+++ b/3rdparty/libprocess/src/encoder.hpp
@@ -65,9 +65,9 @@ public:
   DataEncoder(const std::string& _data)
     : data(_data), index(0) {}
 
-  virtual ~DataEncoder() {}
+  ~DataEncoder() override {}
 
-  virtual Kind kind() const
+  Kind kind() const override
   {
     return Encoder::DATA;
   }
@@ -80,14 +80,14 @@ public:
     return data.data() + temp;
   }
 
-  virtual void backup(size_t length)
+  void backup(size_t length) override
   {
     if (index >= length) {
       index -= length;
     }
   }
 
-  virtual size_t remaining() const
+  size_t remaining() const override
   {
     return data.size() - index;
   }
@@ -243,12 +243,12 @@ public:
     CHECK_LE(_size, static_cast<size_t>(std::numeric_limits<off_t>::max()));
   }
 
-  virtual ~FileEncoder()
+  ~FileEncoder() override
   {
     CHECK_SOME(os::close(fd)) << "Failed to close file descriptor";
   }
 
-  virtual Kind kind() const
+  Kind kind() const override
   {
     return Encoder::FILE;
   }
@@ -262,14 +262,14 @@ public:
     return fd;
   }
 
-  virtual void backup(size_t length)
+  void backup(size_t length) override
   {
     if (index >= static_cast<off_t>(length)) {
       index -= static_cast<off_t>(length);
     }
   }
 
-  virtual size_t remaining() const
+  size_t remaining() const override
   {
     return static_cast<size_t>(size - index);
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/http.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/http.cpp b/3rdparty/libprocess/src/http.cpp
index dc38716..cbb9102 100644
--- a/3rdparty/libprocess/src/http.cpp
+++ b/3rdparty/libprocess/src/http.cpp
@@ -1214,7 +1214,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Start the read loop on the socket. We read independently
     // of the requests being sent in order to detect socket
@@ -1222,7 +1222,7 @@ protected:
     read();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     disconnect("Connection object was destructed");
   }
@@ -2138,7 +2138,7 @@ public:
   }
 
 protected:
-  virtual void finalize()
+  void finalize() override
   {
     // If we started the accept loop then discard it and any clients
     // we are already serving.

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/http_proxy.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/http_proxy.hpp b/3rdparty/libprocess/src/http_proxy.hpp
index 5b6e7e8..bf55c2f 100644
--- a/3rdparty/libprocess/src/http_proxy.hpp
+++ b/3rdparty/libprocess/src/http_proxy.hpp
@@ -38,7 +38,7 @@ class HttpProxy : public Process<HttpProxy>
 public:
   explicit HttpProxy(const network::inet::Socket& _socket);
 
-  virtual ~HttpProxy() {}
+  ~HttpProxy() override {}
 
   // Enqueues the response to be sent once all previously enqueued
   // responses have been processed (e.g., waited for and sent).

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/memory_profiler.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/memory_profiler.hpp b/3rdparty/libprocess/src/memory_profiler.hpp
index 617f8de..b5d88b0 100644
--- a/3rdparty/libprocess/src/memory_profiler.hpp
+++ b/3rdparty/libprocess/src/memory_profiler.hpp
@@ -39,10 +39,10 @@ class MemoryProfiler : public Process<MemoryProfiler>
 {
 public:
   MemoryProfiler(const Option<std::string>& authenticationRealm);
-  virtual ~MemoryProfiler() {}
+  ~MemoryProfiler() override {}
 
 protected:
-  virtual void initialize();
+  void initialize() override;
 
 private:
   static const std::string START_HELP();

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/poll_socket.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/poll_socket.hpp b/3rdparty/libprocess/src/poll_socket.hpp
index eebd718..15b7902 100644
--- a/3rdparty/libprocess/src/poll_socket.hpp
+++ b/3rdparty/libprocess/src/poll_socket.hpp
@@ -27,16 +27,16 @@ public:
 
   PollSocketImpl(int_fd s) : SocketImpl(s) {}
 
-  virtual ~PollSocketImpl() {}
+  ~PollSocketImpl() override {}
 
   // Implementation of the SocketImpl interface.
-  virtual Try<Nothing> listen(int backlog);
-  virtual Future<std::shared_ptr<SocketImpl>> accept();
-  virtual Future<Nothing> connect(const Address& address);
-  virtual Future<size_t> recv(char* data, size_t size);
-  virtual Future<size_t> send(const char* data, size_t size);
-  virtual Future<size_t> sendfile(int_fd fd, off_t offset, size_t size);
-  virtual Kind kind() const { return SocketImpl::Kind::POLL; }
+  Try<Nothing> listen(int backlog) override;
+  Future<std::shared_ptr<SocketImpl>> accept() override;
+  Future<Nothing> connect(const Address& address) override;
+  Future<size_t> recv(char* data, size_t size) override;
+  Future<size_t> send(const char* data, size_t size) override;
+  Future<size_t> sendfile(int_fd fd, off_t offset, size_t size) override;
+  Kind kind() const override { return SocketImpl::Kind::POLL; }
 };
 
 } // namespace internal {

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/process.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/process.cpp b/3rdparty/libprocess/src/process.cpp
index b3bd028..7c0a0bc 100644
--- a/3rdparty/libprocess/src/process.cpp
+++ b/3rdparty/libprocess/src/process.cpp
@@ -328,7 +328,7 @@ private:
         handler(_handler) {}
 
   protected:
-    virtual void initialize()
+    void initialize() override
     {
       route("/", help, &RouteProcess::handle);
     }
@@ -3906,7 +3906,7 @@ public:
       duration(_duration),
       waited(_waited) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     VLOG(3) << "Running waiter process for " << pid;
     link(pid);
@@ -3914,7 +3914,7 @@ public:
   }
 
 private:
-  virtual void exited(const UPID&)
+  void exited(const UPID&) override
   {
     VLOG(3) << "Waiter process waited for " << pid;
     *waited = true;

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/tests/benchmarks.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/benchmarks.cpp b/3rdparty/libprocess/src/tests/benchmarks.cpp
index e63f116..aed90ed 100644
--- a/3rdparty/libprocess/src/tests/benchmarks.cpp
+++ b/3rdparty/libprocess/src/tests/benchmarks.cpp
@@ -93,10 +93,10 @@ public:
       totalRequests(0),
       concurrency(0) {}
 
-  virtual ~ClientProcess() {}
+  ~ClientProcess() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     install("pong", &ClientProcess::pong);
 
@@ -206,10 +206,10 @@ private:
 class ServerProcess : public Process<ServerProcess>
 {
 public:
-  virtual ~ServerProcess() {}
+  ~ServerProcess() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // TODO(bmahler): Move in the message when move support is added.
     install("ping", &ServerProcess::ping);
@@ -306,7 +306,7 @@ class LinkerProcess : public Process<LinkerProcess>
 public:
   LinkerProcess(const UPID& _to) : to(_to) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     link(to);
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/tests/http_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/http_tests.cpp b/3rdparty/libprocess/src/tests/http_tests.cpp
index 5429034..acbd697 100644
--- a/3rdparty/libprocess/src/tests/http_tests.cpp
+++ b/3rdparty/libprocess/src/tests/http_tests.cpp
@@ -127,7 +127,7 @@ public:
       Future<http::Response>(const http::Request&, const Option<Principal>&));
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     route("/body", None(), &HttpProcess::body);
     route("/pipe", None(), &HttpProcess::pipe);
@@ -1786,7 +1786,7 @@ public:
       authenticate,
       Future<AuthenticationResult>(const http::Request&));
 
-  virtual string scheme() const { return "Basic"; }
+  string scheme() const override { return "Basic"; }
 };
 
 
@@ -1802,7 +1802,7 @@ protected:
     return authentication::setAuthenticator(realm, authenticator);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const string& realm, realms) {
       // We need to wait in order to ensure that the operation

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/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 a5b41ed..8590bdb 100644
--- a/3rdparty/libprocess/src/tests/metrics_tests.cpp
+++ b/3rdparty/libprocess/src/tests/metrics_tests.cpp
@@ -103,7 +103,7 @@ protected:
     return authentication::setAuthenticator(realm, authenticator);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const string& realm, realms) {
       // We need to wait in order to ensure that the operation

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/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 2f8a823..8baf60d 100644
--- a/3rdparty/libprocess/src/tests/process_tests.cpp
+++ b/3rdparty/libprocess/src/tests/process_tests.cpp
@@ -701,7 +701,7 @@ class ExitedProcess : public Process<ExitedProcess>
 public:
   explicit ExitedProcess(const UPID& _pid) : pid(_pid) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     link(pid);
   }
@@ -763,7 +763,7 @@ public:
   // This is a workaround for mocking methods taking
   // rvalue reference parameters.
   // See https://github.com/google/googletest/issues/395
-  void consume(MessageEvent&& event) { consume_(event.message); }
+  void consume(MessageEvent&& event) override { consume_(event.message); }
   MOCK_METHOD1(consume_, void(const Message&));
 };
 
@@ -771,7 +771,7 @@ public:
 class ProcessRemoteLinkTest : public ::testing::Test
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     // Spawn a process to coordinate with the subprocess (test-linkee).
     // The `test-linkee` will send us a message when it has finished
@@ -820,7 +820,7 @@ protected:
     }
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     if (linkee.isSome()) {
       os::killtree(linkee->pid(), SIGKILL);
@@ -1156,7 +1156,7 @@ class SettleProcess : public Process<SettleProcess>
 public:
   SettleProcess() : calledDispatch(false) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     os::sleep(Milliseconds(10));
     delay(Seconds(0), self(), &SettleProcess::afterDelay);
@@ -1586,7 +1586,7 @@ public:
   explicit FileServer(const string& _path)
     : path(_path) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     provide("", path);
   }
@@ -1785,7 +1785,7 @@ public:
   PercentEncodedIDProcess()
     : ProcessBase("id(42)") {}
 
-  virtual void initialize()
+  void initialize() override
   {
     install("handler1", &Self::handler1);
     route("/handler2", None(), &Self::handler2);
@@ -1856,7 +1856,7 @@ public:
   explicit HTTPEndpointProcess(const string& id)
     : ProcessBase(id) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     route(
         "/handler1",

http://git-wip-us.apache.org/repos/asf/mesos/blob/a51f0d66/3rdparty/libprocess/src/tests/profiler_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/libprocess/src/tests/profiler_tests.cpp b/3rdparty/libprocess/src/tests/profiler_tests.cpp
index 995bd02..43e6af9 100644
--- a/3rdparty/libprocess/src/tests/profiler_tests.cpp
+++ b/3rdparty/libprocess/src/tests/profiler_tests.cpp
@@ -55,7 +55,7 @@ protected:
     return authentication::setAuthenticator(realm, authenticator);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const string& realm, realms) {
       // We need to wait in order to ensure that the operation


[3/7] mesos git commit: Apply the `override` keyword to Mesos.

Posted by jp...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/hierarchical_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hierarchical_allocator_tests.cpp b/src/tests/hierarchical_allocator_tests.cpp
index 0e1c4a9..27fbd9c 100644
--- a/src/tests/hierarchical_allocator_tests.cpp
+++ b/src/tests/hierarchical_allocator_tests.cpp
@@ -134,7 +134,7 @@ protected:
       nextSlaveId(1),
       nextFrameworkId(1) {}
 
-  ~HierarchicalAllocatorTestBase()
+  ~HierarchicalAllocatorTestBase() override
   {
     delete allocator;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/hook_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hook_tests.cpp b/src/tests/hook_tests.cpp
index 70ffd92..d8aa35e 100644
--- a/src/tests/hook_tests.cpp
+++ b/src/tests/hook_tests.cpp
@@ -116,7 +116,7 @@ protected:
     EXPECT_SOME(HookManager::initialize(HOOK_MODULE_NAME));
   }
 
-  ~HookTest()
+  ~HookTest() override
   {
     // Unload the hooks so a subsequent install may succeed.
     EXPECT_SOME(HookManager::unload(HOOK_MODULE_NAME));

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/http_authentication_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/http_authentication_tests.cpp b/src/tests/http_authentication_tests.cpp
index f84af7c..0c25374 100644
--- a/src/tests/http_authentication_tests.cpp
+++ b/src/tests/http_authentication_tests.cpp
@@ -271,7 +271,7 @@ public:
 
   MOCK_METHOD1(authenticate, Future<AuthenticationResult>(const Request&));
 
-  virtual string scheme() const { return mockScheme; }
+  string scheme() const override { return mockScheme; }
 
 private:
   const string mockScheme;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/http_server_test_helper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/http_server_test_helper.hpp b/src/tests/http_server_test_helper.hpp
index d034ef5..dcbf92c 100644
--- a/src/tests/http_server_test_helper.hpp
+++ b/src/tests/http_server_test_helper.hpp
@@ -45,8 +45,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace tests {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/kill_policy_test_helper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/kill_policy_test_helper.hpp b/src/tests/kill_policy_test_helper.hpp
index 2965110..757d5ca 100644
--- a/src/tests/kill_policy_test_helper.hpp
+++ b/src/tests/kill_policy_test_helper.hpp
@@ -43,8 +43,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace tests {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/log_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/log_tests.cpp b/src/tests/log_tests.cpp
index ac1cca7..a8980e3 100644
--- a/src/tests/log_tests.cpp
+++ b/src/tests/log_tests.cpp
@@ -1520,7 +1520,7 @@ public:
   explicit MockReplica(const string& path) :
     Replica(path) {}
 
-  virtual ~MockReplica() {}
+  ~MockReplica() override {}
 
   MOCK_METHOD1(update, Future<bool>(const Metadata::Status& status));
 
@@ -2451,7 +2451,7 @@ TEST_F(LogTest, ReaderCatchup)
 class LogZooKeeperTest : public ZooKeeperTest
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     ZooKeeperTest::SetUp();
 
@@ -2472,7 +2472,7 @@ protected:
       << "Failed to chdir into '" << sandbox.get() << "'";
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     // Return to previous working directory and cleanup the sandbox.
     ASSERT_SOME(os::chdir(cwd));

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/logging_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/logging_tests.cpp b/src/tests/logging_tests.cpp
index 1e2d09a..30bcdc7 100644
--- a/src/tests/logging_tests.cpp
+++ b/src/tests/logging_tests.cpp
@@ -69,7 +69,7 @@ protected:
             authenticator.get())));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const std::string& realm, realms) {
       // We need to wait in order to ensure that the operation completes before

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/master_allocator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_allocator_tests.cpp b/src/tests/master_allocator_tests.cpp
index 824a755..9d802c8 100644
--- a/src/tests/master_allocator_tests.cpp
+++ b/src/tests/master_allocator_tests.cpp
@@ -96,9 +96,9 @@ public:
   OfferEqMatcher(int _cpus, int _mem)
     : cpus(_cpus), mem(_mem) {}
 
-  virtual bool MatchAndExplain(
+  bool MatchAndExplain(
       const vector<Offer>& offers,
-      ::testing::MatchResultListener* listener) const
+      ::testing::MatchResultListener* listener) const override
   {
     double totalCpus = 0;
     double totalMem = 0;
@@ -122,12 +122,12 @@ public:
     return matches;
   }
 
-  virtual void DescribeTo(::std::ostream* os) const
+  void DescribeTo(::std::ostream* os) const override
   {
     *os << "contains " << cpus << " cpus and " << mem << " mem";
   }
 
-  virtual void DescribeNegationTo(::std::ostream* os) const
+  void DescribeNegationTo(::std::ostream* os) const override
   {
     *os << "does not contain " << cpus << " cpus and " << mem << " mem";
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/master_maintenance_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_maintenance_tests.cpp b/src/tests/master_maintenance_tests.cpp
index 2d48d6a..303eaaa 100644
--- a/src/tests/master_maintenance_tests.cpp
+++ b/src/tests/master_maintenance_tests.cpp
@@ -112,7 +112,7 @@ JSON::Array createMachineList(std::initializer_list<MachineID> _ids)
 class MasterMaintenanceTest : public MesosTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
 
@@ -130,7 +130,7 @@ public:
     unavailability = createUnavailability(Clock::now());
   }
 
-  virtual slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags slaveFlags = MesosTest::CreateSlaveFlags();
     slaveFlags.hostname = maintenanceHostname;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/master_quota_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_quota_tests.cpp b/src/tests/master_quota_tests.cpp
index d836482..d4a8db8 100644
--- a/src/tests/master_quota_tests.cpp
+++ b/src/tests/master_quota_tests.cpp
@@ -95,7 +95,7 @@ namespace tests {
 class MasterQuotaTest : public MesosTest
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
     // We reuse default agent resources and expect them to be sufficient.
@@ -105,7 +105,7 @@ protected:
   }
 
   // Returns master flags configured with a short allocation interval.
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     master::Flags flags = MesosTest::CreateMasterFlags();
     flags.allocation_interval = Milliseconds(50);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/master_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/master_tests.cpp b/src/tests/master_tests.cpp
index b64073b..44b0ac3 100644
--- a/src/tests/master_tests.cpp
+++ b/src/tests/master_tests.cpp
@@ -1357,7 +1357,7 @@ protected:
     : path("whitelist.txt")
   {}
 
-  virtual ~WhitelistTest()
+  ~WhitelistTest() override
   {
     os::rm(path);
   }
@@ -9019,7 +9019,7 @@ class MasterTestPrePostReservationRefinement
   : public MasterTest,
     public WithParamInterface<bool> {
 public:
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     // Turn off periodic allocations to avoid the race between
     // `HierarchicalAllocator::updateAvailable()` and periodic allocations.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/mesos.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mesos.hpp b/src/tests/mesos.hpp
index 46ad8d1..8142f3f 100644
--- a/src/tests/mesos.hpp
+++ b/src/tests/mesos.hpp
@@ -321,9 +321,9 @@ public:
   static void TearDownTestCase();
 
 protected:
-  virtual slave::Flags CreateSlaveFlags();
-  virtual void SetUp();
-  virtual void TearDown();
+  slave::Flags CreateSlaveFlags() override;
+  void SetUp() override;
+  void TearDown() override;
 
 private:
   // Base hierarchy for separately mounted cgroup controllers, e.g., if the
@@ -371,13 +371,13 @@ public:
     server = nullptr;
   }
 
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
     server->startNetwork();
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     server->shutdownNetwork();
     MesosTest::TearDown();
@@ -386,7 +386,7 @@ public:
 protected:
   MesosZooKeeperTest() : MesosTest(url) {}
 
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     master::Flags flags = MesosTest::CreateMasterFlags();
 
@@ -2277,7 +2277,7 @@ class MockScheduler : public Scheduler
 {
 public:
   MockScheduler();
-  virtual ~MockScheduler();
+  ~MockScheduler() override;
 
   MOCK_METHOD3(registered, void(SchedulerDriver*,
                                 const FrameworkID&,
@@ -2398,7 +2398,7 @@ class MockExecutor : public Executor
 {
 public:
   MockExecutor(const ExecutorID& _id);
-  virtual ~MockExecutor();
+  ~MockExecutor() override;
 
   MOCK_METHOD4(registered, void(ExecutorDriver*,
                                 const ExecutorInfo&,
@@ -2578,7 +2578,7 @@ public:
           v1::DEFAULT_CREDENTIAL,
           detector) {}
 
-  virtual ~TestMesos()
+  ~TestMesos() override
   {
     // Since the destructor for `TestMesos` is invoked first, the library can
     // make more callbacks to the `scheduler` object before the `Mesos` (base
@@ -3270,7 +3270,7 @@ class MockAuthorizer : public Authorizer
 {
 public:
   MockAuthorizer();
-  virtual ~MockAuthorizer();
+  ~MockAuthorizer() override;
 
   MOCK_METHOD1(
       authorized, process::Future<bool>(const authorization::Request& request));
@@ -3287,7 +3287,7 @@ class MockGarbageCollector : public slave::GarbageCollector
 {
 public:
   explicit MockGarbageCollector(const std::string& workDir);
-  virtual ~MockGarbageCollector();
+  ~MockGarbageCollector() override;
 
   // The default action is to always return `true`.
   MOCK_METHOD1(unschedule, process::Future<bool>(const std::string& path));
@@ -3298,7 +3298,7 @@ class MockSecretGenerator : public SecretGenerator
 {
 public:
   MockSecretGenerator() = default;
-  virtual ~MockSecretGenerator() = default;
+  ~MockSecretGenerator() override = default;
 
   MOCK_METHOD1(generate, process::Future<Secret>(
       const process::http::authentication::Principal& principal));

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/metrics_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/metrics_tests.cpp b/src/tests/metrics_tests.cpp
index f5c6cc9..2898288 100644
--- a/src/tests/metrics_tests.cpp
+++ b/src/tests/metrics_tests.cpp
@@ -71,7 +71,7 @@ protected:
             authenticator.get())));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const std::string& realm, realms) {
       // We need to wait in order to ensure that the operation completes before

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/mock_docker.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mock_docker.hpp b/src/tests/mock_docker.hpp
index f5a08d0..4a2266f 100644
--- a/src/tests/mock_docker.hpp
+++ b/src/tests/mock_docker.hpp
@@ -55,7 +55,7 @@ public:
       const std::string& path,
       const std::string& socket,
       const Option<JSON::Object>& config = None());
-  virtual ~MockDocker();
+  ~MockDocker() override;
 
   MOCK_CONST_METHOD3(
       run,
@@ -145,7 +145,7 @@ public:
   MockDockerContainerizer(
       const process::Owned<slave::DockerContainerizerProcess>& process);
 
-  virtual ~MockDockerContainerizer();
+  ~MockDockerContainerizer() override;
 
   void initialize()
   {
@@ -211,7 +211,7 @@ public:
       const process::Shared<Docker>& docker,
       const Option<NvidiaComponents>& nvidia = None());
 
-  virtual ~MockDockerContainerizerProcess();
+  ~MockDockerContainerizerProcess() override;
 
   MOCK_METHOD1(
       fetch,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/mock_fetcher.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mock_fetcher.hpp b/src/tests/mock_fetcher.hpp
index 3825faa..fedb737 100644
--- a/src/tests/mock_fetcher.hpp
+++ b/src/tests/mock_fetcher.hpp
@@ -44,7 +44,7 @@ class MockFetcherProcess : public slave::FetcherProcess
 {
 public:
   MockFetcherProcess(const slave::Flags& flags);
-  virtual ~MockFetcherProcess();
+  ~MockFetcherProcess() override;
 
   MOCK_METHOD5(_fetch, process::Future<Nothing>(
       const hashmap<

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/mock_registrar.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mock_registrar.hpp b/src/tests/mock_registrar.hpp
index b070166..2a13333 100644
--- a/src/tests/mock_registrar.hpp
+++ b/src/tests/mock_registrar.hpp
@@ -43,7 +43,7 @@ public:
                 mesos::state::State* state,
                 const Option<std::string>& authenticationRealm = None());
 
-  virtual ~MockRegistrar();
+  ~MockRegistrar() override;
 
   MOCK_METHOD1(
       apply,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/mock_slave.hpp
----------------------------------------------------------------------
diff --git a/src/tests/mock_slave.hpp b/src/tests/mock_slave.hpp
index 2594d6d..9a74bf3 100644
--- a/src/tests/mock_slave.hpp
+++ b/src/tests/mock_slave.hpp
@@ -54,7 +54,7 @@ class MockResourceEstimator : public mesos::slave::ResourceEstimator
 {
 public:
   MockResourceEstimator();
-  virtual ~MockResourceEstimator();
+  ~MockResourceEstimator() override;
 
   MOCK_METHOD1(
       initialize,
@@ -72,7 +72,7 @@ class MockQoSController : public mesos::slave::QoSController
 {
 public:
   MockQoSController();
-  virtual ~MockQoSController();
+  ~MockQoSController() override;
 
   MOCK_METHOD1(
       initialize,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/module_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/module_tests.cpp b/src/tests/module_tests.cpp
index a0b6c17..29fd7db 100644
--- a/src/tests/module_tests.cpp
+++ b/src/tests/module_tests.cpp
@@ -87,7 +87,7 @@ protected:
 
   // During the per-test tear-down, we unload the module to allow
   // later loads to succeed.
-  ~ModuleTest()
+  ~ModuleTest() override
   {
     // The TestModule instance is created by calling new. Let's
     // delete it to avoid memory leaks.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/oversubscription_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/oversubscription_tests.cpp b/src/tests/oversubscription_tests.cpp
index e2bd8d4..edb9586 100644
--- a/src/tests/oversubscription_tests.cpp
+++ b/src/tests/oversubscription_tests.cpp
@@ -89,12 +89,12 @@ const char FIXED_RESOURCE_ESTIMATOR_NAME[] =
 class OversubscriptionTest : public MesosTest
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     // Unload modules.
     foreach (const Modules::Library& library, modules.libraries()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/paths_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/paths_tests.cpp b/src/tests/paths_tests.cpp
index 3fa8f52..4808402 100644
--- a/src/tests/paths_tests.cpp
+++ b/src/tests/paths_tests.cpp
@@ -41,7 +41,7 @@ using strings::format;
 class PathsTest : public ::testing::Test
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     slaveId.set_value("agent1");
     frameworkId.set_value("framework1");
@@ -62,7 +62,7 @@ public:
     imageType = Image::APPC;
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
      os::rmdir(rootDir);
      os::rmdir(diskSourceDir);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/persistent_volume_endpoints_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/persistent_volume_endpoints_tests.cpp b/src/tests/persistent_volume_endpoints_tests.cpp
index ab2680f..40d7e6a 100644
--- a/src/tests/persistent_volume_endpoints_tests.cpp
+++ b/src/tests/persistent_volume_endpoints_tests.cpp
@@ -76,7 +76,7 @@ class PersistentVolumeEndpointsTest : public MesosTest
 public:
   // Set up the master flags such that it allows registration of the framework
   // created with 'createFrameworkInfo'.
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     // Turn off periodic allocations to avoid the race between
     // `HierarchicalAllocator::updateAvailable()` and periodic allocations.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/persistent_volume_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/persistent_volume_tests.cpp b/src/tests/persistent_volume_tests.cpp
index 8bc73f1..6afc56c 100644
--- a/src/tests/persistent_volume_tests.cpp
+++ b/src/tests/persistent_volume_tests.cpp
@@ -98,7 +98,7 @@ class PersistentVolumeTest
     public WithParamInterface<PersistentVolumeSourceType>
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
 
@@ -125,7 +125,7 @@ protected:
     }
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
 #ifdef __linux__
     if (GetParam() == MOUNT) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/rate_limiting_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/rate_limiting_tests.cpp b/src/tests/rate_limiting_tests.cpp
index 802d5ca..1946a6c 100644
--- a/src/tests/rate_limiting_tests.cpp
+++ b/src/tests/rate_limiting_tests.cpp
@@ -63,7 +63,7 @@ namespace tests {
 class RateLimitingTest : public MesosTest
 {
 public:
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     master::Flags flags = MesosTest::CreateMasterFlags();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/registrar_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/registrar_tests.cpp b/src/tests/registrar_tests.cpp
index d3e4ee0..81979d7 100644
--- a/src/tests/registrar_tests.cpp
+++ b/src/tests/registrar_tests.cpp
@@ -148,7 +148,7 @@ public:
       replica2(nullptr) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 
@@ -190,7 +190,7 @@ protected:
     slave.CopyFrom(info);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     delete state;
     delete storage;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/reservation_endpoints_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/reservation_endpoints_tests.cpp b/src/tests/reservation_endpoints_tests.cpp
index 61af7ac..b189759 100644
--- a/src/tests/reservation_endpoints_tests.cpp
+++ b/src/tests/reservation_endpoints_tests.cpp
@@ -74,7 +74,7 @@ class ReservationEndpointsTest : public MesosTest
 public:
   // Set up the master flags such that it allows registration of the framework
   // created with 'createFrameworkInfo'.
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     // Turn off periodic allocations to avoid the race between
     // `HierarchicalAllocator::updateAvailable()` and periodic allocations.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/slave_recovery_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/slave_recovery_tests.cpp b/src/tests/slave_recovery_tests.cpp
index e833340..69b4922 100644
--- a/src/tests/slave_recovery_tests.cpp
+++ b/src/tests/slave_recovery_tests.cpp
@@ -160,7 +160,7 @@ template <typename T>
 class SlaveRecoveryTest : public ContainerizerTest<T>
 {
 public:
-  virtual slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     return ContainerizerTest<T>::CreateSlaveFlags();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/state_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/state_tests.cpp b/src/tests/state_tests.cpp
index 1063866..7e022cf 100644
--- a/src/tests/state_tests.cpp
+++ b/src/tests/state_tests.cpp
@@ -336,13 +336,13 @@ public:
       state(nullptr) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     storage = new mesos::state::InMemoryStorage();
     state = new State(storage);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     delete state;
     delete storage;
@@ -403,7 +403,7 @@ public:
       state(nullptr) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 
@@ -414,7 +414,7 @@ protected:
     state = new State(storage);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     delete state;
     delete storage;
@@ -482,7 +482,7 @@ public:
       log(nullptr) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 
@@ -510,7 +510,7 @@ protected:
     state = new State(storage);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     delete state;
     delete storage;
@@ -701,7 +701,7 @@ public:
       state(nullptr) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     ZooKeeperTest::SetUp();
     storage = new mesos::state::ZooKeeperStorage(
@@ -711,7 +711,7 @@ protected:
     state = new State(storage);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     delete state;
     delete storage;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/storage_local_resource_provider_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/storage_local_resource_provider_tests.cpp b/src/tests/storage_local_resource_provider_tests.cpp
index b36a8f4..9b88d36 100644
--- a/src/tests/storage_local_resource_provider_tests.cpp
+++ b/src/tests/storage_local_resource_provider_tests.cpp
@@ -84,7 +84,7 @@ class StorageLocalResourceProviderTest
   : public ContainerizerTest<slave::MesosContainerizer>
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     ContainerizerTest<slave::MesosContainerizer>::SetUp();
 
@@ -93,7 +93,7 @@ public:
     ASSERT_SOME(os::mkdir(resourceProviderConfigDir));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     // Unload modules.
     foreach (const Modules::Library& library, modules.libraries()) {
@@ -133,7 +133,7 @@ public:
     ContainerizerTest<slave::MesosContainerizer>::TearDown();
   }
 
-  virtual slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags flags =
       ContainerizerTest<slave::MesosContainerizer>::CreateSlaveFlags();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/uri_fetcher_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/uri_fetcher_tests.cpp b/src/tests/uri_fetcher_tests.cpp
index 816d8ec..260ae9c 100644
--- a/src/tests/uri_fetcher_tests.cpp
+++ b/src/tests/uri_fetcher_tests.cpp
@@ -75,14 +75,14 @@ public:
 class CurlFetcherPluginTest : public TemporaryDirectoryTest
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 
     spawn(server);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     terminate(server);
     wait(server);
@@ -153,7 +153,7 @@ TEST_F(CurlFetcherPluginTest, CURL_InvokeFetchByName)
 class HadoopFetcherPluginTest : public TemporaryDirectoryTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/zookeeper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/zookeeper.hpp b/src/tests/zookeeper.hpp
index e921fd1..1ea86a8 100644
--- a/src/tests/zookeeper.hpp
+++ b/src/tests/zookeeper.hpp
@@ -87,13 +87,13 @@ public:
     };
 
     TestWatcher() = default;
-    virtual ~TestWatcher() = default;
+    ~TestWatcher() override = default;
 
-    virtual void process(
+    void process(
         int type,
         int state,
         int64_t sessionId,
-        const std::string& path);
+        const std::string& path) override;
 
     // Blocks until the session event of the given state fires.
     void awaitSessionEvent(int state);
@@ -117,9 +117,9 @@ public:
 
 protected:
   ZooKeeperTest() : server(new ZooKeeperTestServer()) {}
-  virtual ~ZooKeeperTest() { delete server; }
+  ~ZooKeeperTest() override { delete server; }
 
-  virtual void SetUp();
+  void SetUp() override;
 
   // A very long session timeout that simulates no timeout for test cases.
   static const Duration NO_TIMEOUT;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/uri/fetchers/copy.hpp
----------------------------------------------------------------------
diff --git a/src/uri/fetchers/copy.hpp b/src/uri/fetchers/copy.hpp
index 4d612fe..9054272 100644
--- a/src/uri/fetchers/copy.hpp
+++ b/src/uri/fetchers/copy.hpp
@@ -36,16 +36,16 @@ public:
 
   static Try<process::Owned<Fetcher::Plugin>> create(const Flags& flags);
 
-  virtual ~CopyFetcherPlugin() {}
+  ~CopyFetcherPlugin() override {}
 
-  virtual std::set<std::string> schemes() const;
+  std::set<std::string> schemes() const override;
 
-  virtual std::string name() const;
+  std::string name() const override;
 
-  virtual process::Future<Nothing> fetch(
+  process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const;
+      const Option<std::string>& data = None()) const override;
 
 private:
   CopyFetcherPlugin() {}

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/uri/fetchers/curl.hpp
----------------------------------------------------------------------
diff --git a/src/uri/fetchers/curl.hpp b/src/uri/fetchers/curl.hpp
index e07c1e2..19ade6a 100644
--- a/src/uri/fetchers/curl.hpp
+++ b/src/uri/fetchers/curl.hpp
@@ -42,16 +42,16 @@ public:
 
   static Try<process::Owned<Fetcher::Plugin>> create(const Flags& flags);
 
-  virtual ~CurlFetcherPlugin() {}
+  ~CurlFetcherPlugin() override {}
 
-  virtual std::set<std::string> schemes() const;
+  std::set<std::string> schemes() const override;
 
-  virtual std::string name() const;
+  std::string name() const override;
 
-  virtual process::Future<Nothing> fetch(
+  process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const;
+      const Option<std::string>& data = None()) const override;
 
 private:
   explicit CurlFetcherPlugin(const Flags& _flags) : flags(_flags) {}

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/uri/fetchers/docker.hpp
----------------------------------------------------------------------
diff --git a/src/uri/fetchers/docker.hpp b/src/uri/fetchers/docker.hpp
index cdbab9a..7a6193d 100644
--- a/src/uri/fetchers/docker.hpp
+++ b/src/uri/fetchers/docker.hpp
@@ -47,16 +47,16 @@ public:
 
   static Try<process::Owned<Fetcher::Plugin>> create(const Flags& flags);
 
-  virtual ~DockerFetcherPlugin();
+  ~DockerFetcherPlugin() override;
 
-  virtual std::set<std::string> schemes() const;
+  std::set<std::string> schemes() const override;
 
-  virtual std::string name() const;
+  std::string name() const override;
 
-  virtual process::Future<Nothing> fetch(
+  process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const;
+      const Option<std::string>& data = None()) const override;
 
 private:
   explicit DockerFetcherPlugin(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/uri/fetchers/hadoop.hpp
----------------------------------------------------------------------
diff --git a/src/uri/fetchers/hadoop.hpp b/src/uri/fetchers/hadoop.hpp
index 46f74c8..2d8d9be 100644
--- a/src/uri/fetchers/hadoop.hpp
+++ b/src/uri/fetchers/hadoop.hpp
@@ -49,16 +49,16 @@ public:
 
   static Try<process::Owned<Fetcher::Plugin>> create(const Flags& flags);
 
-  virtual ~HadoopFetcherPlugin() {}
+  ~HadoopFetcherPlugin() override {}
 
-  virtual std::set<std::string> schemes() const;
+  std::set<std::string> schemes() const override;
 
-  virtual std::string name() const;
+  std::string name() const override;
 
-  virtual process::Future<Nothing> fetch(
+  process::Future<Nothing> fetch(
       const URI& uri,
       const std::string& directory,
-      const Option<std::string>& data = None()) const;
+      const Option<std::string>& data = None()) const override;
 
 private:
   HadoopFetcherPlugin(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/version/version.hpp
----------------------------------------------------------------------
diff --git a/src/version/version.hpp b/src/version/version.hpp
index 1c86924..2aa121e 100644
--- a/src/version/version.hpp
+++ b/src/version/version.hpp
@@ -60,7 +60,7 @@ public:
   VersionProcess();
 
 protected:
-  virtual void initialize();
+  void initialize() override;
 
 private:
   static process::Future<process::http::Response> version(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/watcher/whitelist_watcher.hpp
----------------------------------------------------------------------
diff --git a/src/watcher/whitelist_watcher.hpp b/src/watcher/whitelist_watcher.hpp
index 050d548..2b4abf0 100644
--- a/src/watcher/whitelist_watcher.hpp
+++ b/src/watcher/whitelist_watcher.hpp
@@ -58,7 +58,7 @@ public:
       const Option<hashset<std::string>>& initialWhitelist = None());
 
 protected:
-  virtual void initialize();
+  void initialize() override;
   void watch();
 
 private:

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/zookeeper/contender.cpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/contender.cpp b/src/zookeeper/contender.cpp
index daf1c6e..ba05c72 100644
--- a/src/zookeeper/contender.cpp
+++ b/src/zookeeper/contender.cpp
@@ -51,14 +51,14 @@ public:
       const string& data,
       const Option<string>& label);
 
-  virtual ~LeaderContenderProcess();
+  ~LeaderContenderProcess() override;
 
   // LeaderContender implementation.
   Future<Future<Nothing>> contend();
   Future<bool> withdraw();
 
 protected:
-  virtual void finalize();
+  void finalize() override;
 
 private:
   // Invoked when we have joined the group (or failed to do so).

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/zookeeper/detector.cpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/detector.cpp b/src/zookeeper/detector.cpp
index 71ab101..88e1a58 100644
--- a/src/zookeeper/detector.cpp
+++ b/src/zookeeper/detector.cpp
@@ -39,8 +39,8 @@ class LeaderDetectorProcess : public Process<LeaderDetectorProcess>
 {
 public:
   explicit LeaderDetectorProcess(Group* group);
-  virtual ~LeaderDetectorProcess();
-  virtual void initialize();
+  ~LeaderDetectorProcess() override;
+  void initialize() override;
 
   // LeaderDetector implementation.
   Future<Option<Group::Membership>> detect(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/zookeeper/zookeeper.cpp
----------------------------------------------------------------------
diff --git a/src/zookeeper/zookeeper.cpp b/src/zookeeper/zookeeper.cpp
index 2efc158..f57c4fc 100644
--- a/src/zookeeper/zookeeper.cpp
+++ b/src/zookeeper/zookeeper.cpp
@@ -68,7 +68,7 @@ public:
         lambda::_4);
   }
 
-  virtual void initialize()
+  void initialize() override
   {
     // There are two different timeouts here:
     //
@@ -134,7 +134,7 @@ public:
     }
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     int ret = zookeeper_close(zh);
     if (ret != ZOK) {


[6/7] mesos git commit: Apply the `override` keyword to Mesos.

Posted by jp...@apache.org.
Apply the `override` keyword to Mesos.

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


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

Branch: refs/heads/master
Commit: 3e432d86f559f5e897f10b94af1c8698e9bf1ccf
Parents: a51f0d6
Author: James Peach <jp...@apache.org>
Authored: Tue Jul 17 09:38:46 2018 -0700
Committer: James Peach <jp...@apache.org>
Committed: Tue Jul 17 14:23:01 2018 -0700

----------------------------------------------------------------------
 include/mesos/executor.hpp                      | 16 +++---
 include/mesos/scheduler.hpp                     | 50 ++++++++---------
 include/mesos/state/in_memory.hpp               | 14 ++---
 include/mesos/state/leveldb.hpp                 | 14 ++---
 include/mesos/state/log.hpp                     | 14 ++---
 include/mesos/state/protobuf.hpp                |  2 +-
 include/mesos/state/zookeeper.hpp               | 14 ++---
 include/mesos/v1/executor.hpp                   |  4 +-
 include/mesos/v1/scheduler.hpp                  |  8 +--
 include/mesos/zookeeper/group.hpp               |  4 +-
 include/mesos/zookeeper/watcher.hpp             |  4 +-
 src/authentication/cram_md5/authenticatee.cpp   |  6 +-
 src/authentication/cram_md5/authenticatee.hpp   |  4 +-
 src/authentication/cram_md5/authenticator.cpp   | 10 ++--
 src/authentication/cram_md5/authenticator.hpp   |  8 +--
 src/authorizer/local/authorizer.cpp             | 12 ++--
 src/authorizer/local/authorizer.hpp             | 10 ++--
 src/checks/checker_process.hpp                  |  2 +-
 src/cli/execute.cpp                             |  4 +-
 src/common/http.hpp                             |  2 +-
 src/common/recordio.hpp                         |  6 +-
 src/docker/executor.cpp                         | 24 ++++----
 src/examples/balloon_executor.cpp               | 23 ++++----
 src/examples/balloon_framework.cpp              | 30 +++++-----
 src/examples/disk_full_framework.cpp            | 30 +++++-----
 src/examples/docker_no_executor_framework.cpp   | 32 +++++------
 src/examples/dynamic_reservation_framework.cpp  | 32 +++++------
 src/examples/example_module_impl.cpp            | 10 ++--
 src/examples/load_generator_framework.cpp       | 34 ++++++------
 src/examples/long_lived_executor.cpp            |  4 +-
 src/examples/long_lived_framework.cpp           |  4 +-
 src/examples/no_executor_framework.cpp          | 30 +++++-----
 src/examples/persistent_volume_framework.cpp    | 30 +++++-----
 src/examples/test_anonymous_module.cpp          |  2 +-
 src/examples/test_csi_plugin.cpp                | 34 ++++++------
 src/examples/test_csi_user_framework.cpp        |  4 +-
 src/examples/test_executor.cpp                  | 22 ++++----
 src/examples/test_framework.cpp                 | 30 +++++-----
 src/examples/test_hook_module.cpp               | 40 +++++++-------
 src/examples/test_http_executor.cpp             |  2 +-
 src/examples/test_http_framework.cpp            |  6 +-
 src/exec/exec.cpp                               |  8 +--
 src/executor/executor.cpp                       |  6 +-
 src/executor/v0_v1executor.cpp                  |  2 +-
 src/executor/v0_v1executor.hpp                  | 20 +++----
 src/files/files.cpp                             |  2 +-
 .../org_apache_mesos_MesosExecutorDriver.cpp    | 20 +++----
 .../org_apache_mesos_MesosSchedulerDriver.cpp   | 30 +++++-----
 .../org_apache_mesos_v1_scheduler_V0Mesos.cpp   | 30 +++++-----
 src/launcher/default_executor.cpp               |  4 +-
 src/launcher/executor.cpp                       |  4 +-
 src/linux/cgroups.cpp                           | 30 +++++-----
 src/linux/perf.cpp                              |  6 +-
 src/log/catchup.cpp                             | 16 +++---
 src/log/consensus.cpp                           | 24 ++++----
 src/log/coordinator.cpp                         |  4 +-
 src/log/leveldb.cpp                             | 12 ++--
 src/log/leveldb.hpp                             | 10 ++--
 src/log/log.hpp                                 | 12 ++--
 src/log/network.hpp                             |  2 +-
 src/log/recover.cpp                             |  6 +-
 src/log/replica.cpp                             |  2 +-
 src/log/tool/benchmark.hpp                      |  4 +-
 src/log/tool/initialize.hpp                     |  4 +-
 src/log/tool/read.hpp                           |  4 +-
 src/log/tool/replica.hpp                        |  4 +-
 src/master/allocator/mesos/allocator.hpp        | 58 ++++++++++----------
 src/master/allocator/mesos/hierarchical.cpp     |  4 +-
 src/master/allocator/mesos/hierarchical.hpp     | 55 ++++++++++---------
 src/master/allocator/sorter/drf/sorter.hpp      | 57 +++++++++----------
 src/master/allocator/sorter/random/sorter.hpp   | 57 +++++++++----------
 src/master/contender/standalone.hpp             |  6 +-
 src/master/contender/zookeeper.cpp              |  2 +-
 src/master/contender/zookeeper.hpp              |  6 +-
 src/master/detector/standalone.cpp              |  2 +-
 src/master/detector/standalone.hpp              |  6 +-
 src/master/detector/zookeeper.cpp               |  4 +-
 src/master/detector/zookeeper.hpp               |  6 +-
 src/master/maintenance.hpp                      |  6 +-
 src/master/master.cpp                           |  2 +-
 src/master/master.hpp                           |  4 +-
 src/master/quota.hpp                            |  4 +-
 src/master/registrar.cpp                        |  6 +-
 src/master/registrar.hpp                        |  2 +-
 src/master/registry_operations.hpp              | 15 ++---
 src/master/weights.hpp                          |  2 +-
 src/resource_provider/registrar.hpp             |  2 +-
 .../storage/disk_profile_adaptor.cpp            |  6 +-
 .../storage/uri_disk_profile_adaptor.hpp        |  8 +--
 src/sched/sched.cpp                             |  4 +-
 src/scheduler/scheduler.cpp                     |  4 +-
 src/secret/resolver.cpp                         |  4 +-
 src/slave/container_loggers/lib_logrotate.hpp   |  6 +-
 src/slave/container_loggers/logrotate.cpp       |  2 +-
 src/slave/container_loggers/sandbox.hpp         |  6 +-
 src/slave/containerizer/composing.cpp           |  2 +-
 src/slave/containerizer/composing.hpp           | 46 ++++++++--------
 src/slave/containerizer/docker.hpp              | 36 ++++++------
 src/slave/containerizer/fetcher_process.hpp     |  2 +-
 src/slave/containerizer/mesos/containerizer.hpp | 48 ++++++++--------
 .../containerizer/mesos/io/switchboard.cpp      |  2 +-
 .../containerizer/mesos/io/switchboard.hpp      | 22 ++++----
 src/slave/containerizer/mesos/isolator.hpp      | 40 +++++++-------
 .../mesos/isolators/appc/runtime.hpp            | 10 ++--
 .../mesos/isolators/cgroups/cgroups.hpp         | 38 ++++++-------
 .../mesos/isolators/cgroups/subsystem.hpp       |  2 +-
 .../mesos/isolators/docker/runtime.hpp          | 10 ++--
 .../mesos/isolators/docker/volume/isolator.hpp  | 18 +++---
 .../mesos/isolators/environment_secret.hpp      | 10 ++--
 .../mesos/isolators/filesystem/linux.hpp        | 22 ++++----
 .../mesos/isolators/filesystem/posix.hpp        | 18 +++---
 .../mesos/isolators/filesystem/shared.hpp       |  6 +-
 .../mesos/isolators/gpu/isolator.hpp            | 24 ++++----
 .../mesos/isolators/linux/capabilities.hpp      |  8 +--
 .../mesos/isolators/linux/devices.hpp           |  6 +-
 .../mesos/isolators/namespaces/ipc.hpp          | 10 ++--
 .../mesos/isolators/namespaces/pid.hpp          | 10 ++--
 .../mesos/isolators/network/cni/cni.hpp         | 28 +++++-----
 .../containerizer/mesos/isolators/posix.hpp     | 30 +++++-----
 .../mesos/isolators/posix/disk.cpp              |  6 +-
 .../mesos/isolators/posix/disk.hpp              | 34 ++++++------
 .../mesos/isolators/posix/rlimits.hpp           |  8 +--
 .../mesos/isolators/volume/host_path.hpp        | 10 ++--
 .../mesos/isolators/volume/image.hpp            | 10 ++--
 .../mesos/isolators/volume/sandbox_path.hpp     | 18 +++---
 .../mesos/isolators/volume/secret.hpp           |  8 +--
 src/slave/containerizer/mesos/launch.hpp        |  4 +-
 src/slave/containerizer/mesos/launcher.hpp      | 16 +++---
 .../containerizer/mesos/linux_launcher.hpp      | 16 +++---
 src/slave/containerizer/mesos/mount.hpp         |  4 +-
 .../mesos/provisioner/appc/store.cpp            |  2 +-
 .../mesos/provisioner/appc/store.hpp            |  8 +--
 .../mesos/provisioner/backends/aufs.hpp         | 10 ++--
 .../mesos/provisioner/backends/bind.hpp         | 10 ++--
 .../mesos/provisioner/backends/copy.hpp         | 10 ++--
 .../mesos/provisioner/backends/overlay.hpp      | 10 ++--
 .../provisioner/docker/image_tar_puller.cpp     |  2 +-
 .../provisioner/docker/image_tar_puller.hpp     |  4 +-
 .../provisioner/docker/metadata_manager.cpp     |  2 +-
 .../provisioner/docker/registry_puller.hpp      |  4 +-
 .../mesos/provisioner/docker/store.cpp          |  2 +-
 .../mesos/provisioner/docker/store.hpp          | 12 ++--
 src/slave/gc_process.hpp                        |  2 +-
 src/slave/qos_controllers/load.hpp              |  9 +--
 src/slave/qos_controllers/noop.cpp              |  2 +-
 src/slave/qos_controllers/noop.hpp              |  9 +--
 src/slave/resource_estimators/fixed.cpp         |  8 +--
 src/slave/resource_estimators/noop.hpp          |  8 +--
 src/slave/slave.hpp                             |  8 +--
 src/slave/task_status_update_manager.cpp        |  2 +-
 src/state/leveldb.cpp                           |  4 +-
 src/state/log.cpp                               |  4 +-
 src/state/zookeeper.cpp                         |  4 +-
 src/tests/active_user_test_helper.hpp           |  4 +-
 src/tests/agent_container_api_tests.cpp         |  2 +-
 ...agent_resource_provider_config_api_tests.cpp |  6 +-
 src/tests/allocator.hpp                         |  2 +-
 src/tests/api_tests.cpp                         |  4 +-
 src/tests/check_tests.cpp                       |  2 +-
 src/tests/containerizer.cpp                     |  2 +-
 src/tests/containerizer.hpp                     |  4 +-
 .../containerizer/capabilities_test_helper.hpp  |  4 +-
 src/tests/containerizer/cgroups_tests.cpp       |  6 +-
 src/tests/containerizer/cni_isolator_tests.cpp  | 10 ++--
 .../docker_containerizer_tests.cpp              | 16 +++---
 src/tests/containerizer/docker_tests.cpp        |  4 +-
 .../docker_volume_isolator_tests.cpp            |  4 +-
 src/tests/containerizer/isolator_tests.cpp      |  2 +-
 src/tests/containerizer/launcher.hpp            |  2 +-
 src/tests/containerizer/memory_test_helper.hpp  |  4 +-
 .../containerizer/provisioner_appc_tests.cpp    |  4 +-
 .../containerizer/provisioner_backend_tests.cpp |  2 +-
 .../containerizer/provisioner_docker_tests.cpp  |  4 +-
 src/tests/containerizer/setns_test_helper.hpp   |  2 +-
 .../volume_image_isolator_tests.cpp             |  2 +-
 .../volume_secret_isolator_tests.cpp            |  2 +-
 src/tests/csi_client_tests.cpp                  |  4 +-
 src/tests/disk_profile_adaptor_tests.cpp        |  4 +-
 src/tests/environment.cpp                       | 40 +++++++-------
 src/tests/environment.hpp                       |  6 +-
 src/tests/fetcher_cache_tests.cpp               | 12 ++--
 src/tests/fetcher_tests.cpp                     |  2 +-
 src/tests/files_tests.cpp                       |  2 +-
 src/tests/hdfs_tests.cpp                        |  2 +-
 src/tests/health_check_tests.cpp                |  4 +-
 src/tests/hierarchical_allocator_tests.cpp      |  2 +-
 src/tests/hook_tests.cpp                        |  2 +-
 src/tests/http_authentication_tests.cpp         |  2 +-
 src/tests/http_server_test_helper.hpp           |  4 +-
 src/tests/kill_policy_test_helper.hpp           |  4 +-
 src/tests/log_tests.cpp                         |  6 +-
 src/tests/logging_tests.cpp                     |  2 +-
 src/tests/master_allocator_tests.cpp            |  8 +--
 src/tests/master_maintenance_tests.cpp          |  4 +-
 src/tests/master_quota_tests.cpp                |  4 +-
 src/tests/master_tests.cpp                      |  4 +-
 src/tests/mesos.hpp                             | 24 ++++----
 src/tests/metrics_tests.cpp                     |  2 +-
 src/tests/mock_docker.hpp                       |  6 +-
 src/tests/mock_fetcher.hpp                      |  2 +-
 src/tests/mock_registrar.hpp                    |  2 +-
 src/tests/mock_slave.hpp                        |  4 +-
 src/tests/module_tests.cpp                      |  2 +-
 src/tests/oversubscription_tests.cpp            |  4 +-
 src/tests/paths_tests.cpp                       |  4 +-
 src/tests/persistent_volume_endpoints_tests.cpp |  2 +-
 src/tests/persistent_volume_tests.cpp           |  4 +-
 src/tests/rate_limiting_tests.cpp               |  2 +-
 src/tests/registrar_tests.cpp                   |  4 +-
 src/tests/reservation_endpoints_tests.cpp       |  2 +-
 src/tests/slave_recovery_tests.cpp              |  2 +-
 src/tests/state_tests.cpp                       | 16 +++---
 .../storage_local_resource_provider_tests.cpp   |  6 +-
 src/tests/uri_fetcher_tests.cpp                 |  6 +-
 src/tests/zookeeper.hpp                         | 10 ++--
 src/uri/fetchers/copy.hpp                       | 10 ++--
 src/uri/fetchers/curl.hpp                       | 10 ++--
 src/uri/fetchers/docker.hpp                     | 10 ++--
 src/uri/fetchers/hadoop.hpp                     | 10 ++--
 src/version/version.hpp                         |  2 +-
 src/watcher/whitelist_watcher.hpp               |  2 +-
 src/zookeeper/contender.cpp                     |  4 +-
 src/zookeeper/detector.cpp                      |  4 +-
 src/zookeeper/zookeeper.cpp                     |  4 +-
 224 files changed, 1171 insertions(+), 1162 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/executor.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/executor.hpp b/include/mesos/executor.hpp
index 6a9e6fc..fffc570 100644
--- a/include/mesos/executor.hpp
+++ b/include/mesos/executor.hpp
@@ -232,16 +232,16 @@ public:
   // MesosExecutorDriver::start was invoked successfully (possibly via
   // MesosExecutorDriver::run) and MesosExecutorDriver::stop has not
   // been invoked.
-  virtual ~MesosExecutorDriver();
+  ~MesosExecutorDriver() override;
 
   // See ExecutorDriver for descriptions of these.
-  virtual Status start();
-  virtual Status stop();
-  virtual Status abort();
-  virtual Status join();
-  virtual Status run();
-  virtual Status sendStatusUpdate(const TaskStatus& status);
-  virtual Status sendFrameworkMessage(const std::string& data);
+  Status start() override;
+  Status stop() override;
+  Status abort() override;
+  Status join() override;
+  Status run() override;
+  Status sendStatusUpdate(const TaskStatus& status) override;
+  Status sendFrameworkMessage(const std::string& data) override;
 
 private:
   friend class internal::ExecutorProcess;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/scheduler.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/scheduler.hpp b/include/mesos/scheduler.hpp
index d4cc96e..7e029f1 100644
--- a/include/mesos/scheduler.hpp
+++ b/include/mesos/scheduler.hpp
@@ -401,55 +401,55 @@ public:
   // MesosSchedulerDriver::start was invoked successfully (possibly
   // via MesosSchedulerDriver::run) and MesosSchedulerDriver::stop has
   // not been invoked.
-  virtual ~MesosSchedulerDriver();
+  ~MesosSchedulerDriver() override;
 
   // See SchedulerDriver for descriptions of these.
-  virtual Status start();
-  virtual Status stop(bool failover = false);
-  virtual Status abort();
-  virtual Status join();
-  virtual Status run();
+  Status start() override;
+  Status stop(bool failover = false) override;
+  Status abort() override;
+  Status join() override;
+  Status run() override;
 
-  virtual Status requestResources(
-      const std::vector<Request>& requests);
+  Status requestResources(
+      const std::vector<Request>& requests) override;
 
   // TODO(nnielsen): launchTasks using single offer is deprecated.
   // Use launchTasks with offer list instead.
-  virtual Status launchTasks(
+  Status launchTasks(
       const OfferID& offerId,
       const std::vector<TaskInfo>& tasks,
-      const Filters& filters = Filters());
+      const Filters& filters = Filters()) override;
 
-  virtual Status launchTasks(
+  Status launchTasks(
       const std::vector<OfferID>& offerIds,
       const std::vector<TaskInfo>& tasks,
-      const Filters& filters = Filters());
+      const Filters& filters = Filters()) override;
 
-  virtual Status killTask(const TaskID& taskId);
+  Status killTask(const TaskID& taskId) override;
 
-  virtual Status acceptOffers(
+  Status acceptOffers(
       const std::vector<OfferID>& offerIds,
       const std::vector<Offer::Operation>& operations,
-      const Filters& filters = Filters());
+      const Filters& filters = Filters()) override;
 
-  virtual Status declineOffer(
+  Status declineOffer(
       const OfferID& offerId,
-      const Filters& filters = Filters());
+      const Filters& filters = Filters()) override;
 
-  virtual Status reviveOffers();
+  Status reviveOffers() override;
 
-  virtual Status suppressOffers();
+  Status suppressOffers() override;
 
-  virtual Status acknowledgeStatusUpdate(
-      const TaskStatus& status);
+  Status acknowledgeStatusUpdate(
+      const TaskStatus& status) override;
 
-  virtual Status sendFrameworkMessage(
+  Status sendFrameworkMessage(
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      const std::string& data);
+      const std::string& data) override;
 
-  virtual Status reconcileTasks(
-      const std::vector<TaskStatus>& statuses);
+  Status reconcileTasks(
+      const std::vector<TaskStatus>& statuses) override;
 
 protected:
   // Used to detect (i.e., choose) the master.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/state/in_memory.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/state/in_memory.hpp b/include/mesos/state/in_memory.hpp
index 3fcf462..82c0f3e 100644
--- a/include/mesos/state/in_memory.hpp
+++ b/include/mesos/state/in_memory.hpp
@@ -38,16 +38,16 @@ class InMemoryStorage : public mesos::state::Storage
 {
 public:
   InMemoryStorage();
-  virtual ~InMemoryStorage();
+  ~InMemoryStorage() override;
 
   // Storage implementation.
-  virtual process::Future<Option<internal::state::Entry>> get(
-      const std::string& name);
-  virtual process::Future<bool> set(
+  process::Future<Option<internal::state::Entry>> get(
+      const std::string& name) override;
+  process::Future<bool> set(
       const internal::state::Entry& entry,
-      const id::UUID& uuid);
-  virtual process::Future<bool> expunge(const internal::state::Entry& entry);
-  virtual process::Future<std::set<std::string>> names();
+      const id::UUID& uuid) override;
+  process::Future<bool> expunge(const internal::state::Entry& entry) override;
+  process::Future<std::set<std::string>> names() override;
 
 private:
   InMemoryStorageProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/state/leveldb.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/state/leveldb.hpp b/include/mesos/state/leveldb.hpp
index 265e08b..c40d3dd 100644
--- a/include/mesos/state/leveldb.hpp
+++ b/include/mesos/state/leveldb.hpp
@@ -39,16 +39,16 @@ class LevelDBStorage : public mesos::state::Storage
 {
 public:
   explicit LevelDBStorage(const std::string& path);
-  virtual ~LevelDBStorage();
+  ~LevelDBStorage() override;
 
   // Storage implementation.
-  virtual process::Future<Option<internal::state::Entry>> get(
-      const std::string& name);
-  virtual process::Future<bool> set(
+  process::Future<Option<internal::state::Entry>> get(
+      const std::string& name) override;
+  process::Future<bool> set(
       const internal::state::Entry& entry,
-      const id::UUID& uuid);
-  virtual process::Future<bool> expunge(const internal::state::Entry& entry);
-  virtual process::Future<std::set<std::string>> names();
+      const id::UUID& uuid) override;
+  process::Future<bool> expunge(const internal::state::Entry& entry) override;
+  process::Future<std::set<std::string>> names() override;
 
 private:
   LevelDBStorageProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/state/log.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/state/log.hpp b/include/mesos/state/log.hpp
index 54cbdc8..cf2144f 100644
--- a/include/mesos/state/log.hpp
+++ b/include/mesos/state/log.hpp
@@ -41,16 +41,16 @@ class LogStorage : public mesos::state::Storage
 public:
   LogStorage(mesos::log::Log* log, size_t diffsBetweenSnapshots = 0);
 
-  virtual ~LogStorage();
+  ~LogStorage() override;
 
   // Storage implementation.
-  virtual process::Future<Option<internal::state::Entry>> get(
-      const std::string& name);
-  virtual process::Future<bool> set(
+  process::Future<Option<internal::state::Entry>> get(
+      const std::string& name) override;
+  process::Future<bool> set(
       const internal::state::Entry& entry,
-      const id::UUID& uuid);
-  virtual process::Future<bool> expunge(const internal::state::Entry& entry);
-  virtual process::Future<std::set<std::string>> names();
+      const id::UUID& uuid) override;
+  process::Future<bool> expunge(const internal::state::Entry& entry) override;
+  process::Future<std::set<std::string>> names() override;
 
 private:
   LogStorageProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/state/protobuf.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/state/protobuf.hpp b/include/mesos/state/protobuf.hpp
index c15696a..fe02a1f 100644
--- a/include/mesos/state/protobuf.hpp
+++ b/include/mesos/state/protobuf.hpp
@@ -71,7 +71,7 @@ class State : public mesos::state::State
 public:
   explicit State(mesos::state::Storage* storage)
     : mesos::state::State(storage) {}
-  virtual ~State() {}
+  ~State() override {}
 
   // Returns a variable from the state, creating a new one if one
   // previously did not exist (or an error if one occurs).

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/state/zookeeper.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/state/zookeeper.hpp b/include/mesos/state/zookeeper.hpp
index fee9398..add370f 100644
--- a/include/mesos/state/zookeeper.hpp
+++ b/include/mesos/state/zookeeper.hpp
@@ -46,16 +46,16 @@ public:
       const Duration& timeout,
       const std::string& znode,
       const Option<zookeeper::Authentication>& auth = None());
-  virtual ~ZooKeeperStorage();
+  ~ZooKeeperStorage() override;
 
   // Storage implementation.
-  virtual process::Future<Option<internal::state::Entry>> get(
-      const std::string& name);
-  virtual process::Future<bool> set(
+  process::Future<Option<internal::state::Entry>> get(
+      const std::string& name) override;
+  process::Future<bool> set(
       const internal::state::Entry& entry,
-      const id::UUID& uuid);
-  virtual process::Future<bool> expunge(const internal::state::Entry& entry);
-  virtual process::Future<std::set<std::string>> names();
+      const id::UUID& uuid) override;
+  process::Future<bool> expunge(const internal::state::Entry& entry) override;
+  process::Future<std::set<std::string>> names() override;
 
 private:
   ZooKeeperStorageProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/v1/executor.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/v1/executor.hpp b/include/mesos/v1/executor.hpp
index 9a2eb45..e4e24b9 100644
--- a/include/mesos/v1/executor.hpp
+++ b/include/mesos/v1/executor.hpp
@@ -77,13 +77,13 @@ public:
   // Delete assignment operator.
   Mesos& operator=(const Mesos& other) = delete;
 
-  virtual ~Mesos();
+  ~Mesos() override;
 
   // Attempts to send a call to the agent.
   //
   // Some local validation of calls is performed which may result in dropped
   // events without ever being sent to the agent.
-  virtual void send(const Call& call) override;
+  void send(const Call& call) override;
 
 private:
   process::Owned<MesosProcess> process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/v1/scheduler.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/v1/scheduler.hpp b/include/mesos/v1/scheduler.hpp
index b1dfbb1..2f72129 100644
--- a/include/mesos/v1/scheduler.hpp
+++ b/include/mesos/v1/scheduler.hpp
@@ -85,7 +85,7 @@ public:
   // Delete assignment operator.
   Mesos& operator=(const Mesos& other) = delete;
 
-  virtual ~Mesos();
+  ~Mesos() override;
 
   // Attempts to send a call to the master.
   //
@@ -97,7 +97,7 @@ public:
   // events without ever being sent to the master. This includes when
   // calls are sent but no master is currently detected (i.e., we're
   // disconnected).
-  virtual void send(const Call& call) override;
+  void send(const Call& call) override;
 
   // Attempts to send a call to the master, returning the response.
   //
@@ -131,7 +131,7 @@ public:
   //
   // Note: This method cannot be used to send `SUBSCRIBE` calls, use `send()`
   // instead.
-  virtual process::Future<APIResult> call(const Call& callMessage) override;
+  process::Future<APIResult> call(const Call& callMessage) override;
 
   // Force a reconnection with the master.
   //
@@ -144,7 +144,7 @@ public:
   // This call would be ignored if the scheduler is already disconnected with
   // the master (e.g., no new master has been elected). Otherwise, the scheduler
   // would get a 'disconnected' callback followed by a 'connected' callback.
-  virtual void reconnect() override;
+  void reconnect() override;
 
 protected:
   // NOTE: This constructor is used for testing.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/zookeeper/group.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/zookeeper/group.hpp b/include/mesos/zookeeper/group.hpp
index 7983e50..8350583 100644
--- a/include/mesos/zookeeper/group.hpp
+++ b/include/mesos/zookeeper/group.hpp
@@ -177,9 +177,9 @@ public:
   GroupProcess(const URL& url,
                const Duration& sessionTimeout);
 
-  virtual ~GroupProcess();
+  ~GroupProcess() override;
 
-  virtual void initialize();
+  void initialize() override;
 
   static const Duration RETRY_INTERVAL;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/include/mesos/zookeeper/watcher.hpp
----------------------------------------------------------------------
diff --git a/include/mesos/zookeeper/watcher.hpp b/include/mesos/zookeeper/watcher.hpp
index b2961a5..7fb3c24 100644
--- a/include/mesos/zookeeper/watcher.hpp
+++ b/include/mesos/zookeeper/watcher.hpp
@@ -40,11 +40,11 @@ public:
   explicit ProcessWatcher(const process::PID<T>& _pid)
     : pid(_pid), reconnect(false) {}
 
-  virtual void process(
+  void process(
       int type,
       int state,
       int64_t sessionId,
-      const std::string& path)
+      const std::string& path) override
   {
     if (type == ZOO_SESSION_EVENT) {
       if (state == ZOO_CONNECTED_STATE) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/authentication/cram_md5/authenticatee.cpp
----------------------------------------------------------------------
diff --git a/src/authentication/cram_md5/authenticatee.cpp b/src/authentication/cram_md5/authenticatee.cpp
index d43dedf..610efc5 100644
--- a/src/authentication/cram_md5/authenticatee.cpp
+++ b/src/authentication/cram_md5/authenticatee.cpp
@@ -75,7 +75,7 @@ public:
     secret->len = static_cast<unsigned long>(length);
   }
 
-  virtual ~CRAMMD5AuthenticateeProcess()
+  ~CRAMMD5AuthenticateeProcess() override
   {
     if (connection != nullptr) {
       sasl_dispose(&connection);
@@ -83,7 +83,7 @@ public:
     free(secret);
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     discarded(); // Fail the promise.
   }
@@ -177,7 +177,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Anticipate mechanisms and steps from the server.
     install<AuthenticationMechanismsMessage>(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/authentication/cram_md5/authenticatee.hpp
----------------------------------------------------------------------
diff --git a/src/authentication/cram_md5/authenticatee.hpp b/src/authentication/cram_md5/authenticatee.hpp
index d77b210..545f4b1 100644
--- a/src/authentication/cram_md5/authenticatee.hpp
+++ b/src/authentication/cram_md5/authenticatee.hpp
@@ -42,12 +42,12 @@ public:
 
   CRAMMD5Authenticatee();
 
-  virtual ~CRAMMD5Authenticatee();
+  ~CRAMMD5Authenticatee() override;
 
   process::Future<bool> authenticate(
       const process::UPID& pid,
       const process::UPID& client,
-      const Credential& credential);
+      const Credential& credential) override;
 
 private:
   CRAMMD5AuthenticateeProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/authentication/cram_md5/authenticator.cpp
----------------------------------------------------------------------
diff --git a/src/authentication/cram_md5/authenticator.cpp b/src/authentication/cram_md5/authenticator.cpp
index 0aad3aa..c541af6 100644
--- a/src/authentication/cram_md5/authenticator.cpp
+++ b/src/authentication/cram_md5/authenticator.cpp
@@ -64,14 +64,14 @@ public:
       pid(_pid),
       connection(nullptr) {}
 
-  virtual ~CRAMMD5AuthenticatorSessionProcess()
+  ~CRAMMD5AuthenticatorSessionProcess() override
   {
     if (connection != nullptr) {
       sasl_dispose(&connection);
     }
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     discarded(); // Fail the promise.
   }
@@ -167,7 +167,7 @@ public:
     return promise.future();
   }
 
-  virtual void initialize()
+  void initialize() override
   {
     link(pid); // Don't bother waiting for a lost authenticatee.
 
@@ -182,7 +182,7 @@ public:
         &AuthenticationStepMessage::data);
   }
 
-  virtual void exited(const UPID& _pid)
+  void exited(const UPID& _pid) override
   {
     if (pid == _pid) {
       status = ERROR;
@@ -407,7 +407,7 @@ public:
   CRAMMD5AuthenticatorProcess() :
     ProcessBase(ID::generate("crammd5-authenticator")) {}
 
-  virtual ~CRAMMD5AuthenticatorProcess() {}
+  ~CRAMMD5AuthenticatorProcess() override {}
 
   Future<Option<string>> authenticate(const UPID& pid)
   {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/authentication/cram_md5/authenticator.hpp
----------------------------------------------------------------------
diff --git a/src/authentication/cram_md5/authenticator.hpp b/src/authentication/cram_md5/authenticator.hpp
index a68b2cf..1765389 100644
--- a/src/authentication/cram_md5/authenticator.hpp
+++ b/src/authentication/cram_md5/authenticator.hpp
@@ -42,12 +42,12 @@ public:
 
   CRAMMD5Authenticator();
 
-  virtual ~CRAMMD5Authenticator();
+  ~CRAMMD5Authenticator() override;
 
-  virtual Try<Nothing> initialize(const Option<Credentials>& credentials);
+  Try<Nothing> initialize(const Option<Credentials>& credentials) override;
 
-  virtual process::Future<Option<std::string>> authenticate(
-      const process::UPID& pid);
+  process::Future<Option<std::string>> authenticate(
+      const process::UPID& pid) override;
 
 private:
   CRAMMD5AuthenticatorProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/authorizer/local/authorizer.cpp
----------------------------------------------------------------------
diff --git a/src/authorizer/local/authorizer.cpp b/src/authorizer/local/authorizer.cpp
index 056b172..abf5b46 100644
--- a/src/authorizer/local/authorizer.cpp
+++ b/src/authorizer/local/authorizer.cpp
@@ -182,7 +182,7 @@ public:
       action_(action),
       permissive_(permissive) {}
 
-  virtual Try<bool> approved(
+  Try<bool> approved(
       const Option<ObjectApprover::Object>& object) const noexcept override
   {
     // Construct subject.
@@ -480,7 +480,7 @@ public:
   // under an executor running under a given OS user and, if a command
   // is available, the principal is also allowed to run the command as
   // the given OS user.
-  virtual Try<bool> approved(
+  Try<bool> approved(
       const Option<ObjectApprover::Object>& object) const noexcept override
   {
     if (object.isNone() || object->command_info == nullptr) {
@@ -524,7 +524,7 @@ public:
   // Executors are permitted to perform an action when the root ContainerID in
   // the object is equal to the ContainerID that was extracted from the
   // subject's claims.
-  virtual Try<bool> approved(
+  Try<bool> approved(
       const Option<ObjectApprover::Object>& object) const noexcept override
   {
     return object.isSome() &&
@@ -546,7 +546,7 @@ public:
   // Resource providers are permitted to perform an action when the
   // ContainerID in the object is prefixed by the namespace extracted
   // from the subject's claims.
-  virtual Try<bool> approved(
+  Try<bool> approved(
       const Option<ObjectApprover::Object>& object) const noexcept override
   {
     return object.isSome() &&
@@ -563,7 +563,7 @@ private:
 class RejectingObjectApprover : public ObjectApprover
 {
 public:
-  virtual Try<bool> approved(
+  Try<bool> approved(
       const Option<ObjectApprover::Object>& object) const noexcept override
   {
     return false;
@@ -589,7 +589,7 @@ public:
     }
   }
 
-  virtual Try<bool> approved(const Option<ObjectApprover::Object>& object) const
+  Try<bool> approved(const Option<ObjectApprover::Object>& object) const
       noexcept override
   {
     ACL::Entity entityObject;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/authorizer/local/authorizer.hpp
----------------------------------------------------------------------
diff --git a/src/authorizer/local/authorizer.hpp b/src/authorizer/local/authorizer.hpp
index 794443a..2516a37 100644
--- a/src/authorizer/local/authorizer.hpp
+++ b/src/authorizer/local/authorizer.hpp
@@ -60,14 +60,14 @@ public:
   // parse, an error is returned.
   static Try<Authorizer*> create(const Parameters& parameters);
 
-  virtual ~LocalAuthorizer();
+  ~LocalAuthorizer() override;
 
-  virtual process::Future<bool> authorized(
-      const authorization::Request& request);
+  process::Future<bool> authorized(
+      const authorization::Request& request) override;
 
-  virtual process::Future<process::Owned<ObjectApprover>> getObjectApprover(
+  process::Future<process::Owned<ObjectApprover>> getObjectApprover(
       const Option<authorization::Subject>& subject,
-      const authorization::Action& action);
+      const authorization::Action& action) override;
 
 private:
   LocalAuthorizer(const ACLs& acls);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/checks/checker_process.hpp
----------------------------------------------------------------------
diff --git a/src/checks/checker_process.hpp b/src/checks/checker_process.hpp
index 6364af8..995eff4 100644
--- a/src/checks/checker_process.hpp
+++ b/src/checks/checker_process.hpp
@@ -69,7 +69,7 @@ public:
   void pause();
   void resume();
 
-  virtual ~CheckerProcess() {}
+  ~CheckerProcess() override {}
 
 protected:
   void initialize() override;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/cli/execute.cpp
----------------------------------------------------------------------
diff --git a/src/cli/execute.cpp b/src/cli/execute.cpp
index 89e5130..e0a8fc8 100644
--- a/src/cli/execute.cpp
+++ b/src/cli/execute.cpp
@@ -417,10 +417,10 @@ public:
       launched(false),
       terminatedTaskCount(0) {}
 
-  virtual ~CommandScheduler() {}
+  ~CommandScheduler() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // We initialize the library here to ensure that callbacks are only invoked
     // after the process has spawned.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/common/http.hpp
----------------------------------------------------------------------
diff --git a/src/common/http.hpp b/src/common/http.hpp
index 76e8f71..9d2b01f 100644
--- a/src/common/http.hpp
+++ b/src/common/http.hpp
@@ -179,7 +179,7 @@ const process::http::authorization::AuthorizationCallbacks
 class AcceptingObjectApprover : public ObjectApprover
 {
 public:
-  virtual Try<bool> approved(
+  Try<bool> approved(
       const Option<ObjectApprover::Object>& object) const noexcept override
   {
     return true;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/common/recordio.hpp
----------------------------------------------------------------------
diff --git a/src/common/recordio.hpp b/src/common/recordio.hpp
index 88e789c..8cb2e73 100644
--- a/src/common/recordio.hpp
+++ b/src/common/recordio.hpp
@@ -156,7 +156,7 @@ public:
       reader(_reader),
       done(false) {}
 
-  virtual ~ReaderProcess() {}
+  ~ReaderProcess() override {}
 
   process::Future<Result<T>> read()
   {
@@ -181,12 +181,12 @@ public:
   }
 
 protected:
-  virtual void initialize() override
+  void initialize() override
   {
     consume();
   }
 
-  virtual void finalize() override
+  void finalize() override
   {
     // Fail any remaining waiters.
     fail("Reader is terminating");

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/docker/executor.cpp
----------------------------------------------------------------------
diff --git a/src/docker/executor.cpp b/src/docker/executor.cpp
index d9f5a73..f461af9 100644
--- a/src/docker/executor.cpp
+++ b/src/docker/executor.cpp
@@ -119,7 +119,7 @@ public:
       stop(Nothing()),
       inspect(Nothing()) {}
 
-  virtual ~DockerExecutorProcess() {}
+  ~DockerExecutorProcess() override {}
 
   void registered(
       ExecutorDriver* _driver,
@@ -898,17 +898,17 @@ public:
     spawn(process.get());
   }
 
-  virtual ~DockerExecutor()
+  ~DockerExecutor() override
   {
     terminate(process.get());
     wait(process.get());
   }
 
-  virtual void registered(
+  void registered(
       ExecutorDriver* driver,
       const ExecutorInfo& executorInfo,
       const FrameworkInfo& frameworkInfo,
-      const SlaveInfo& slaveInfo)
+      const SlaveInfo& slaveInfo) override
   {
     dispatch(process.get(),
              &DockerExecutorProcess::registered,
@@ -918,9 +918,9 @@ public:
              slaveInfo);
   }
 
-  virtual void reregistered(
+  void reregistered(
       ExecutorDriver* driver,
-      const SlaveInfo& slaveInfo)
+      const SlaveInfo& slaveInfo) override
   {
     dispatch(process.get(),
              &DockerExecutorProcess::reregistered,
@@ -928,22 +928,22 @@ public:
              slaveInfo);
   }
 
-  virtual void disconnected(ExecutorDriver* driver)
+  void disconnected(ExecutorDriver* driver) override
   {
     dispatch(process.get(), &DockerExecutorProcess::disconnected, driver);
   }
 
-  virtual void launchTask(ExecutorDriver* driver, const TaskInfo& task)
+  void launchTask(ExecutorDriver* driver, const TaskInfo& task) override
   {
     dispatch(process.get(), &DockerExecutorProcess::launchTask, driver, task);
   }
 
-  virtual void killTask(ExecutorDriver* driver, const TaskID& taskId)
+  void killTask(ExecutorDriver* driver, const TaskID& taskId) override
   {
     dispatch(process.get(), &DockerExecutorProcess::killTask, driver, taskId);
   }
 
-  virtual void frameworkMessage(ExecutorDriver* driver, const string& data)
+  void frameworkMessage(ExecutorDriver* driver, const string& data) override
   {
     dispatch(process.get(),
              &DockerExecutorProcess::frameworkMessage,
@@ -951,12 +951,12 @@ public:
              data);
   }
 
-  virtual void shutdown(ExecutorDriver* driver)
+  void shutdown(ExecutorDriver* driver) override
   {
     dispatch(process.get(), &DockerExecutorProcess::shutdown, driver);
   }
 
-  virtual void error(ExecutorDriver* driver, const string& data)
+  void error(ExecutorDriver* driver, const string& data) override
   {
     dispatch(process.get(), &DockerExecutorProcess::error, driver, data);
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/balloon_executor.cpp
----------------------------------------------------------------------
diff --git a/src/examples/balloon_executor.cpp b/src/examples/balloon_executor.cpp
index 5281db1..b8d63ab 100644
--- a/src/examples/balloon_executor.cpp
+++ b/src/examples/balloon_executor.cpp
@@ -159,28 +159,28 @@ public:
   BalloonExecutor()
     : launched(false) {}
 
-  virtual ~BalloonExecutor() {}
+  ~BalloonExecutor() override {}
 
-  virtual void registered(ExecutorDriver* driver,
+  void registered(ExecutorDriver* driver,
                           const ExecutorInfo& executorInfo,
                           const FrameworkInfo& frameworkInfo,
-                          const SlaveInfo& slaveInfo)
+                          const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Registered";
   }
 
-  virtual void reregistered(ExecutorDriver* driver,
-                            const SlaveInfo& slaveInfo)
+  void reregistered(ExecutorDriver* driver,
+                            const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Reregistered";
   }
 
-  virtual void disconnected(ExecutorDriver* driver)
+  void disconnected(ExecutorDriver* driver) override
   {
     LOG(INFO) << "Disconnected";
   }
 
-  virtual void launchTask(ExecutorDriver* driver, const TaskInfo& task)
+  void launchTask(ExecutorDriver* driver, const TaskInfo& task) override
   {
     if (launched) {
       TaskStatus status;
@@ -207,22 +207,23 @@ public:
     launched = true;
   }
 
-  virtual void killTask(ExecutorDriver* driver, const TaskID& taskId)
+  void killTask(ExecutorDriver* driver, const TaskID& taskId) override
   {
     LOG(INFO) << "Kill task " << taskId.value();
   }
 
-  virtual void frameworkMessage(ExecutorDriver* driver, const std::string& data)
+  void frameworkMessage(
+      ExecutorDriver* driver, const std::string& data) override
   {
     LOG(INFO) << "Framework message: " << data;
   }
 
-  virtual void shutdown(ExecutorDriver* driver)
+  void shutdown(ExecutorDriver* driver) override
   {
     LOG(INFO) << "Shutdown";
   }
 
-  virtual void error(ExecutorDriver* driver, const std::string& message)
+  void error(ExecutorDriver* driver, const std::string& message) override
   {
     LOG(INFO) << "Error message: " << message;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/balloon_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/balloon_framework.cpp b/src/examples/balloon_framework.cpp
index cbc25e4..706ea4d 100644
--- a/src/examples/balloon_framework.cpp
+++ b/src/examples/balloon_framework.cpp
@@ -384,39 +384,39 @@ public:
     process::spawn(process);
   }
 
-  virtual ~BalloonScheduler()
+  ~BalloonScheduler() override
   {
     process::terminate(process);
     process::wait(process);
   }
 
-  virtual void registered(
+  void registered(
       SchedulerDriver*,
       const FrameworkID& frameworkId,
-      const MasterInfo&)
+      const MasterInfo&) override
   {
     LOG(INFO) << "Registered with framework ID: " << frameworkId;
 
     process::dispatch(&process, &BalloonSchedulerProcess::registered);
   }
 
-  virtual void reregistered(SchedulerDriver*, const MasterInfo& masterInfo)
+  void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Reregistered";
 
     process::dispatch(&process, &BalloonSchedulerProcess::registered);
   }
 
-  virtual void disconnected(SchedulerDriver* driver)
+  void disconnected(SchedulerDriver* driver) override
   {
     LOG(INFO) << "Disconnected";
 
     process::dispatch(&process, &BalloonSchedulerProcess::disconnected);
   }
 
-  virtual void resourceOffers(
+  void resourceOffers(
       SchedulerDriver* driver,
-      const std::vector<Offer>& offers)
+      const std::vector<Offer>& offers) override
   {
     LOG(INFO) << "Resource offers received";
 
@@ -427,12 +427,12 @@ public:
         offers);
   }
 
-  virtual void offerRescinded(SchedulerDriver* driver, const OfferID& offerId)
+  void offerRescinded(SchedulerDriver* driver, const OfferID& offerId) override
   {
     LOG(INFO) << "Offer rescinded";
   }
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     LOG(INFO) << "Task " << status.task_id() << " in state "
               << TaskState_Name(status.state())
@@ -447,30 +447,30 @@ public:
         status);
   }
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      const string& data)
+      const string& data) override
   {
     LOG(INFO) << "Framework message: " << data;
   }
 
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId)
+  void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) override
   {
     LOG(INFO) << "Agent lost: " << slaveId;
   }
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      int status)
+      int status) override
   {
     LOG(INFO) << "Executor '" << executorId << "' lost on agent: " << slaveId;
   }
 
-  virtual void error(SchedulerDriver* driver, const string& message)
+  void error(SchedulerDriver* driver, const string& message) override
   {
     LOG(INFO) << "Error message: " << message;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/disk_full_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/disk_full_framework.cpp b/src/examples/disk_full_framework.cpp
index dfbddda..f50dcda 100644
--- a/src/examples/disk_full_framework.cpp
+++ b/src/examples/disk_full_framework.cpp
@@ -343,30 +343,30 @@ public:
     process::spawn(process);
   }
 
-  virtual ~DiskFullScheduler()
+  ~DiskFullScheduler() override
   {
     process::terminate(process);
     process::wait(process);
   }
 
-  virtual void registered(
+  void registered(
       SchedulerDriver*,
       const FrameworkID& frameworkId,
-      const MasterInfo&)
+      const MasterInfo&) override
   {
     LOG(INFO) << "Registered with framework ID: " << frameworkId;
 
     process::dispatch(&process, &DiskFullSchedulerProcess::registered);
   }
 
-  virtual void reregistered(SchedulerDriver*, const MasterInfo&)
+  void reregistered(SchedulerDriver*, const MasterInfo&) override
   {
     LOG(INFO) << "Reregistered";
 
     process::dispatch(&process, &DiskFullSchedulerProcess::registered);
   }
 
-  virtual void disconnected(SchedulerDriver*)
+  void disconnected(SchedulerDriver*) override
   {
     LOG(INFO) << "Disconnected";
 
@@ -375,9 +375,9 @@ public:
         &DiskFullSchedulerProcess::disconnected);
   }
 
-  virtual void resourceOffers(
+  void resourceOffers(
       SchedulerDriver* driver,
-      const std::vector<Offer>& offers)
+      const std::vector<Offer>& offers) override
   {
     LOG(INFO) << "Resource offers received";
 
@@ -388,12 +388,12 @@ public:
          offers);
   }
 
-  virtual void offerRescinded(SchedulerDriver*, const OfferID&)
+  void offerRescinded(SchedulerDriver*, const OfferID&) override
   {
     LOG(INFO) << "Offer rescinded";
   }
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     LOG(INFO) << "Task " << status.task_id() << " in state "
               << TaskState_Name(status.state())
@@ -408,30 +408,30 @@ public:
         status);
   }
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver*,
       const ExecutorID&,
       const SlaveID&,
-      const string& data)
+      const string& data) override
   {
     LOG(INFO) << "Framework message: " << data;
   }
 
-  virtual void slaveLost(SchedulerDriver*, const SlaveID& slaveId)
+  void slaveLost(SchedulerDriver*, const SlaveID& slaveId) override
   {
     LOG(INFO) << "Agent lost: " << slaveId;
   }
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver*,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      int)
+      int) override
   {
     LOG(INFO) << "Executor '" << executorId << "' lost on agent: " << slaveId;
   }
 
-  virtual void error(SchedulerDriver*, const string& message)
+  void error(SchedulerDriver*, const string& message) override
   {
     LOG(INFO) << "Error message: " << message;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/docker_no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/docker_no_executor_framework.cpp b/src/examples/docker_no_executor_framework.cpp
index 0cbda07..ed7017a 100644
--- a/src/examples/docker_no_executor_framework.cpp
+++ b/src/examples/docker_no_executor_framework.cpp
@@ -51,21 +51,21 @@ public:
   DockerNoExecutorScheduler()
     : tasksLaunched(0), tasksFinished(0), totalTasks(5) {}
 
-  virtual ~DockerNoExecutorScheduler() {}
+  ~DockerNoExecutorScheduler() override {}
 
-  virtual void registered(SchedulerDriver*,
+  void registered(SchedulerDriver*,
                           const FrameworkID&,
-                          const MasterInfo&)
+                          const MasterInfo&) override
   {
     LOG(INFO) << "Registered!";
   }
 
-  virtual void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) {}
+  void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) override {}
 
-  virtual void disconnected(SchedulerDriver* driver) {}
+  void disconnected(SchedulerDriver* driver) override {}
 
-  virtual void resourceOffers(SchedulerDriver* driver,
-                              const vector<Offer>& offers)
+  void resourceOffers(SchedulerDriver* driver,
+                              const vector<Offer>& offers) override
   {
     LOG(INFO) << ".";
 
@@ -136,10 +136,10 @@ public:
     }
   }
 
-  virtual void offerRescinded(SchedulerDriver* driver,
-                              const OfferID& offerId) {}
+  void offerRescinded(SchedulerDriver* driver,
+                              const OfferID& offerId) override {}
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     int taskId = lexical_cast<int>(status.task_id().value());
 
@@ -154,19 +154,19 @@ public:
     }
   }
 
-  virtual void frameworkMessage(SchedulerDriver* driver,
+  void frameworkMessage(SchedulerDriver* driver,
                                 const ExecutorID& executorId,
                                 const SlaveID& slaveId,
-                                const string& data) {}
+                                const string& data) override {}
 
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) {}
+  void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) override {}
 
-  virtual void executorLost(SchedulerDriver* driver,
+  void executorLost(SchedulerDriver* driver,
                             const ExecutorID& executorId,
                             const SlaveID& slaveId,
-                            int status) {}
+                            int status) override {}
 
-  virtual void error(SchedulerDriver* driver, const string& message) {}
+  void error(SchedulerDriver* driver, const string& message) override {}
 
 private:
   int tasksLaunched;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/dynamic_reservation_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/dynamic_reservation_framework.cpp b/src/examples/dynamic_reservation_framework.cpp
index e8d8d09..9c21725 100644
--- a/src/examples/dynamic_reservation_framework.cpp
+++ b/src/examples/dynamic_reservation_framework.cpp
@@ -79,21 +79,21 @@ public:
     taskResources = taskResources.pushReservation(reservationInfo);
   }
 
-  virtual ~DynamicReservationScheduler() {}
+  ~DynamicReservationScheduler() override {}
 
-  virtual void registered(SchedulerDriver*,
+  void registered(SchedulerDriver*,
                           const FrameworkID&,
-                          const MasterInfo&)
+                          const MasterInfo&) override
   {
     LOG(INFO) << "Registered!";
   }
 
-  virtual void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) {}
+  void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) override {}
 
-  virtual void disconnected(SchedulerDriver* driver) {}
+  void disconnected(SchedulerDriver* driver) override {}
 
-  virtual void resourceOffers(SchedulerDriver* driver,
-                              const vector<Offer>& offers)
+  void resourceOffers(SchedulerDriver* driver,
+                              const vector<Offer>& offers) override
   {
     foreach (const Offer& offer, offers) {
       LOG(INFO) << "Received offer " << offer.id() << " with "
@@ -211,10 +211,10 @@ public:
     }
   }
 
-  virtual void offerRescinded(SchedulerDriver* driver,
-                              const OfferID& offerId) {}
+  void offerRescinded(SchedulerDriver* driver,
+                              const OfferID& offerId) override {}
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     const string& taskId = status.task_id().value();
 
@@ -245,19 +245,19 @@ public:
     }
   }
 
-  virtual void frameworkMessage(SchedulerDriver* driver,
+  void frameworkMessage(SchedulerDriver* driver,
                                 const ExecutorID& executorId,
                                 const SlaveID& slaveId,
-                                const string& data) {}
+                                const string& data) override {}
 
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) {}
+  void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) override {}
 
-  virtual void executorLost(SchedulerDriver* driver,
+  void executorLost(SchedulerDriver* driver,
                             const ExecutorID& executorId,
                             const SlaveID& slaveId,
-                            int status) {}
+                            int status) override {}
 
-  virtual void error(SchedulerDriver* driver, const string& message)
+  void error(SchedulerDriver* driver, const string& message) override
   {
     LOG(ERROR) << message;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/example_module_impl.cpp
----------------------------------------------------------------------
diff --git a/src/examples/example_module_impl.cpp b/src/examples/example_module_impl.cpp
index b84ff73..4c3c2e3 100644
--- a/src/examples/example_module_impl.cpp
+++ b/src/examples/example_module_impl.cpp
@@ -31,7 +31,7 @@
 class TestModuleImpl : public TestModule
 {
 public:
-  Try<Nothing> initialize(const mesos::Parameters& parameters)
+  Try<Nothing> initialize(const mesos::Parameters& parameters) override
   {
     foreach (const mesos::Parameter& parameter, parameters.parameter()) {
       if (parameter.has_key() && parameter.has_value()) {
@@ -53,17 +53,17 @@ public:
     return Nothing();
   }
 
-  virtual int foo(char a, long b)
+  int foo(char a, long b) override
   {
     return a + b;
   }
 
-  virtual int bar(float a, double b)
+  int bar(float a, double b) override
   {
     return a * b;
   }
 
-  virtual int baz(int a, int b)
+  int baz(int a, int b) override
   {
     if (flags["operation"] == "sum") {
       return a + b;
@@ -71,7 +71,7 @@ public:
     return -1;
   }
 
-  virtual mesos::Parameters parameters() const
+  mesos::Parameters parameters() const override
   {
     mesos::Parameters parameters;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/load_generator_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/load_generator_framework.cpp b/src/examples/load_generator_framework.cpp
index 3ae25b2..380b7a7 100644
--- a/src/examples/load_generator_framework.cpp
+++ b/src/examples/load_generator_framework.cpp
@@ -57,7 +57,7 @@ public:
       const Option<Duration>& _duration)
     : driver(_driver), qps(_qps), duration(_duration), messages(0) {}
 
-  virtual void initialize()
+  void initialize() override
   {
     dispatch(self(), &Self::generate);
   }
@@ -137,14 +137,14 @@ public:
   LoadGeneratorScheduler(double _qps, const Option<Duration>& _duration)
     : generator(nullptr), qps(_qps), duration(_duration) {}
 
-  virtual ~LoadGeneratorScheduler()
+  ~LoadGeneratorScheduler() override
   {
     delete generator;
   }
 
-  virtual void registered(SchedulerDriver* driver,
+  void registered(SchedulerDriver* driver,
                           const FrameworkID&,
-                          const MasterInfo& masterInfo)
+                          const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Registered with " << masterInfo.pid();
 
@@ -155,9 +155,9 @@ public:
     }
   }
 
-  virtual void reregistered(
+  void reregistered(
       SchedulerDriver* driver,
-      const MasterInfo& masterInfo)
+      const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Reregistered with " << masterInfo.pid();
 
@@ -167,7 +167,7 @@ public:
     }
   }
 
-  virtual void disconnected(SchedulerDriver* driver)
+  void disconnected(SchedulerDriver* driver) override
   {
     LOG(INFO) << "Disconnected!";
 
@@ -177,9 +177,9 @@ public:
     LOG(INFO) << "Stopped LoadGenerator";
   }
 
-  virtual void resourceOffers(
+  void resourceOffers(
       SchedulerDriver* driver,
-      const vector<Offer>& offers)
+      const vector<Offer>& offers) override
   {
     LOG(INFO) << "Received " << offers.size()
               << " resource offers. Declining them";
@@ -195,25 +195,25 @@ public:
     }
   }
 
-  virtual void offerRescinded(SchedulerDriver*, const OfferID&) {}
+  void offerRescinded(SchedulerDriver*, const OfferID&) override {}
 
-  virtual void statusUpdate(SchedulerDriver*, const TaskStatus&) {}
+  void statusUpdate(SchedulerDriver*, const TaskStatus&) override {}
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver*,
       const ExecutorID&,
       const SlaveID&,
-      const string&) {}
+      const string&) override {}
 
-  virtual void slaveLost(SchedulerDriver*, const SlaveID&) {}
+  void slaveLost(SchedulerDriver*, const SlaveID&) override {}
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver*,
       const ExecutorID&,
       const SlaveID&,
-      int) {}
+      int) override {}
 
-  virtual void error(SchedulerDriver*, const string& error)
+  void error(SchedulerDriver*, const string& error) override
   {
     // Terminating process with EXIT here because we cannot interrupt
     // LoadGenerator's long-running loop.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/long_lived_executor.cpp
----------------------------------------------------------------------
diff --git a/src/examples/long_lived_executor.cpp b/src/examples/long_lived_executor.cpp
index 21b511d..b87a806 100644
--- a/src/examples/long_lived_executor.cpp
+++ b/src/examples/long_lived_executor.cpp
@@ -63,10 +63,10 @@ public:
       executorId(_executorId),
       state(DISCONNECTED) {}
 
-  virtual ~LongLivedExecutor() = default;
+  ~LongLivedExecutor() override = default;
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // We initialize the library here to ensure that callbacks are only invoked
     // after the process has spawned.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/long_lived_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/long_lived_framework.cpp b/src/examples/long_lived_framework.cpp
index 0e4e3d0..621a5ca 100644
--- a/src/examples/long_lived_framework.cpp
+++ b/src/examples/long_lived_framework.cpp
@@ -138,10 +138,10 @@ public:
     start_time = Clock::now();
   }
 
-  virtual ~LongLivedScheduler() {}
+  ~LongLivedScheduler() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // We initialize the library here to ensure that callbacks are only invoked
     // after the process has spawned.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/no_executor_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/no_executor_framework.cpp b/src/examples/no_executor_framework.cpp
index dc75d78..de3d5fa 100644
--- a/src/examples/no_executor_framework.cpp
+++ b/src/examples/no_executor_framework.cpp
@@ -83,10 +83,10 @@ public:
       tasksTerminated(0u),
       totalTasks(_totalTasks) {}
 
-  virtual void registered(
+  void registered(
       SchedulerDriver* driver,
       const FrameworkID& frameworkId,
-      const MasterInfo& masterInfo)
+      const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Registered with master " << masterInfo
               << " and got framework ID " << frameworkId;
@@ -94,21 +94,21 @@ public:
     frameworkInfo.mutable_id()->CopyFrom(frameworkId);
   }
 
-  virtual void reregistered(
+  void reregistered(
       SchedulerDriver* driver,
-      const MasterInfo& masterInfo)
+      const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Reregistered with master " << masterInfo;
   }
 
-  virtual void disconnected(SchedulerDriver* driver)
+  void disconnected(SchedulerDriver* driver) override
   {
     LOG(INFO) << "Disconnected!";
   }
 
-  virtual void resourceOffers(
+  void resourceOffers(
       SchedulerDriver* driver,
-      const vector<Offer>& offers)
+      const vector<Offer>& offers) override
   {
     foreach (const Offer& offer, offers) {
       LOG(INFO) << "Received offer " << offer.id() << " from agent "
@@ -139,12 +139,12 @@ public:
     }
   }
 
-  virtual void offerRescinded(SchedulerDriver* driver, const OfferID& offerId)
+  void offerRescinded(SchedulerDriver* driver, const OfferID& offerId) override
   {
     LOG(INFO) << "Offer " << offerId << " has been rescinded";
   }
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     if (!activeTasks.contains(status.task_id())) {
       LOG(WARNING) << "Unknown task '" << status.task_id() << "'"
@@ -187,32 +187,32 @@ public:
     }
   }
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      const string& data)
+      const string& data) override
   {
     LOG(FATAL) << "Received framework message from executor '" << executorId
                << "' on agent " << slaveId << ": '" << data << "'";
   }
 
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId)
+  void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) override
   {
     LOG(INFO) << "Lost agent " << slaveId;
   }
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      int status)
+      int status) override
   {
     LOG(INFO) << "Lost executor '" << executorId << "' on agent "
               << slaveId << ", " << WSTRINGIFY(status);
   }
 
-  virtual void error(SchedulerDriver* driver, const string& message)
+  void error(SchedulerDriver* driver, const string& message) override
   {
     LOG(ERROR) << message;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/persistent_volume_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/persistent_volume_framework.cpp b/src/examples/persistent_volume_framework.cpp
index 4337550..5aa8762 100644
--- a/src/examples/persistent_volume_framework.cpp
+++ b/src/examples/persistent_volume_framework.cpp
@@ -164,10 +164,10 @@ public:
     }
   }
 
-  virtual void registered(
+  void registered(
       SchedulerDriver* driver,
       const FrameworkID& frameworkId,
-      const MasterInfo& masterInfo)
+      const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Registered with master " << masterInfo
               << " and got framework ID " << frameworkId;
@@ -175,21 +175,21 @@ public:
     frameworkInfo.mutable_id()->CopyFrom(frameworkId);
   }
 
-  virtual void reregistered(
+  void reregistered(
       SchedulerDriver* driver,
-      const MasterInfo& masterInfo)
+      const MasterInfo& masterInfo) override
   {
     LOG(INFO) << "Reregistered with master " << masterInfo;
   }
 
-  virtual void disconnected(SchedulerDriver* driver)
+  void disconnected(SchedulerDriver* driver) override
   {
     LOG(INFO) << "Disconnected!";
   }
 
-  virtual void resourceOffers(
+  void resourceOffers(
       SchedulerDriver* driver,
-      const vector<Offer>& offers)
+      const vector<Offer>& offers) override
   {
     foreach (const Offer& offer, offers) {
       LOG(INFO) << "Received offer " << offer.id() << " from agent "
@@ -343,12 +343,12 @@ public:
     }
   }
 
-  virtual void offerRescinded(SchedulerDriver* driver, const OfferID& offerId)
+  void offerRescinded(SchedulerDriver* driver, const OfferID& offerId) override
   {
     LOG(INFO) << "Offer " << offerId << " has been rescinded";
   }
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     LOG(INFO) << "Task '" << status.task_id() << "' is in state "
               << status.state();
@@ -388,32 +388,32 @@ public:
     }
   }
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      const string& data)
+      const string& data) override
   {
     LOG(INFO) << "Received framework message from executor '" << executorId
               << "' on agent " << slaveId << ": '" << data << "'";
   }
 
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId)
+  void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) override
   {
     LOG(INFO) << "Lost agent " << slaveId;
   }
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      int status)
+      int status) override
   {
     LOG(INFO) << "Lost executor '" << executorId << "' on agent "
               << slaveId << ", " << WSTRINGIFY(status);
   }
 
-  virtual void error(SchedulerDriver* driver, const string& message)
+  void error(SchedulerDriver* driver, const string& message) override
   {
     LOG(ERROR) << message;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_anonymous_module.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_anonymous_module.cpp b/src/examples/test_anonymous_module.cpp
index c41b7fc..1596ffb 100644
--- a/src/examples/test_anonymous_module.cpp
+++ b/src/examples/test_anonymous_module.cpp
@@ -41,7 +41,7 @@ public:
   // TODO(tillt): Currently this destructor will only ever get called
   // during the test runs. Fix this behavior by introducing anonymous
   // module instance reference management.
-  virtual ~TestAnonymous()
+  ~TestAnonymous() override
   {
     VLOG(1) << "Anonymous module destructor";
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_csi_plugin.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_csi_plugin.cpp b/src/examples/test_csi_plugin.cpp
index 8afa67f..93301f8 100644
--- a/src/examples/test_csi_plugin.cpp
+++ b/src/examples/test_csi_plugin.cpp
@@ -161,87 +161,87 @@ public:
     }
   }
 
-  virtual Status GetPluginInfo(
+  Status GetPluginInfo(
       ServerContext* context,
       const csi::v0::GetPluginInfoRequest* request,
       csi::v0::GetPluginInfoResponse* response) override;
 
-  virtual Status GetPluginCapabilities(
+  Status GetPluginCapabilities(
       ServerContext* context,
       const csi::v0::GetPluginCapabilitiesRequest* request,
       csi::v0::GetPluginCapabilitiesResponse* response) override;
 
-  virtual Status Probe(
+  Status Probe(
       ServerContext* context,
       const csi::v0::ProbeRequest* request,
       csi::v0::ProbeResponse* response) override;
 
-  virtual Status CreateVolume(
+  Status CreateVolume(
       ServerContext* context,
       const csi::v0::CreateVolumeRequest* request,
       csi::v0::CreateVolumeResponse* response) override;
 
-  virtual Status DeleteVolume(
+  Status DeleteVolume(
       ServerContext* context,
       const csi::v0::DeleteVolumeRequest* request,
       csi::v0::DeleteVolumeResponse* response) override;
 
-  virtual Status ControllerPublishVolume(
+  Status ControllerPublishVolume(
       ServerContext* context,
       const csi::v0::ControllerPublishVolumeRequest* request,
       csi::v0::ControllerPublishVolumeResponse* response) override;
 
-  virtual Status ControllerUnpublishVolume(
+  Status ControllerUnpublishVolume(
       ServerContext* context,
       const csi::v0::ControllerUnpublishVolumeRequest* request,
       csi::v0::ControllerUnpublishVolumeResponse* response) override;
 
-  virtual Status ValidateVolumeCapabilities(
+  Status ValidateVolumeCapabilities(
       ServerContext* context,
       const csi::v0::ValidateVolumeCapabilitiesRequest* request,
       csi::v0::ValidateVolumeCapabilitiesResponse* response) override;
 
-  virtual Status ListVolumes(
+  Status ListVolumes(
       ServerContext* context,
       const csi::v0::ListVolumesRequest* request,
       csi::v0::ListVolumesResponse* response) override;
 
-  virtual Status GetCapacity(
+  Status GetCapacity(
       ServerContext* context,
       const csi::v0::GetCapacityRequest* request,
       csi::v0::GetCapacityResponse* response) override;
 
-  virtual Status ControllerGetCapabilities(
+  Status ControllerGetCapabilities(
       ServerContext* context,
       const csi::v0::ControllerGetCapabilitiesRequest* request,
       csi::v0::ControllerGetCapabilitiesResponse* response) override;
 
-  virtual Status NodeStageVolume(
+  Status NodeStageVolume(
       ServerContext* context,
       const csi::v0::NodeStageVolumeRequest* request,
       csi::v0::NodeStageVolumeResponse* response) override;
 
-  virtual Status NodeUnstageVolume(
+  Status NodeUnstageVolume(
       ServerContext* context,
       const csi::v0::NodeUnstageVolumeRequest* request,
       csi::v0::NodeUnstageVolumeResponse* response) override;
 
-  virtual Status NodePublishVolume(
+  Status NodePublishVolume(
       ServerContext* context,
       const csi::v0::NodePublishVolumeRequest* request,
       csi::v0::NodePublishVolumeResponse* response) override;
 
-  virtual Status NodeUnpublishVolume(
+  Status NodeUnpublishVolume(
       ServerContext* context,
       const csi::v0::NodeUnpublishVolumeRequest* request,
       csi::v0::NodeUnpublishVolumeResponse* response) override;
 
-  virtual Status NodeGetId(
+  Status NodeGetId(
       ServerContext* context,
       const csi::v0::NodeGetIdRequest* request,
       csi::v0::NodeGetIdResponse* response) override;
 
-  virtual Status NodeGetCapabilities(
+  Status NodeGetCapabilities(
       ServerContext* context,
       const csi::v0::NodeGetCapabilitiesRequest* request,
       csi::v0::NodeGetCapabilitiesResponse* response) override;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_csi_user_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_csi_user_framework.cpp b/src/examples/test_csi_user_framework.cpp
index c7cc56c..1bf5d14 100644
--- a/src/examples/test_csi_user_framework.cpp
+++ b/src/examples/test_csi_user_framework.cpp
@@ -95,7 +95,7 @@ public:
       master(_master),
       state(INITIALIZING) {}
 
-  ~HTTPScheduler() {}
+  ~HTTPScheduler() override {}
 
   void connected()
   {
@@ -198,7 +198,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // We initialize the library here to ensure that callbacks are only invoked
     // after the process has spawned.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_executor.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_executor.cpp b/src/examples/test_executor.cpp
index d9b7cdd..df14594 100644
--- a/src/examples/test_executor.cpp
+++ b/src/examples/test_executor.cpp
@@ -31,25 +31,25 @@ using std::string;
 class TestExecutor : public Executor
 {
 public:
-  virtual ~TestExecutor() {}
+  ~TestExecutor() override {}
 
-  virtual void registered(ExecutorDriver* driver,
+  void registered(ExecutorDriver* driver,
                           const ExecutorInfo& executorInfo,
                           const FrameworkInfo& frameworkInfo,
-                          const SlaveInfo& slaveInfo)
+                          const SlaveInfo& slaveInfo) override
   {
     cout << "Registered executor on " << slaveInfo.hostname() << endl;
   }
 
-  virtual void reregistered(ExecutorDriver* driver,
-                            const SlaveInfo& slaveInfo)
+  void reregistered(ExecutorDriver* driver,
+                            const SlaveInfo& slaveInfo) override
   {
     cout << "Re-registered executor on " << slaveInfo.hostname() << endl;
   }
 
-  virtual void disconnected(ExecutorDriver* driver) {}
+  void disconnected(ExecutorDriver* driver) override {}
 
-  virtual void launchTask(ExecutorDriver* driver, const TaskInfo& task)
+  void launchTask(ExecutorDriver* driver, const TaskInfo& task) override
   {
     cout << "Starting task " << task.task_id().value() << endl;
 
@@ -69,10 +69,10 @@ public:
     driver->sendStatusUpdate(status);
   }
 
-  virtual void killTask(ExecutorDriver* driver, const TaskID& taskId) {}
-  virtual void frameworkMessage(ExecutorDriver* driver, const string& data) {}
-  virtual void shutdown(ExecutorDriver* driver) {}
-  virtual void error(ExecutorDriver* driver, const string& message) {}
+  void killTask(ExecutorDriver* driver, const TaskID& taskId) override {}
+  void frameworkMessage(ExecutorDriver* driver, const string& data) override {}
+  void shutdown(ExecutorDriver* driver) override {}
+  void error(ExecutorDriver* driver, const string& message) override {}
 };
 
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_framework.cpp b/src/examples/test_framework.cpp
index aaf952c..d6f74c2 100644
--- a/src/examples/test_framework.cpp
+++ b/src/examples/test_framework.cpp
@@ -76,21 +76,21 @@ public:
       tasksFinished(0),
       totalTasks(5) {}
 
-  virtual ~TestScheduler() {}
+  ~TestScheduler() override {}
 
-  virtual void registered(SchedulerDriver*,
+  void registered(SchedulerDriver*,
                           const FrameworkID&,
-                          const MasterInfo&)
+                          const MasterInfo&) override
   {
     cout << "Registered!" << endl;
   }
 
-  virtual void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) {}
+  void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) override {}
 
-  virtual void disconnected(SchedulerDriver* driver) {}
+  void disconnected(SchedulerDriver* driver) override {}
 
-  virtual void resourceOffers(SchedulerDriver* driver,
-                              const vector<Offer>& offers)
+  void resourceOffers(SchedulerDriver* driver,
+                              const vector<Offer>& offers) override
   {
     foreach (const Offer& offer, offers) {
       cout << "Received offer " << offer.id() << " with " << offer.resources()
@@ -141,10 +141,10 @@ public:
     }
   }
 
-  virtual void offerRescinded(SchedulerDriver* driver, const OfferID& offerId)
+  void offerRescinded(SchedulerDriver* driver, const OfferID& offerId) override
   {}
 
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status)
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override
   {
     int taskId = lexical_cast<int>(status.task_id().value());
 
@@ -174,23 +174,23 @@ public:
     }
   }
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
-      const string& data)
+      const string& data) override
   {}
 
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& sid) {}
+  void slaveLost(SchedulerDriver* driver, const SlaveID& sid) override {}
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver* driver,
       const ExecutorID& executorID,
       const SlaveID& slaveID,
-      int status)
+      int status) override
   {}
 
-  virtual void error(SchedulerDriver* driver, const string& message)
+  void error(SchedulerDriver* driver, const string& message) override
   {
     cout << message << endl;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_hook_module.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_hook_module.cpp b/src/examples/test_hook_module.cpp
index 9b9d75c..c4f4495 100644
--- a/src/examples/test_hook_module.cpp
+++ b/src/examples/test_hook_module.cpp
@@ -51,7 +51,7 @@ class HookProcess : public ProtobufProcess<HookProcess>
 public:
   HookProcess() : ProcessBase(process::ID::generate("example-hook")) {}
 
-  void initialize()
+  void initialize() override
   {
     install<internal::HookExecuted>(
         &HookProcess::handler,
@@ -87,10 +87,10 @@ private:
 class TestHook : public Hook
 {
 public:
-  virtual Result<Labels> masterLaunchTaskLabelDecorator(
+  Result<Labels> masterLaunchTaskLabelDecorator(
       const TaskInfo& taskInfo,
       const FrameworkInfo& frameworkInfo,
-      const SlaveInfo& slaveInfo)
+      const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Executing 'masterLaunchTaskLabelDecorator' hook";
 
@@ -111,7 +111,7 @@ public:
     return labels;
   }
 
-  virtual Try<Nothing> masterSlaveLostHook(const SlaveInfo& slaveInfo)
+  Try<Nothing> masterSlaveLostHook(const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Executing 'masterSlaveLostHook' in agent '"
               << slaveInfo.id() << "'";
@@ -140,11 +140,11 @@ public:
 
   // TODO(nnielsen): Split hook tests into multiple modules to avoid
   // interference.
-  virtual Result<Labels> slaveRunTaskLabelDecorator(
+  Result<Labels> slaveRunTaskLabelDecorator(
       const TaskInfo& taskInfo,
       const ExecutorInfo& executorInfo,
       const FrameworkInfo& frameworkInfo,
-      const SlaveInfo& slaveInfo)
+      const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Executing 'slaveRunTaskLabelDecorator' hook";
 
@@ -168,8 +168,8 @@ public:
 
   // In this hook, we create a new environment variable "FOO" and set
   // it's value to "bar".
-  virtual Result<Environment> slaveExecutorEnvironmentDecorator(
-      const ExecutorInfo& executorInfo)
+  Result<Environment> slaveExecutorEnvironmentDecorator(
+      const ExecutorInfo& executorInfo) override
   {
     LOG(INFO) << "Executing 'slaveExecutorEnvironmentDecorator' hook";
 
@@ -192,14 +192,14 @@ public:
   // Otherwise we add an environment variable to the executor and task.
   // Additionally, this hook creates a file named "foo" in the container
   // work directory (sandbox).
-  virtual Future<Option<DockerTaskExecutorPrepareInfo>>
+  Future<Option<DockerTaskExecutorPrepareInfo>>
     slavePreLaunchDockerTaskExecutorDecorator(
         const Option<TaskInfo>& taskInfo,
         const ExecutorInfo& executorInfo,
         const string& containerName,
         const string& containerWorkDirectory,
         const string& mappedSandboxDirectory,
-        const Option<map<string, string>>& env)
+        const Option<map<string, string>>& env) override
   {
     LOG(INFO) << "Executing 'slavePreLaunchDockerTaskExecutorDecorator' hook";
 
@@ -231,9 +231,9 @@ public:
   }
 
 
-  virtual Try<Nothing> slavePostFetchHook(
+  Try<Nothing> slavePostFetchHook(
       const ContainerID& containerId,
-      const string& directory)
+      const string& directory) override
   {
     LOG(INFO) << "Executing 'slavePostFetchHook'";
 
@@ -249,9 +249,9 @@ public:
 
   // This hook locates the file created by environment decorator hook
   // and deletes it.
-  virtual Try<Nothing> slaveRemoveExecutorHook(
+  Try<Nothing> slaveRemoveExecutorHook(
       const FrameworkInfo& frameworkInfo,
-      const ExecutorInfo& executorInfo)
+      const ExecutorInfo& executorInfo) override
   {
     LOG(INFO) << "Executing 'slaveRemoveExecutorHook'";
 
@@ -277,9 +277,9 @@ public:
   }
 
 
-  virtual Result<TaskStatus> slaveTaskStatusDecorator(
+  Result<TaskStatus> slaveTaskStatusDecorator(
       const FrameworkID& frameworkId,
-      const TaskStatus& status)
+      const TaskStatus& status) override
   {
     LOG(INFO) << "Executing 'slaveTaskStatusDecorator' hook";
 
@@ -318,8 +318,8 @@ public:
   }
 
 
-  virtual Result<Resources> slaveResourcesDecorator(
-      const SlaveInfo& slaveInfo)
+  Result<Resources> slaveResourcesDecorator(
+      const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Executing 'slaveResourcesDecorator' hook";
 
@@ -340,8 +340,8 @@ public:
   }
 
 
-  virtual Result<Attributes> slaveAttributesDecorator(
-      const SlaveInfo& slaveInfo)
+  Result<Attributes> slaveAttributesDecorator(
+      const SlaveInfo& slaveInfo) override
   {
     LOG(INFO) << "Executing 'slaveAttributesDecorator' hook";
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_http_executor.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_http_executor.cpp b/src/examples/test_http_executor.cpp
index fb9209f..e5f7cbb 100644
--- a/src/examples/test_http_executor.cpp
+++ b/src/examples/test_http_executor.cpp
@@ -204,7 +204,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // We initialize the library here to ensure that callbacks are only invoked
     // after the process has spawned.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/examples/test_http_framework.cpp
----------------------------------------------------------------------
diff --git a/src/examples/test_http_framework.cpp b/src/examples/test_http_framework.cpp
index 9ea3c6f..4de0696 100644
--- a/src/examples/test_http_framework.cpp
+++ b/src/examples/test_http_framework.cpp
@@ -92,7 +92,7 @@ public:
       tasksFinished(0),
       totalTasks(5) {}
 
-  ~HTTPScheduler() {}
+  ~HTTPScheduler() override {}
 
   void connected()
   {
@@ -206,7 +206,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // We initialize the library here to ensure that callbacks are only invoked
     // after the process has spawned.
@@ -351,7 +351,7 @@ private:
     process::delay(Seconds(1), self(), &Self::doReliableRegistration);
   }
 
-  void finalize()
+  void finalize() override
   {
     Call call;
     CHECK(framework.has_id());

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/exec/exec.cpp
----------------------------------------------------------------------
diff --git a/src/exec/exec.cpp b/src/exec/exec.cpp
index ca4f065..c0fa3b6 100644
--- a/src/exec/exec.cpp
+++ b/src/exec/exec.cpp
@@ -88,7 +88,7 @@ public:
       gracePeriod(_gracePeriod) {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     VLOG(1) << "Scheduling shutdown of the executor in " << gracePeriod;
 
@@ -204,10 +204,10 @@ public:
         &ExecutorProcess::shutdown);
   }
 
-  virtual ~ExecutorProcess() {}
+  ~ExecutorProcess() override {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     VLOG(1) << "Executor started at: " << self() << " with pid " << getpid();
 
@@ -502,7 +502,7 @@ protected:
     }
   }
 
-  virtual void exited(const UPID& pid)
+  void exited(const UPID& pid) override
   {
     if (aborted.load()) {
       VLOG(1) << "Ignoring exited event because the driver is aborted!";

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/executor/executor.cpp
----------------------------------------------------------------------
diff --git a/src/executor/executor.cpp b/src/executor/executor.cpp
index a9e1fcf..d00ea32 100644
--- a/src/executor/executor.cpp
+++ b/src/executor/executor.cpp
@@ -98,7 +98,7 @@ public:
       gracePeriod(_gracePeriod) {}
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     VLOG(1) << "Scheduling shutdown of the executor in " << gracePeriod;
 
@@ -354,13 +354,13 @@ public:
                          lambda::_1));
   }
 
-  ~MesosProcess()
+  ~MesosProcess() override
   {
     disconnect();
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     connect();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/executor/v0_v1executor.cpp
----------------------------------------------------------------------
diff --git a/src/executor/v0_v1executor.cpp b/src/executor/v0_v1executor.cpp
index 086cfc7..aebdbe7 100644
--- a/src/executor/v0_v1executor.cpp
+++ b/src/executor/v0_v1executor.cpp
@@ -55,7 +55,7 @@ public:
       connected(false),
       subscribeCall(false) {}
 
-  virtual ~V0ToV1AdapterProcess() = default;
+  ~V0ToV1AdapterProcess() override = default;
 
   void registered(
       const mesos::ExecutorInfo& _executorInfo,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/executor/v0_v1executor.hpp
----------------------------------------------------------------------
diff --git a/src/executor/v0_v1executor.hpp b/src/executor/v0_v1executor.hpp
index ef9bae6..e6e5869 100644
--- a/src/executor/v0_v1executor.hpp
+++ b/src/executor/v0_v1executor.hpp
@@ -43,39 +43,39 @@ public:
       const std::function<void(void)>& disconnected,
       const std::function<void(const std::queue<Event>&)>& received);
 
-  virtual ~V0ToV1Adapter();
+  ~V0ToV1Adapter() override;
 
-  virtual void registered(
+  void registered(
       ExecutorDriver* driver,
       const mesos::ExecutorInfo& executorInfo,
       const mesos::FrameworkInfo& frameworkInfo,
       const mesos::SlaveInfo& slaveInfo) override;
 
-  virtual void reregistered(
+  void reregistered(
       ExecutorDriver* driver,
       const mesos::SlaveInfo& slaveInfo) override;
 
-  virtual void launchTask(
+  void launchTask(
       ExecutorDriver* driver,
       const mesos::TaskInfo& task) override;
 
-  virtual void disconnected(ExecutorDriver* driver) override;
+  void disconnected(ExecutorDriver* driver) override;
 
-  virtual void killTask(
+  void killTask(
       ExecutorDriver* driver,
       const mesos::TaskID& taskId) override;
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       ExecutorDriver* driver,
       const std::string& data) override;
 
-  virtual void shutdown(ExecutorDriver* driver) override;
+  void shutdown(ExecutorDriver* driver) override;
 
-  virtual void error(
+  void error(
       ExecutorDriver* driver,
       const std::string& message) override;
 
-  virtual void send(const Call& call) override;
+  void send(const Call& call) override;
 
 private:
   process::Owned<V0ToV1AdapterProcess> process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/files/files.cpp
----------------------------------------------------------------------
diff --git a/src/files/files.cpp b/src/files/files.cpp
index 4b8713a..a64613c 100644
--- a/src/files/files.cpp
+++ b/src/files/files.cpp
@@ -121,7 +121,7 @@ public:
       const Option<Principal>& principal);
 
 protected:
-  virtual void initialize();
+  void initialize() override;
 
 private:
   // Resolves the virtual path to an actual path.


[7/7] mesos git commit: Apply the `override` keyword to stout.

Posted by jp...@apache.org.
Apply the `override` keyword to stout.

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


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

Branch: refs/heads/master
Commit: 5affcfd64317fade57ffa69ec632ef5cf34f2bb0
Parents: 8088142
Author: James Peach <jp...@apache.org>
Authored: Tue Jul 17 09:30:44 2018 -0700
Committer: James Peach <jp...@apache.org>
Committed: Tue Jul 17 14:23:01 2018 -0700

----------------------------------------------------------------------
 3rdparty/stout/include/stout/lambda.hpp      | 2 +-
 3rdparty/stout/include/stout/tests/utils.hpp | 4 ++--
 3rdparty/stout/tests/main.cpp                | 2 +-
 3rdparty/stout/tests/os/rmdir_tests.cpp      | 2 +-
 3rdparty/stout/tests/os/sendfile_tests.cpp   | 2 +-
 3rdparty/stout/tests/subcommand_tests.cpp    | 4 ++--
 6 files changed, 8 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mesos/blob/5affcfd6/3rdparty/stout/include/stout/lambda.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/lambda.hpp b/3rdparty/stout/include/stout/lambda.hpp
index 252de89..2f796a3 100644
--- a/3rdparty/stout/include/stout/lambda.hpp
+++ b/3rdparty/stout/include/stout/lambda.hpp
@@ -458,7 +458,7 @@ private:
     CallableFn(const F& f) : f(f) {}
     CallableFn(F&& f) : f(std::move(f)) {}
 
-    virtual R operator()(Args&&... args) &&
+    R operator()(Args&&... args) && override
     {
       return internal::Invoke<R>{}(std::move(f), std::forward<Args>(args)...);
     }

http://git-wip-us.apache.org/repos/asf/mesos/blob/5affcfd6/3rdparty/stout/include/stout/tests/utils.hpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/include/stout/tests/utils.hpp b/3rdparty/stout/include/stout/tests/utils.hpp
index e7336a5..eb13cce 100644
--- a/3rdparty/stout/include/stout/tests/utils.hpp
+++ b/3rdparty/stout/include/stout/tests/utils.hpp
@@ -33,7 +33,7 @@
 class TemporaryDirectoryTest : public ::testing::Test
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     // Save the current working directory.
     cwd = os::getcwd();
@@ -59,7 +59,7 @@ protected:
       << "Failed to chdir into '" << sandbox.get() << "'";
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     // Return to previous working directory and cleanup the sandbox.
     ASSERT_SOME(os::chdir(cwd));

http://git-wip-us.apache.org/repos/asf/mesos/blob/5affcfd6/3rdparty/stout/tests/main.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/tests/main.cpp b/3rdparty/stout/tests/main.cpp
index 144399d..f08f62f 100644
--- a/3rdparty/stout/tests/main.cpp
+++ b/3rdparty/stout/tests/main.cpp
@@ -66,7 +66,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "SYMLINK_") && !can_create_symlinks;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/5affcfd6/3rdparty/stout/tests/os/rmdir_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/tests/os/rmdir_tests.cpp b/3rdparty/stout/tests/os/rmdir_tests.cpp
index 518afc0..3ca4099 100644
--- a/3rdparty/stout/tests/os/rmdir_tests.cpp
+++ b/3rdparty/stout/tests/os/rmdir_tests.cpp
@@ -392,7 +392,7 @@ TEST_F(RmdirTest, RemoveDirectoryButPreserveRoot)
 class RmdirContinueOnErrorTest : public RmdirTest
 {
 public:
-  virtual void TearDown()
+  void TearDown() override
   {
     if (mountPoint.isSome()) {
       if (os::system("umount -f -l " + mountPoint.get()) != 0) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/5affcfd6/3rdparty/stout/tests/os/sendfile_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/tests/os/sendfile_tests.cpp b/3rdparty/stout/tests/os/sendfile_tests.cpp
index cc1fa11..958aa66 100644
--- a/3rdparty/stout/tests/os/sendfile_tests.cpp
+++ b/3rdparty/stout/tests/os/sendfile_tests.cpp
@@ -45,7 +45,7 @@ public:
         "culpa qui officia deserunt mollit anim id est laborum.") {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/5affcfd6/3rdparty/stout/tests/subcommand_tests.cpp
----------------------------------------------------------------------
diff --git a/3rdparty/stout/tests/subcommand_tests.cpp b/3rdparty/stout/tests/subcommand_tests.cpp
index 211d28d..ad71c96 100644
--- a/3rdparty/stout/tests/subcommand_tests.cpp
+++ b/3rdparty/stout/tests/subcommand_tests.cpp
@@ -87,8 +87,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute() { return 0; }
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override { return 0; }
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 


[5/7] mesos git commit: Apply the `override` keyword to Mesos.

Posted by jp...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/java/jni/org_apache_mesos_MesosExecutorDriver.cpp
----------------------------------------------------------------------
diff --git a/src/java/jni/org_apache_mesos_MesosExecutorDriver.cpp b/src/java/jni/org_apache_mesos_MesosExecutorDriver.cpp
index 39dba40..9d1d456 100644
--- a/src/java/jni/org_apache_mesos_MesosExecutorDriver.cpp
+++ b/src/java/jni/org_apache_mesos_MesosExecutorDriver.cpp
@@ -38,19 +38,19 @@ public:
     env->GetJavaVM(&jvm);
   }
 
-  virtual ~JNIExecutor() {}
+  ~JNIExecutor() override {}
 
-  virtual void registered(ExecutorDriver* driver,
+  void registered(ExecutorDriver* driver,
                           const ExecutorInfo& executorInfo,
                           const FrameworkInfo& frameworkInfo,
-                          const SlaveInfo& slaveInfo);
-  virtual void reregistered(ExecutorDriver* driver, const SlaveInfo& slaveInfo);
-  virtual void disconnected(ExecutorDriver* driver);
-  virtual void launchTask(ExecutorDriver* driver, const TaskInfo& task);
-  virtual void killTask(ExecutorDriver* driver, const TaskID& taskId);
-  virtual void frameworkMessage(ExecutorDriver* driver, const string& data);
-  virtual void shutdown(ExecutorDriver* driver);
-  virtual void error(ExecutorDriver* driver, const string& message);
+                          const SlaveInfo& slaveInfo) override;
+  void reregistered(ExecutorDriver* driver, const SlaveInfo& slaveInfo) override;
+  void disconnected(ExecutorDriver* driver) override;
+  void launchTask(ExecutorDriver* driver, const TaskInfo& task) override;
+  void killTask(ExecutorDriver* driver, const TaskID& taskId) override;
+  void frameworkMessage(ExecutorDriver* driver, const string& data) override;
+  void shutdown(ExecutorDriver* driver) override;
+  void error(ExecutorDriver* driver, const string& message) override;
 
   JavaVM* jvm;
   JNIEnv* env;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp
----------------------------------------------------------------------
diff --git a/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp b/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp
index 1f9572c..762fe85 100644
--- a/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp
+++ b/src/java/jni/org_apache_mesos_MesosSchedulerDriver.cpp
@@ -46,27 +46,27 @@ public:
     env->GetJavaVM(&jvm);
   }
 
-  virtual ~JNIScheduler() {}
+  ~JNIScheduler() override {}
 
-  virtual void registered(SchedulerDriver* driver,
+  void registered(SchedulerDriver* driver,
                           const FrameworkID& frameworkId,
-                          const MasterInfo& masterInfo);
-  virtual void reregistered(SchedulerDriver*, const MasterInfo& masterInfo);
-  virtual void disconnected(SchedulerDriver* driver);
-  virtual void resourceOffers(SchedulerDriver* driver,
-                              const vector<Offer>& offers);
-  virtual void offerRescinded(SchedulerDriver* driver, const OfferID& offerId);
-  virtual void statusUpdate(SchedulerDriver* driver, const TaskStatus& status);
-  virtual void frameworkMessage(SchedulerDriver* driver,
+                          const MasterInfo& masterInfo) override;
+  void reregistered(SchedulerDriver*, const MasterInfo& masterInfo) override;
+  void disconnected(SchedulerDriver* driver) override;
+  void resourceOffers(SchedulerDriver* driver,
+                              const vector<Offer>& offers) override;
+  void offerRescinded(SchedulerDriver* driver, const OfferID& offerId) override;
+  void statusUpdate(SchedulerDriver* driver, const TaskStatus& status) override;
+  void frameworkMessage(SchedulerDriver* driver,
                                 const ExecutorID& executorId,
                                 const SlaveID& slaveId,
-                                const string& data);
-  virtual void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId);
-  virtual void executorLost(SchedulerDriver* driver,
+                                const string& data) override;
+  void slaveLost(SchedulerDriver* driver, const SlaveID& slaveId) override;
+  void executorLost(SchedulerDriver* driver,
                             const ExecutorID& executorId,
                             const SlaveID& slaveId,
-                            int status);
-  virtual void error(SchedulerDriver* driver, const string& message);
+                            int status) override;
+  void error(SchedulerDriver* driver, const string& message) override;
 
   JavaVM* jvm;
   JNIEnv* env;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
----------------------------------------------------------------------
diff --git a/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp b/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
index 1deeb08..4e4dd54 100644
--- a/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
+++ b/src/java/jni/org_apache_mesos_v1_scheduler_V0Mesos.cpp
@@ -80,62 +80,62 @@ public:
       const string& master,
       const Option<Credential>& credential);
 
-  virtual ~V0ToV1Adapter();
+  ~V0ToV1Adapter() override;
 
   // v0 Scheduler interface overrides.
-  virtual void registered(
+  void registered(
       SchedulerDriver* driver,
       const FrameworkID& frameworkId,
       const MasterInfo& masterInfo) override;
 
-  virtual void reregistered(
+  void reregistered(
       SchedulerDriver* driver,
       const MasterInfo& masterInfo) override;
 
-  virtual void disconnected(SchedulerDriver* driver) override;
+  void disconnected(SchedulerDriver* driver) override;
 
-  virtual void resourceOffers(
+  void resourceOffers(
       SchedulerDriver* driver,
       const vector<Offer>& offers) override;
 
-  virtual void offerRescinded(
+  void offerRescinded(
       SchedulerDriver* driver,
       const OfferID& offerId) override;
 
-  virtual void statusUpdate(
+  void statusUpdate(
       SchedulerDriver* driver,
       const TaskStatus& status) override;
 
-  virtual void frameworkMessage(
+  void frameworkMessage(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
       const string& data) override;
 
-  virtual void slaveLost(
+  void slaveLost(
       SchedulerDriver* driver,
       const SlaveID& slaveId) override;
 
-  virtual void executorLost(
+  void executorLost(
       SchedulerDriver* driver,
       const ExecutorID& executorId,
       const SlaveID& slaveId,
       int status) override;
 
-  virtual void error(
+  void error(
       SchedulerDriver* driver,
       const string& message) override;
 
   // v1 MesosBase interface overrides.
-  virtual void send(const v1::scheduler::Call& call) override;
+  void send(const v1::scheduler::Call& call) override;
 
-  virtual void reconnect() override
+  void reconnect() override
   {
     // The driver does not support explicit reconnection with the master.
     UNREACHABLE();
   }
 
-  virtual process::Future<v1::scheduler::APIResult> call(
+  process::Future<v1::scheduler::APIResult> call(
       const v1::scheduler::Call& callMessage) override
   {
     // The driver does not support sending a `v1::scheduler::Call` that returns
@@ -157,7 +157,7 @@ class V0ToV1AdapterProcess : public process::Process<V0ToV1AdapterProcess>
 public:
   V0ToV1AdapterProcess(JNIEnv* env, jweak jmesos);
 
-  virtual ~V0ToV1AdapterProcess() = default;
+  ~V0ToV1AdapterProcess() override = default;
 
   void registered(const FrameworkID& frameworkId, const MasterInfo& masterInfo);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/launcher/default_executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/default_executor.cpp b/src/launcher/default_executor.cpp
index a70ba06..b89b036 100644
--- a/src/launcher/default_executor.cpp
+++ b/src/launcher/default_executor.cpp
@@ -161,7 +161,7 @@ public:
       launcherDirectory(_launcherDirectory),
       authorizationHeader(_authorizationHeader) {}
 
-  virtual ~DefaultExecutor() = default;
+  ~DefaultExecutor() override = default;
 
   void connected()
   {
@@ -303,7 +303,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     mesos.reset(new Mesos(
         contentType,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/launcher/executor.cpp
----------------------------------------------------------------------
diff --git a/src/launcher/executor.cpp b/src/launcher/executor.cpp
index 9fb43c0..86fb87d 100644
--- a/src/launcher/executor.cpp
+++ b/src/launcher/executor.cpp
@@ -163,7 +163,7 @@ public:
       executorId(_executorId),
       lastTaskStatus(None()) {}
 
-  virtual ~CommandExecutor() = default;
+  ~CommandExecutor() override = default;
 
   void connected()
   {
@@ -264,7 +264,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     Option<string> value = os::getenv("MESOS_HTTP_COMMAND_EXECUTOR");
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/linux/cgroups.cpp
----------------------------------------------------------------------
diff --git a/src/linux/cgroups.cpp b/src/linux/cgroups.cpp
index 5c96484..86b0306 100644
--- a/src/linux/cgroups.cpp
+++ b/src/linux/cgroups.cpp
@@ -1185,7 +1185,7 @@ public:
       args(_args),
       data(0) {}
 
-  virtual ~Listener() {}
+  ~Listener() override {}
 
   // Waits for the next event to occur, at which point the future
   // becomes ready. Returns a failure if error occurs. If any previous
@@ -1217,7 +1217,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Register an eventfd "notifier" for the given control.
     Try<int> fd = registerNotifier(hierarchy, cgroup, control, args);
@@ -1229,7 +1229,7 @@ protected:
     }
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     // Discard the nonblocking read.
     reading.discard();
@@ -1374,7 +1374,7 @@ public:
       cgroup(_cgroup),
       start(Clock::now()) {}
 
-  virtual ~Freezer() {}
+  ~Freezer() override {}
 
   void freeze()
   {
@@ -1438,7 +1438,7 @@ public:
   Future<Nothing> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     Option<Error> error = verify(hierarchy, cgroup, "freezer.state");
     if (error.isSome()) {
@@ -1452,7 +1452,7 @@ protected:
           static_cast<void(*)(const UPID&, bool)>(terminate), self(), true));
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     promise.discard();
   }
@@ -1474,7 +1474,7 @@ public:
       hierarchy(_hierarchy),
       cgroup(_cgroup) {}
 
-  virtual ~TasksKiller() {}
+  ~TasksKiller() override {}
 
   // Return a future indicating the state of the killer.
   // Failure occurs if any process in the cgroup is unable to be
@@ -1482,7 +1482,7 @@ public:
   Future<Nothing> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -1491,7 +1491,7 @@ protected:
     killTasks();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     chain.discard();
 
@@ -1626,14 +1626,14 @@ public:
       hierarchy(_hierarchy),
       cgroups(_cgroups) {}
 
-  virtual ~Destroyer() {}
+  ~Destroyer() override {}
 
   // Return a future indicating the state of the destroyer.
   // Failure occurs if any cgroup fails to be destroyed.
   Future<Nothing> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -1652,7 +1652,7 @@ protected:
       .onAny(defer(self(), &Destroyer::killed, lambda::_1));
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     discard(killers);
     promise.discard();
@@ -2694,7 +2694,7 @@ public:
           "memory.pressure_level",
           stringify(level))) {}
 
-  virtual ~CounterProcess() {}
+  ~CounterProcess() override {}
 
   Future<uint64_t> value()
   {
@@ -2706,13 +2706,13 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     spawn(CHECK_NOTNULL(process.get()));
     listen();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     terminate(process.get());
     wait(process.get());

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/linux/perf.cpp
----------------------------------------------------------------------
diff --git a/src/linux/perf.cpp b/src/linux/perf.cpp
index f5ac21d..dfc4670 100644
--- a/src/linux/perf.cpp
+++ b/src/linux/perf.cpp
@@ -93,7 +93,7 @@ public:
     }
   }
 
-  virtual ~Perf() {}
+  ~Perf() override {}
 
   Future<string> output()
   {
@@ -101,7 +101,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -110,7 +110,7 @@ protected:
     execute();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     // Kill the perf process (if it's still running) by sending
     // SIGTERM to the signal handler which will then SIGKILL the

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/catchup.cpp
----------------------------------------------------------------------
diff --git a/src/log/catchup.cpp b/src/log/catchup.cpp
index ed2e79b..f668268 100644
--- a/src/log/catchup.cpp
+++ b/src/log/catchup.cpp
@@ -56,12 +56,12 @@ public:
       position(_position),
       proposal(_proposal) {}
 
-  virtual ~CatchUpProcess() {}
+  ~CatchUpProcess() override {}
 
   Future<uint64_t> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -70,7 +70,7 @@ protected:
     check();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     checking.discard();
     filling.discard();
@@ -188,12 +188,12 @@ public:
       timeout(_timeout),
       proposal(_proposal) {}
 
-  virtual ~BulkCatchUpProcess() {}
+  ~BulkCatchUpProcess() override {}
 
   Future<Nothing> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -205,7 +205,7 @@ protected:
     catchup();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     catching.discard();
 
@@ -337,7 +337,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     LOG(INFO) << "Starting missing positions recovery";
 
@@ -352,7 +352,7 @@ protected:
       .onAny(defer(self(), &Self::finished, lambda::_1));
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     VLOG(1) << "Recover process terminated";
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/consensus.cpp
----------------------------------------------------------------------
diff --git a/src/log/consensus.cpp b/src/log/consensus.cpp
index 76ed3e8..bce7fac 100644
--- a/src/log/consensus.cpp
+++ b/src/log/consensus.cpp
@@ -82,12 +82,12 @@ public:
       responsesReceived(0),
       ignoresReceived(0) {}
 
-  virtual ~ExplicitPromiseProcess() {}
+  ~ExplicitPromiseProcess() override {}
 
   Future<PromiseResponse> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -100,7 +100,7 @@ protected:
       .onAny(defer(self(), &Self::watched, lambda::_1));
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     // This process will be terminated when we get responses from a
     // quorum of replicas. In that case, we no longer care about
@@ -286,12 +286,12 @@ public:
       responsesReceived(0),
       ignoresReceived(0) {}
 
-  virtual ~ImplicitPromiseProcess() {}
+  ~ImplicitPromiseProcess() override {}
 
   Future<PromiseResponse> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -304,7 +304,7 @@ protected:
       .onAny(defer(self(), &Self::watched, lambda::_1));
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     // This process will be terminated when we get responses from a
     // quorum of replicas. In that case, we no longer care about
@@ -451,12 +451,12 @@ public:
       responsesReceived(0),
       ignoresReceived(0) {}
 
-  virtual ~WriteProcess() {}
+  ~WriteProcess() override {}
 
   Future<WriteResponse> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -469,7 +469,7 @@ protected:
       .onAny(defer(self(), &Self::watched, lambda::_1));
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     // This process will be terminated when we get responses from a
     // quorum of replicas. In that case, we no longer care about
@@ -620,12 +620,12 @@ public:
       position(_position),
       proposal(_proposal) {}
 
-  virtual ~FillProcess() {}
+  ~FillProcess() override {}
 
   Future<Action> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Stop when no one cares.
     promise.future().onDiscard(lambda::bind(
@@ -634,7 +634,7 @@ protected:
     runPromisePhase();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     // Discard the futures we're waiting for.
     promising.discard();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/coordinator.cpp
----------------------------------------------------------------------
diff --git a/src/log/coordinator.cpp b/src/log/coordinator.cpp
index 01d2179..bd78397 100644
--- a/src/log/coordinator.cpp
+++ b/src/log/coordinator.cpp
@@ -56,7 +56,7 @@ public:
       proposal(0),
       index(0) {}
 
-  virtual ~CoordinatorProcess() {}
+  ~CoordinatorProcess() override {}
 
   // See comments in 'coordinator.hpp'.
   Future<Option<uint64_t>> elect();
@@ -65,7 +65,7 @@ public:
   Future<Option<uint64_t>> truncate(uint64_t to);
 
 protected:
-  virtual void finalize()
+  void finalize() override
   {
     electing.discard();
     writing.discard();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/leveldb.cpp
----------------------------------------------------------------------
diff --git a/src/log/leveldb.cpp b/src/log/leveldb.cpp
index 50d7fe5..72eeffb 100644
--- a/src/log/leveldb.cpp
+++ b/src/log/leveldb.cpp
@@ -41,9 +41,9 @@ namespace log {
 class Varint64Comparator : public leveldb::Comparator
 {
 public:
-  virtual int Compare(
+  int Compare(
       const leveldb::Slice& a,
-      const leveldb::Slice& b) const
+      const leveldb::Slice& b) const override
   {
     // TODO(benh): Use varint comparator.
     LOG(FATAL) << "Unimplemented";
@@ -55,7 +55,7 @@ public:
     UNREACHABLE();
   }
 
-  virtual const char* Name() const
+  const char* Name() const override
   {
     // Note that this name MUST NOT CHANGE across uses of this
     // comparator with the same DB (the semantics of doing so are
@@ -63,14 +63,14 @@ public:
     return "varint64";
   }
 
-  virtual void FindShortestSeparator(
+  void FindShortestSeparator(
       string* start,
-      const leveldb::Slice& limit) const
+      const leveldb::Slice& limit) const override
   {
     // Intentional no-op.
   }
 
-  virtual void FindShortSuccessor(string* key) const
+  void FindShortSuccessor(string* key) const override
   {
     // Intentional no-op.
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/leveldb.hpp
----------------------------------------------------------------------
diff --git a/src/log/leveldb.hpp b/src/log/leveldb.hpp
index ce93fdc..1d5842a 100644
--- a/src/log/leveldb.hpp
+++ b/src/log/leveldb.hpp
@@ -34,12 +34,12 @@ class LevelDBStorage : public Storage
 {
 public:
   LevelDBStorage();
-  virtual ~LevelDBStorage();
+  ~LevelDBStorage() override;
 
-  virtual Try<State> restore(const std::string& path);
-  virtual Try<Nothing> persist(const Metadata& metadata);
-  virtual Try<Nothing> persist(const Action& action);
-  virtual Try<Action> read(uint64_t position);
+  Try<State> restore(const std::string& path) override;
+  Try<Nothing> persist(const Metadata& metadata) override;
+  Try<Nothing> persist(const Action& action) override;
+  Try<Action> read(uint64_t position) override;
 
 private:
   leveldb::DB* db;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/log.hpp
----------------------------------------------------------------------
diff --git a/src/log/log.hpp b/src/log/log.hpp
index 7cba0b1..5612a1a 100644
--- a/src/log/log.hpp
+++ b/src/log/log.hpp
@@ -65,8 +65,8 @@ public:
   process::Future<process::Shared<Replica>> recover();
 
 protected:
-  virtual void initialize();
-  virtual void finalize();
+  void initialize() override;
+  void finalize() override;
 
 private:
   friend class LogReaderProcess;
@@ -131,8 +131,8 @@ public:
   process::Future<mesos::log::Log::Position> catchup();
 
 protected:
-  virtual void initialize();
-  virtual void finalize();
+  void initialize() override;
+  void finalize() override;
 
 private:
   // Returns a position from a raw value.
@@ -179,8 +179,8 @@ public:
       const mesos::log::Log::Position& to);
 
 protected:
-  virtual void initialize();
-  virtual void finalize();
+  void initialize() override;
+  void finalize() override;
 
 private:
   // Helper for converting an optional position returned from the

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/network.hpp
----------------------------------------------------------------------
diff --git a/src/log/network.hpp b/src/log/network.hpp
index 317ae14..fc500d1 100644
--- a/src/log/network.hpp
+++ b/src/log/network.hpp
@@ -256,7 +256,7 @@ public:
   }
 
 protected:
-  virtual void finalize()
+  void finalize() override
   {
     foreach (Watch* watch, watches) {
       watch->promise.fail("Network is being terminated");

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/recover.cpp
----------------------------------------------------------------------
diff --git a/src/log/recover.cpp b/src/log/recover.cpp
index 2167d41..862e089 100644
--- a/src/log/recover.cpp
+++ b/src/log/recover.cpp
@@ -94,7 +94,7 @@ public:
   Future<Option<RecoverResponse>> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Register a callback to handle user initiated discard.
     promise.future().onDiscard(defer(self(), &Self::discard));
@@ -432,7 +432,7 @@ public:
   Future<Owned<Replica>> future() { return promise.future(); }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     LOG(INFO) << "Starting replica recovery";
 
@@ -442,7 +442,7 @@ protected:
     start();
   }
 
-  virtual void finalize()
+  void finalize() override
   {
     VLOG(1) << "Recover process terminated";
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/replica.cpp
----------------------------------------------------------------------
diff --git a/src/log/replica.cpp b/src/log/replica.cpp
index bb5aa8c..25c1280 100644
--- a/src/log/replica.cpp
+++ b/src/log/replica.cpp
@@ -65,7 +65,7 @@ public:
   // directory for storing the underlying log.
   explicit ReplicaProcess(const string& path);
 
-  virtual ~ReplicaProcess();
+  ~ReplicaProcess() override;
 
   // Returns the action associated with this position. A none result
   // means that no action is known for this position. An error result

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/tool/benchmark.hpp
----------------------------------------------------------------------
diff --git a/src/log/tool/benchmark.hpp b/src/log/tool/benchmark.hpp
index b58a659..b980c09 100644
--- a/src/log/tool/benchmark.hpp
+++ b/src/log/tool/benchmark.hpp
@@ -48,8 +48,8 @@ public:
     bool help;
   };
 
-  virtual std::string name() const { return "benchmark"; }
-  virtual Try<Nothing> execute(int argc = 0, char** argv = nullptr);
+  std::string name() const override { return "benchmark"; }
+  Try<Nothing> execute(int argc = 0, char** argv = nullptr) override;
 
   // Users can change the default configuration by setting this flags.
   Flags flags;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/tool/initialize.hpp
----------------------------------------------------------------------
diff --git a/src/log/tool/initialize.hpp b/src/log/tool/initialize.hpp
index 8d4fab1..3ae9f0f 100644
--- a/src/log/tool/initialize.hpp
+++ b/src/log/tool/initialize.hpp
@@ -43,8 +43,8 @@ public:
     bool help;
   };
 
-  virtual std::string name() const { return "initialize"; }
-  virtual Try<Nothing> execute(int argc = 0, char** argv = nullptr);
+  std::string name() const override { return "initialize"; }
+  Try<Nothing> execute(int argc = 0, char** argv = nullptr) override;
 
   // Users can change the default configuration by setting this flags.
   Flags flags;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/tool/read.hpp
----------------------------------------------------------------------
diff --git a/src/log/tool/read.hpp b/src/log/tool/read.hpp
index 00b8617..1ac6d69 100644
--- a/src/log/tool/read.hpp
+++ b/src/log/tool/read.hpp
@@ -47,8 +47,8 @@ public:
     bool help;
   };
 
-  virtual std::string name() const { return "read"; }
-  virtual Try<Nothing> execute(int argc = 0, char** argv = nullptr);
+  std::string name() const override { return "read"; }
+  Try<Nothing> execute(int argc = 0, char** argv = nullptr) override;
 
   // Users can change the default configuration by setting this flags.
   Flags flags;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/log/tool/replica.hpp
----------------------------------------------------------------------
diff --git a/src/log/tool/replica.hpp b/src/log/tool/replica.hpp
index 456ad12..8563bf2 100644
--- a/src/log/tool/replica.hpp
+++ b/src/log/tool/replica.hpp
@@ -48,8 +48,8 @@ public:
     bool help;
   };
 
-  virtual std::string name() const { return "replica"; }
-  virtual Try<Nothing> execute(int argc = 0, char** argv = nullptr);
+  std::string name() const override { return "replica"; }
+  Try<Nothing> execute(int argc = 0, char** argv = nullptr) override;
 
   // Users can change the default configuration by setting this flags.
   Flags flags;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/allocator/mesos/allocator.hpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/mesos/allocator.hpp b/src/master/allocator/mesos/allocator.hpp
index 900c8ee..4c33747 100644
--- a/src/master/allocator/mesos/allocator.hpp
+++ b/src/master/allocator/mesos/allocator.hpp
@@ -44,7 +44,7 @@ public:
   // Factory to allow for typed tests.
   static Try<mesos::allocator::Allocator*> create();
 
-  ~MesosAllocator();
+  ~MesosAllocator() override;
 
   void initialize(
       const Duration& allocationInterval,
@@ -60,32 +60,33 @@ public:
         fairnessExcludeResourceNames = None(),
       bool filterGpuResources = true,
       const Option<DomainInfo>& domain = None(),
-      const Option<std::vector<Resources>>& minAllocatableResources = None());
+      const Option<std::vector<Resources>>& minAllocatableResources = None())
+        override;
 
   void recover(
       const int expectedAgentCount,
-      const hashmap<std::string, Quota>& quotas);
+      const hashmap<std::string, Quota>& quotas) override;
 
   void addFramework(
       const FrameworkID& frameworkId,
       const FrameworkInfo& frameworkInfo,
       const hashmap<SlaveID, Resources>& used,
       bool active,
-      const std::set<std::string>& suppressedRoles);
+      const std::set<std::string>& suppressedRoles) override;
 
   void removeFramework(
-      const FrameworkID& frameworkId);
+      const FrameworkID& frameworkId) override;
 
   void activateFramework(
-      const FrameworkID& frameworkId);
+      const FrameworkID& frameworkId) override;
 
   void deactivateFramework(
-      const FrameworkID& frameworkId);
+      const FrameworkID& frameworkId) override;
 
   void updateFramework(
       const FrameworkID& frameworkId,
       const FrameworkInfo& frameworkInfo,
-      const std::set<std::string>& suppressedRoles);
+      const std::set<std::string>& suppressedRoles) override;
 
   void addSlave(
       const SlaveID& slaveId,
@@ -93,84 +94,85 @@ public:
       const std::vector<SlaveInfo::Capability>& capabilities,
       const Option<Unavailability>& unavailability,
       const Resources& total,
-      const hashmap<FrameworkID, Resources>& used);
+      const hashmap<FrameworkID, Resources>& used) override;
 
   void removeSlave(
-      const SlaveID& slaveId);
+      const SlaveID& slaveId) override;
 
   void updateSlave(
       const SlaveID& slave,
       const SlaveInfo& slaveInfo,
       const Option<Resources>& total = None(),
-      const Option<std::vector<SlaveInfo::Capability>>& capabilities = None());
+      const Option<std::vector<SlaveInfo::Capability>>& capabilities = None())
+    override;
 
   void addResourceProvider(
       const SlaveID& slave,
       const Resources& total,
-      const hashmap<FrameworkID, Resources>& used);
+      const hashmap<FrameworkID, Resources>& used) override;
 
   void activateSlave(
-      const SlaveID& slaveId);
+      const SlaveID& slaveId) override;
 
   void deactivateSlave(
-      const SlaveID& slaveId);
+      const SlaveID& slaveId) override;
 
   void updateWhitelist(
-      const Option<hashset<std::string>>& whitelist);
+      const Option<hashset<std::string>>& whitelist) override;
 
   void requestResources(
       const FrameworkID& frameworkId,
-      const std::vector<Request>& requests);
+      const std::vector<Request>& requests) override;
 
   void updateAllocation(
       const FrameworkID& frameworkId,
       const SlaveID& slaveId,
       const Resources& offeredResources,
-      const std::vector<ResourceConversion>& conversions);
+      const std::vector<ResourceConversion>& conversions) override;
 
   process::Future<Nothing> updateAvailable(
       const SlaveID& slaveId,
-      const std::vector<Offer::Operation>& operations);
+      const std::vector<Offer::Operation>& operations) override;
 
   void updateUnavailability(
       const SlaveID& slaveId,
-      const Option<Unavailability>& unavailability);
+      const Option<Unavailability>& unavailability) override;
 
   void updateInverseOffer(
       const SlaveID& slaveId,
       const FrameworkID& frameworkId,
       const Option<UnavailableResources>& unavailableResources,
       const Option<mesos::allocator::InverseOfferStatus>& status,
-      const Option<Filters>& filters);
+      const Option<Filters>& filters) override;
 
   process::Future<
       hashmap<SlaveID,
               hashmap<FrameworkID, mesos::allocator::InverseOfferStatus>>>
-    getInverseOfferStatuses();
+    getInverseOfferStatuses() override;
 
   void recoverResources(
       const FrameworkID& frameworkId,
       const SlaveID& slaveId,
       const Resources& resources,
-      const Option<Filters>& filters);
+      const Option<Filters>& filters) override;
 
   void suppressOffers(
       const FrameworkID& frameworkId,
-      const std::set<std::string>& roles);
+      const std::set<std::string>& roles) override;
 
   void reviveOffers(
       const FrameworkID& frameworkId,
-      const std::set<std::string>& roles);
+      const std::set<std::string>& roles) override;
 
   void setQuota(
       const std::string& role,
-      const Quota& quota);
+      const Quota& quota) override;
 
   void removeQuota(
-      const std::string& role);
+      const std::string& role) override;
 
   void updateWeights(
-      const std::vector<WeightInfo>& weightInfos);
+      const std::vector<WeightInfo>& weightInfos) override;
 
 private:
   MesosAllocator();
@@ -187,7 +189,7 @@ class MesosAllocatorProcess : public process::Process<MesosAllocatorProcess>
 public:
   MesosAllocatorProcess() {}
 
-  virtual ~MesosAllocatorProcess() {}
+  ~MesosAllocatorProcess() override {}
 
   // Explicitly unhide 'initialize' to silence a compiler warning
   // from clang, since we overload below.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/allocator/mesos/hierarchical.cpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/mesos/hierarchical.cpp b/src/master/allocator/mesos/hierarchical.cpp
index 1f1a73f..707dd6b 100644
--- a/src/master/allocator/mesos/hierarchical.cpp
+++ b/src/master/allocator/mesos/hierarchical.cpp
@@ -81,7 +81,7 @@ class RefusedOfferFilter : public OfferFilter
 public:
   RefusedOfferFilter(const Resources& _resources) : resources(_resources) {}
 
-  virtual bool filter(const Resources& _resources) const
+  bool filter(const Resources& _resources) const override
   {
     // TODO(jieyu): Consider separating the superset check for regular
     // and revocable resources. For example, frameworks might want
@@ -122,7 +122,7 @@ public:
   RefusedInverseOfferFilter(const Timeout& _timeout)
     : timeout(_timeout) {}
 
-  virtual bool filter() const
+  bool filter() const override
   {
     // See comment above why we currently don't do more fine-grained filtering.
     return timeout.remaining() > Seconds(0);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/allocator/mesos/hierarchical.hpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/mesos/hierarchical.hpp b/src/master/allocator/mesos/hierarchical.hpp
index 0f6c0e9..702e7c0 100644
--- a/src/master/allocator/mesos/hierarchical.hpp
+++ b/src/master/allocator/mesos/hierarchical.hpp
@@ -91,7 +91,7 @@ public:
       quotaRoleSorter(quotaRoleSorterFactory()),
       frameworkSorterFactory(_frameworkSorterFactory) {}
 
-  virtual ~HierarchicalAllocatorProcess() {}
+  ~HierarchicalAllocatorProcess() override {}
 
   process::PID<HierarchicalAllocatorProcess> self() const
   {
@@ -113,32 +113,32 @@ public:
       bool filterGpuResources = true,
       const Option<DomainInfo>& domain = None(),
       const Option<std::vector<Resources>>&
-        minAllocatableResources = None());
+        minAllocatableResources = None()) override;
 
   void recover(
       const int _expectedAgentCount,
-      const hashmap<std::string, Quota>& quotas);
+      const hashmap<std::string, Quota>& quotas) override;
 
   void addFramework(
       const FrameworkID& frameworkId,
       const FrameworkInfo& frameworkInfo,
       const hashmap<SlaveID, Resources>& used,
       bool active,
-      const std::set<std::string>& suppressedRoles);
+      const std::set<std::string>& suppressedRoles) override;
 
   void removeFramework(
-      const FrameworkID& frameworkId);
+      const FrameworkID& frameworkId) override;
 
   void activateFramework(
-      const FrameworkID& frameworkId);
+      const FrameworkID& frameworkId) override;
 
   void deactivateFramework(
-      const FrameworkID& frameworkId);
+      const FrameworkID& frameworkId) override;
 
   void updateFramework(
       const FrameworkID& frameworkId,
       const FrameworkInfo& frameworkInfo,
-      const std::set<std::string>& suppressedRoles);
+      const std::set<std::string>& suppressedRoles) override;
 
   void addSlave(
       const SlaveID& slaveId,
@@ -146,84 +146,85 @@ public:
       const std::vector<SlaveInfo::Capability>& capabilities,
       const Option<Unavailability>& unavailability,
       const Resources& total,
-      const hashmap<FrameworkID, Resources>& used);
+      const hashmap<FrameworkID, Resources>& used) override;
 
   void removeSlave(
-      const SlaveID& slaveId);
+      const SlaveID& slaveId) override;
 
   void updateSlave(
       const SlaveID& slave,
       const SlaveInfo& slaveInfo,
       const Option<Resources>& total = None(),
-      const Option<std::vector<SlaveInfo::Capability>>& capabilities = None());
+      const Option<std::vector<SlaveInfo::Capability>>& capabilities = None())
+    override;
 
   void addResourceProvider(
       const SlaveID& slave,
       const Resources& total,
-      const hashmap<FrameworkID, Resources>& used);
+      const hashmap<FrameworkID, Resources>& used) override;
 
   void deactivateSlave(
-      const SlaveID& slaveId);
+      const SlaveID& slaveId) override;
 
   void activateSlave(
-      const SlaveID& slaveId);
+      const SlaveID& slaveId) override;
 
   void updateWhitelist(
-      const Option<hashset<std::string>>& whitelist);
+      const Option<hashset<std::string>>& whitelist) override;
 
   void requestResources(
       const FrameworkID& frameworkId,
-      const std::vector<Request>& requests);
+      const std::vector<Request>& requests) override;
 
   void updateAllocation(
       const FrameworkID& frameworkId,
       const SlaveID& slaveId,
       const Resources& offeredResources,
-      const std::vector<ResourceConversion>& conversions);
+      const std::vector<ResourceConversion>& conversions) override;
 
   process::Future<Nothing> updateAvailable(
       const SlaveID& slaveId,
-      const std::vector<Offer::Operation>& operations);
+      const std::vector<Offer::Operation>& operations) override;
 
   void updateUnavailability(
       const SlaveID& slaveId,
-      const Option<Unavailability>& unavailability);
+      const Option<Unavailability>& unavailability) override;
 
   void updateInverseOffer(
       const SlaveID& slaveId,
       const FrameworkID& frameworkId,
       const Option<UnavailableResources>& unavailableResources,
       const Option<mesos::allocator::InverseOfferStatus>& status,
-      const Option<Filters>& filters);
+      const Option<Filters>& filters) override;
 
   process::Future<
       hashmap<SlaveID,
       hashmap<FrameworkID, mesos::allocator::InverseOfferStatus>>>
-    getInverseOfferStatuses();
+    getInverseOfferStatuses() override;
 
   void recoverResources(
       const FrameworkID& frameworkId,
       const SlaveID& slaveId,
       const Resources& resources,
-      const Option<Filters>& filters);
+      const Option<Filters>& filters) override;
 
   void suppressOffers(
       const FrameworkID& frameworkId,
-      const std::set<std::string>& roles);
+      const std::set<std::string>& roles) override;
 
   void reviveOffers(
       const FrameworkID& frameworkId,
-      const std::set<std::string>& roles);
+      const std::set<std::string>& roles) override;
 
   void setQuota(
       const std::string& role,
-      const Quota& quota);
+      const Quota& quota) override;
 
   void removeQuota(
-      const std::string& role);
+      const std::string& role) override;
 
   void updateWeights(
-      const std::vector<WeightInfo>& weightInfos);
+      const std::vector<WeightInfo>& weightInfos) override;
 
 protected:
   // Useful typedefs for dispatch/delay/defer to self()/this.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/allocator/sorter/drf/sorter.hpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/sorter/drf/sorter.hpp b/src/master/allocator/sorter/drf/sorter.hpp
index 8a26854..5a4fa5e 100644
--- a/src/master/allocator/sorter/drf/sorter.hpp
+++ b/src/master/allocator/sorter/drf/sorter.hpp
@@ -49,61 +49,62 @@ public:
       const process::UPID& allocator,
       const std::string& metricsPrefix);
 
-  virtual ~DRFSorter();
+  ~DRFSorter() override;
 
-  virtual void initialize(
-      const Option<std::set<std::string>>& fairnessExcludeResourceNames);
+  void initialize(
+      const Option<std::set<std::string>>& fairnessExcludeResourceNames)
+    override;
 
-  virtual void add(const std::string& clientPath);
+  void add(const std::string& clientPath) override;
 
-  virtual void remove(const std::string& clientPath);
+  void remove(const std::string& clientPath) override;
 
-  virtual void activate(const std::string& clientPath);
+  void activate(const std::string& clientPath) override;
 
-  virtual void deactivate(const std::string& clientPath);
+  void deactivate(const std::string& clientPath) override;
 
-  virtual void updateWeight(const std::string& path, double weight);
+  void updateWeight(const std::string& path, double weight) override;
 
-  virtual void allocated(
+  void allocated(
       const std::string& clientPath,
       const SlaveID& slaveId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual void update(
+  void update(
       const std::string& clientPath,
       const SlaveID& slaveId,
       const Resources& oldAllocation,
-      const Resources& newAllocation);
+      const Resources& newAllocation) override;
 
-  virtual void unallocated(
+  void unallocated(
       const std::string& clientPath,
       const SlaveID& slaveId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual const hashmap<SlaveID, Resources>& allocation(
-      const std::string& clientPath) const;
+  const hashmap<SlaveID, Resources>& allocation(
+      const std::string& clientPath) const override;
 
-  virtual const Resources& allocationScalarQuantities(
-      const std::string& clientPath) const;
+  const Resources& allocationScalarQuantities(
+      const std::string& clientPath) const override;
 
-  virtual hashmap<std::string, Resources> allocation(
-      const SlaveID& slaveId) const;
+  hashmap<std::string, Resources> allocation(
+      const SlaveID& slaveId) const override;
 
-  virtual Resources allocation(
+  Resources allocation(
       const std::string& clientPath,
-      const SlaveID& slaveId) const;
+      const SlaveID& slaveId) const override;
 
-  virtual const Resources& totalScalarQuantities() const;
+  const Resources& totalScalarQuantities() const override;
 
-  virtual void add(const SlaveID& slaveId, const Resources& resources);
+  void add(const SlaveID& slaveId, const Resources& resources) override;
 
-  virtual void remove(const SlaveID& slaveId, const Resources& resources);
+  void remove(const SlaveID& slaveId, const Resources& resources) override;
 
-  virtual std::vector<std::string> sort();
+  std::vector<std::string> sort() override;
 
-  virtual bool contains(const std::string& clientPath) const;
+  bool contains(const std::string& clientPath) const override;
 
-  virtual size_t count() const;
+  size_t count() const override;
 
 private:
   // A node in the sorter's tree.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/allocator/sorter/random/sorter.hpp
----------------------------------------------------------------------
diff --git a/src/master/allocator/sorter/random/sorter.hpp b/src/master/allocator/sorter/random/sorter.hpp
index 6e22cf6..7f6c0de 100644
--- a/src/master/allocator/sorter/random/sorter.hpp
+++ b/src/master/allocator/sorter/random/sorter.hpp
@@ -48,66 +48,67 @@ public:
       const process::UPID& allocator,
       const std::string& metricsPrefix);
 
-  virtual ~RandomSorter();
+  ~RandomSorter() override;
 
-  virtual void initialize(
-      const Option<std::set<std::string>>& fairnessExcludeResourceNames);
+  void initialize(
+      const Option<std::set<std::string>>& fairnessExcludeResourceNames)
+    override;
 
-  virtual void add(const std::string& clientPath);
+  void add(const std::string& clientPath) override;
 
-  virtual void remove(const std::string& clientPath);
+  void remove(const std::string& clientPath) override;
 
-  virtual void activate(const std::string& clientPath);
+  void activate(const std::string& clientPath) override;
 
-  virtual void deactivate(const std::string& clientPath);
+  void deactivate(const std::string& clientPath) override;
 
-  virtual void updateWeight(const std::string& path, double weight);
+  void updateWeight(const std::string& path, double weight) override;
 
-  virtual void allocated(
+  void allocated(
       const std::string& clientPath,
       const SlaveID& slaveId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual void update(
+  void update(
       const std::string& clientPath,
       const SlaveID& slaveId,
       const Resources& oldAllocation,
-      const Resources& newAllocation);
+      const Resources& newAllocation) override;
 
-  virtual void unallocated(
+  void unallocated(
       const std::string& clientPath,
       const SlaveID& slaveId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual const hashmap<SlaveID, Resources>& allocation(
-      const std::string& clientPath) const;
+  const hashmap<SlaveID, Resources>& allocation(
+      const std::string& clientPath) const override;
 
-  virtual const Resources& allocationScalarQuantities(
-      const std::string& clientPath) const;
+  const Resources& allocationScalarQuantities(
+      const std::string& clientPath) const override;
 
-  virtual hashmap<std::string, Resources> allocation(
-      const SlaveID& slaveId) const;
+  hashmap<std::string, Resources> allocation(
+      const SlaveID& slaveId) const override;
 
-  virtual Resources allocation(
+  Resources allocation(
       const std::string& clientPath,
-      const SlaveID& slaveId) const;
+      const SlaveID& slaveId) const override;
 
-  virtual const Resources& totalScalarQuantities() const;
+  const Resources& totalScalarQuantities() const override;
 
-  virtual void add(const SlaveID& slaveId, const Resources& resources);
+  void add(const SlaveID& slaveId, const Resources& resources) override;
 
-  virtual void remove(const SlaveID& slaveId, const Resources& resources);
+  void remove(const SlaveID& slaveId, const Resources& resources) override;
 
   // This will perform a weighted random shuffle on each call.
   //
   // TODO(bmahler): Unlike the DRF sorter, the allocator ideally would
   // not call `sort()` for every agent, but rather loop through a single
   // weighted shuffle before re-shuffling..
-  virtual std::vector<std::string> sort();
+  std::vector<std::string> sort() override;
 
-  virtual bool contains(const std::string& clientPath) const;
+  bool contains(const std::string& clientPath) const override;
 
-  virtual size_t count() const;
+  size_t count() const override;
 
 private:
   // A node in the sorter's tree.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/contender/standalone.hpp
----------------------------------------------------------------------
diff --git a/src/master/contender/standalone.hpp b/src/master/contender/standalone.hpp
index 7f68d27..4b5f933 100644
--- a/src/master/contender/standalone.hpp
+++ b/src/master/contender/standalone.hpp
@@ -38,15 +38,15 @@ public:
     : initialized(false),
       promise(nullptr) {}
 
-  virtual ~StandaloneMasterContender();
+  ~StandaloneMasterContender() override;
 
   // MasterContender implementation.
-  virtual void initialize(const MasterInfo& masterInfo);
+  void initialize(const MasterInfo& masterInfo) override;
 
   // In this basic implementation the outer Future directly returns
   // and inner Future stays pending because there is only one
   // contender in the contest.
-  virtual process::Future<process::Future<Nothing>> contend();
+  process::Future<process::Future<Nothing>> contend() override;
 
 private:
   bool initialized;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/contender/zookeeper.cpp
----------------------------------------------------------------------
diff --git a/src/master/contender/zookeeper.cpp b/src/master/contender/zookeeper.cpp
index 9a0601a..d62ef83 100644
--- a/src/master/contender/zookeeper.cpp
+++ b/src/master/contender/zookeeper.cpp
@@ -51,7 +51,7 @@ public:
       const Duration& sessionTimeout);
 
   explicit ZooKeeperMasterContenderProcess(Owned<zookeeper::Group> group);
-  virtual ~ZooKeeperMasterContenderProcess();
+  ~ZooKeeperMasterContenderProcess() override;
 
   // Explicitly use 'initialize' since we're overloading below.
   using process::ProcessBase::initialize;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/contender/zookeeper.hpp
----------------------------------------------------------------------
diff --git a/src/master/contender/zookeeper.hpp b/src/master/contender/zookeeper.hpp
index d280222..698c5d7 100644
--- a/src/master/contender/zookeeper.hpp
+++ b/src/master/contender/zookeeper.hpp
@@ -50,11 +50,11 @@ public:
 
   explicit ZooKeeperMasterContender(process::Owned<zookeeper::Group> group);
 
-  virtual ~ZooKeeperMasterContender();
+  ~ZooKeeperMasterContender() override;
 
   // MasterContender implementation.
-  virtual void initialize(const MasterInfo& masterInfo);
-  virtual process::Future<process::Future<Nothing>> contend();
+  void initialize(const MasterInfo& masterInfo) override;
+  process::Future<process::Future<Nothing>> contend() override;
 
 private:
   ZooKeeperMasterContenderProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/detector/standalone.cpp
----------------------------------------------------------------------
diff --git a/src/master/detector/standalone.cpp b/src/master/detector/standalone.cpp
index 2b7c35c..caefd16 100644
--- a/src/master/detector/standalone.cpp
+++ b/src/master/detector/standalone.cpp
@@ -46,7 +46,7 @@ public:
     : ProcessBase(ID::generate("standalone-master-detector")),
       leader(_leader) {}
 
-  ~StandaloneMasterDetectorProcess()
+  ~StandaloneMasterDetectorProcess() override
   {
     discardPromises(&promises);
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/detector/standalone.hpp
----------------------------------------------------------------------
diff --git a/src/master/detector/standalone.hpp b/src/master/detector/standalone.hpp
index bbe3ce9..708497f 100644
--- a/src/master/detector/standalone.hpp
+++ b/src/master/detector/standalone.hpp
@@ -48,7 +48,7 @@ public:
   // Same as above but takes UPID as the parameter.
   explicit StandaloneMasterDetector(const process::UPID& leader);
 
-  virtual ~StandaloneMasterDetector();
+  ~StandaloneMasterDetector() override;
 
   // Appoint the leading master so it can be *detected*.
   void appoint(const Option<MasterInfo>& leader);
@@ -56,8 +56,8 @@ public:
   // Same as above but takes 'UPID' as the parameter.
   void appoint(const process::UPID& leader);
 
-  virtual process::Future<Option<MasterInfo>> detect(
-      const Option<MasterInfo>& previous = None());
+  process::Future<Option<MasterInfo>> detect(
+      const Option<MasterInfo>& previous = None()) override;
 
 private:
   StandaloneMasterDetectorProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/detector/zookeeper.cpp
----------------------------------------------------------------------
diff --git a/src/master/detector/zookeeper.cpp b/src/master/detector/zookeeper.cpp
index 09ae47c..93fe7d9 100644
--- a/src/master/detector/zookeeper.cpp
+++ b/src/master/detector/zookeeper.cpp
@@ -61,9 +61,9 @@ public:
       const Duration& sessionTimeout);
 
   explicit ZooKeeperMasterDetectorProcess(Owned<Group> group);
-  ~ZooKeeperMasterDetectorProcess();
+  ~ZooKeeperMasterDetectorProcess() override;
 
-  virtual void initialize();
+  void initialize() override;
   Future<Option<MasterInfo>> detect(const Option<MasterInfo>& previous);
 
 private:

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/detector/zookeeper.hpp
----------------------------------------------------------------------
diff --git a/src/master/detector/zookeeper.hpp b/src/master/detector/zookeeper.hpp
index 5d0435e..045a9be 100644
--- a/src/master/detector/zookeeper.hpp
+++ b/src/master/detector/zookeeper.hpp
@@ -52,14 +52,14 @@ public:
 
   // Used for testing purposes.
   explicit ZooKeeperMasterDetector(process::Owned<zookeeper::Group> group);
-  virtual ~ZooKeeperMasterDetector();
+  ~ZooKeeperMasterDetector() override;
 
   // MasterDetector implementation.
   // The detector transparently tries to recover from retryable
   // errors until the group session expires, in which case the Future
   // returns None.
-  virtual process::Future<Option<MasterInfo>> detect(
-      const Option<MasterInfo>& previous = None());
+  process::Future<Option<MasterInfo>> detect(
+      const Option<MasterInfo>& previous = None()) override;
 
 private:
   ZooKeeperMasterDetectorProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/maintenance.hpp
----------------------------------------------------------------------
diff --git a/src/master/maintenance.hpp b/src/master/maintenance.hpp
index 7021f91..388d9e7 100644
--- a/src/master/maintenance.hpp
+++ b/src/master/maintenance.hpp
@@ -54,7 +54,7 @@ public:
       const mesos::maintenance::Schedule& _schedule);
 
 protected:
-  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const mesos::maintenance::Schedule schedule;
@@ -75,7 +75,7 @@ public:
       const google::protobuf::RepeatedPtrField<MachineID>& _ids);
 
 protected:
-  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   hashset<MachineID> ids;
@@ -95,7 +95,7 @@ public:
       const google::protobuf::RepeatedPtrField<MachineID>& _ids);
 
 protected:
-  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   hashset<MachineID> ids;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/master.cpp
----------------------------------------------------------------------
diff --git a/src/master/master.cpp b/src/master/master.cpp
index 745bf56..2af976f 100644
--- a/src/master/master.cpp
+++ b/src/master/master.cpp
@@ -190,7 +190,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     ping();
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/master.hpp
----------------------------------------------------------------------
diff --git a/src/master/master.hpp b/src/master/master.hpp
index a0ac807..0353d55 100644
--- a/src/master/master.hpp
+++ b/src/master/master.hpp
@@ -389,7 +389,7 @@ public:
       delay(_delay) {}
 
 protected:
-  virtual void initialize() override
+  void initialize() override
   {
     if (delay.isSome()) {
       process::delay(
@@ -436,7 +436,7 @@ public:
            slaveRemovalLimiter,
          const Flags& flags = Flags());
 
-  virtual ~Master();
+  ~Master() override;
 
   // Message handlers.
   void submitScheduler(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/quota.hpp
----------------------------------------------------------------------
diff --git a/src/master/quota.hpp b/src/master/quota.hpp
index 7f43996..64b59c0 100644
--- a/src/master/quota.hpp
+++ b/src/master/quota.hpp
@@ -64,7 +64,7 @@ public:
   explicit UpdateQuota(const mesos::quota::QuotaInfo& quotaInfo);
 
 protected:
-  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const mesos::quota::QuotaInfo info;
@@ -83,7 +83,7 @@ public:
   explicit RemoveQuota(const std::string& _role);
 
 protected:
-  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const std::string role;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/registrar.cpp
----------------------------------------------------------------------
diff --git a/src/master/registrar.cpp b/src/master/registrar.cpp
index cc19126..7a73a7a 100644
--- a/src/master/registrar.cpp
+++ b/src/master/registrar.cpp
@@ -96,14 +96,14 @@ public:
       flags(_flags),
       authenticationRealm(_authenticationRealm) {}
 
-  virtual ~RegistrarProcess() {}
+  ~RegistrarProcess() override {}
 
   // Registrar implementation.
   Future<Registry> recover(const MasterInfo& info);
   Future<bool> apply(Owned<RegistryOperation> operation);
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
       route(
           "/registry",
@@ -127,7 +127,7 @@ private:
     explicit Recover(const MasterInfo& _info) : info(_info) {}
 
   protected:
-    virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs)
+    Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override
     {
       registry->mutable_master()->mutable_info()->CopyFrom(info);
       return true; // Mutation.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/registrar.hpp
----------------------------------------------------------------------
diff --git a/src/master/registrar.hpp b/src/master/registrar.hpp
index 70a24fd..4f7c7ce 100644
--- a/src/master/registrar.hpp
+++ b/src/master/registrar.hpp
@@ -46,7 +46,7 @@ class RegistryOperation : public process::Promise<bool>
 {
 public:
   RegistryOperation() : success(false) {}
-  virtual ~RegistryOperation() {}
+  ~RegistryOperation() override {}
 
   // Attempts to invoke the operation on the registry object.
   // Aided by accumulator(s):

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/registry_operations.hpp
----------------------------------------------------------------------
diff --git a/src/master/registry_operations.hpp b/src/master/registry_operations.hpp
index c07268e..5a3010d 100644
--- a/src/master/registry_operations.hpp
+++ b/src/master/registry_operations.hpp
@@ -34,7 +34,7 @@ public:
   explicit AdmitSlave(const SlaveInfo& _info);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   SlaveInfo info;
@@ -48,7 +48,7 @@ public:
   explicit UpdateSlave(const SlaveInfo& _info);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   SlaveInfo info;
@@ -65,7 +65,7 @@ public:
       const TimeInfo& _unreachableTime);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const SlaveInfo info;
@@ -85,7 +85,7 @@ public:
   explicit MarkSlaveReachable(const SlaveInfo& _info);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   SlaveInfo info;
@@ -100,7 +100,8 @@ public:
       const hashset<SlaveID>& _toRemoveGone);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* /*slaveIDs*/);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* /*slaveIDs*/)
+    override;
 
 private:
   const hashset<SlaveID> toRemoveUnreachable;
@@ -114,7 +115,7 @@ public:
   explicit RemoveSlave(const SlaveInfo& _info);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const SlaveInfo info;
@@ -129,7 +130,7 @@ public:
   MarkSlaveGone(const SlaveID& _id, const TimeInfo& _goneTime);
 
 protected:
-  virtual Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const SlaveID id;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/master/weights.hpp
----------------------------------------------------------------------
diff --git a/src/master/weights.hpp b/src/master/weights.hpp
index 0ce7a65..6d66e5f 100644
--- a/src/master/weights.hpp
+++ b/src/master/weights.hpp
@@ -53,7 +53,7 @@ public:
   explicit UpdateWeights(const std::vector<WeightInfo>& _weightInfos);
 
 protected:
-  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs);
+  Try<bool> perform(Registry* registry, hashset<SlaveID>* slaveIDs) override;
 
 private:
   const std::vector<WeightInfo> weightInfos;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/resource_provider/registrar.hpp
----------------------------------------------------------------------
diff --git a/src/resource_provider/registrar.hpp b/src/resource_provider/registrar.hpp
index 458108a..1cc4014 100644
--- a/src/resource_provider/registrar.hpp
+++ b/src/resource_provider/registrar.hpp
@@ -48,7 +48,7 @@ public:
   class Operation : public process::Promise<bool>
   {
   public:
-    virtual ~Operation() = default;
+    ~Operation() override = default;
 
     // Attempts to invoke the operation on the registry object.
     //

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/resource_provider/storage/disk_profile_adaptor.cpp
----------------------------------------------------------------------
diff --git a/src/resource_provider/storage/disk_profile_adaptor.cpp b/src/resource_provider/storage/disk_profile_adaptor.cpp
index 7c3aa16..b4551a6 100644
--- a/src/resource_provider/storage/disk_profile_adaptor.cpp
+++ b/src/resource_provider/storage/disk_profile_adaptor.cpp
@@ -46,16 +46,16 @@ class DefaultDiskProfileAdaptor : public DiskProfileAdaptor
 public:
   DefaultDiskProfileAdaptor() {}
 
-  ~DefaultDiskProfileAdaptor() {}
+  ~DefaultDiskProfileAdaptor() override {}
 
-  virtual Future<DiskProfileAdaptor::ProfileInfo> translate(
+  Future<DiskProfileAdaptor::ProfileInfo> translate(
       const string& profile,
       const ResourceProviderInfo& resourceProviderInfo) override
   {
     return Failure("By default, disk profiles are not supported");
   }
 
-  virtual Future<hashset<string>> watch(
+  Future<hashset<string>> watch(
       const hashset<string>& knownProfiles,
       const ResourceProviderInfo& resourceProviderInfo) override
   {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
----------------------------------------------------------------------
diff --git a/src/resource_provider/storage/uri_disk_profile_adaptor.hpp b/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
index 2623e78..7e610d3 100644
--- a/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
+++ b/src/resource_provider/storage/uri_disk_profile_adaptor.hpp
@@ -184,13 +184,13 @@ public:
 
   UriDiskProfileAdaptor(const Flags& _flags);
 
-  virtual ~UriDiskProfileAdaptor();
+  ~UriDiskProfileAdaptor() override;
 
-  virtual process::Future<DiskProfileAdaptor::ProfileInfo> translate(
+  process::Future<DiskProfileAdaptor::ProfileInfo> translate(
       const std::string& profile,
       const ResourceProviderInfo& resourceProviderInfo) override;
 
-  virtual process::Future<hashset<std::string>> watch(
+  process::Future<hashset<std::string>> watch(
       const hashset<std::string>& knownProfiles,
       const ResourceProviderInfo& resourceProviderInfo) override;
 
@@ -206,7 +206,7 @@ class UriDiskProfileAdaptorProcess :
 public:
   UriDiskProfileAdaptorProcess(const UriDiskProfileAdaptor::Flags& _flags);
 
-  virtual void initialize() override;
+  void initialize() override;
 
   process::Future<DiskProfileAdaptor::ProfileInfo> translate(
       const std::string& profile,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/sched/sched.cpp
----------------------------------------------------------------------
diff --git a/src/sched/sched.cpp b/src/sched/sched.cpp
index baa6b0c..4de7622 100644
--- a/src/sched/sched.cpp
+++ b/src/sched/sched.cpp
@@ -232,13 +232,13 @@ public:
     LOG(INFO) << "Version: " << MESOS_VERSION;
   }
 
-  virtual ~SchedulerProcess()
+  ~SchedulerProcess() override
   {
     delete authenticatee;
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     install<Event>(&SchedulerProcess::receive);
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/scheduler/scheduler.cpp
----------------------------------------------------------------------
diff --git a/src/scheduler/scheduler.cpp b/src/scheduler/scheduler.cpp
index 238f869..4711529 100644
--- a/src/scheduler/scheduler.cpp
+++ b/src/scheduler/scheduler.cpp
@@ -210,7 +210,7 @@ public:
     }
   }
 
-  virtual ~MesosProcess()
+  ~MesosProcess() override
   {
     disconnect();
 
@@ -325,7 +325,7 @@ public:
   }
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     // Initialize modules.
     if (flags.modules.isSome() && flags.modulesDir.isSome()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/secret/resolver.cpp
----------------------------------------------------------------------
diff --git a/src/secret/resolver.cpp b/src/secret/resolver.cpp
index 13d45d0..6a44e90 100644
--- a/src/secret/resolver.cpp
+++ b/src/secret/resolver.cpp
@@ -44,9 +44,9 @@ class DefaultSecretResolver : public SecretResolver
 public:
   DefaultSecretResolver() {}
 
-  ~DefaultSecretResolver() {}
+  ~DefaultSecretResolver() override {}
 
-  virtual process::Future<Secret::Value> resolve(const Secret& secret) const
+  process::Future<Secret::Value> resolve(const Secret& secret) const override
   {
     if (secret.has_reference()) {
       return Failure("Default secret resolver cannot resolve references");

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/container_loggers/lib_logrotate.hpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/lib_logrotate.hpp b/src/slave/container_loggers/lib_logrotate.hpp
index d0abaa4..2a2cd37 100644
--- a/src/slave/container_loggers/lib_logrotate.hpp
+++ b/src/slave/container_loggers/lib_logrotate.hpp
@@ -192,12 +192,12 @@ class LogrotateContainerLogger : public mesos::slave::ContainerLogger
 public:
   LogrotateContainerLogger(const Flags& _flags);
 
-  virtual ~LogrotateContainerLogger();
+  ~LogrotateContainerLogger() override;
 
   // This is a noop. The logrotate container logger has nothing to initialize.
-  virtual Try<Nothing> initialize() override;
+  Try<Nothing> initialize() override;
 
-  virtual process::Future<mesos::slave::ContainerIO> prepare(
+  process::Future<mesos::slave::ContainerIO> prepare(
       const ContainerID& containerId,
       const mesos::slave::ContainerConfig& containerConfig) override;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/container_loggers/logrotate.cpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/logrotate.cpp b/src/slave/container_loggers/logrotate.cpp
index ff02130..b989de3 100644
--- a/src/slave/container_loggers/logrotate.cpp
+++ b/src/slave/container_loggers/logrotate.cpp
@@ -63,7 +63,7 @@ public:
     buffer = new char[length];
   }
 
-  virtual ~LogrotateLoggerProcess()
+  ~LogrotateLoggerProcess() override
   {
     if (buffer != nullptr) {
       delete[] buffer;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/container_loggers/sandbox.hpp
----------------------------------------------------------------------
diff --git a/src/slave/container_loggers/sandbox.hpp b/src/slave/container_loggers/sandbox.hpp
index 784b118..ebc665c 100644
--- a/src/slave/container_loggers/sandbox.hpp
+++ b/src/slave/container_loggers/sandbox.hpp
@@ -52,15 +52,15 @@ class SandboxContainerLogger : public mesos::slave::ContainerLogger
 {
 public:
   SandboxContainerLogger();
-  virtual ~SandboxContainerLogger();
+  ~SandboxContainerLogger() override;
 
   // This is a noop. The sandbox container logger has nothing to initialize.
-  virtual Try<Nothing> initialize() override;
+  Try<Nothing> initialize() override;
 
   // Tells the subprocess to redirect the container's stdout and
   // stderr to separate "stdout" and "stderr" files in the sandbox.
   // The `path`, `argv`, and `environment` are not changed.
-  virtual process::Future<mesos::slave::ContainerIO> prepare(
+  process::Future<mesos::slave::ContainerIO> prepare(
       const ContainerID& containerId,
       const mesos::slave::ContainerConfig& containerConfig) override;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/composing.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/composing.cpp b/src/slave/containerizer/composing.cpp
index 1180eb4..5216458 100644
--- a/src/slave/containerizer/composing.cpp
+++ b/src/slave/containerizer/composing.cpp
@@ -58,7 +58,7 @@ public:
     : ProcessBase(process::ID::generate("composing-containerizer")),
       containerizers_(containerizers) {}
 
-  virtual ~ComposingContainerizerProcess();
+  ~ComposingContainerizerProcess() override;
 
   Future<Nothing> recover(
       const Option<state::SlaveState>& state);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/composing.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/composing.hpp b/src/slave/containerizer/composing.hpp
index 15b78a9..0f838fa 100644
--- a/src/slave/containerizer/composing.hpp
+++ b/src/slave/containerizer/composing.hpp
@@ -49,46 +49,46 @@ public:
   ComposingContainerizer(
       const std::vector<Containerizer*>& containerizers);
 
-  virtual ~ComposingContainerizer();
+  ~ComposingContainerizer() override;
 
-  virtual process::Future<Nothing> recover(
-      const Option<state::SlaveState>& state);
+  process::Future<Nothing> recover(
+      const Option<state::SlaveState>& state) override;
 
-  virtual process::Future<Containerizer::LaunchResult> launch(
+  process::Future<Containerizer::LaunchResult> launch(
       const ContainerID& containerId,
       const mesos::slave::ContainerConfig& containerConfig,
       const std::map<std::string, std::string>& environment,
-      const Option<std::string>& pidCheckpointPath);
+      const Option<std::string>& pidCheckpointPath) override;
 
-  virtual process::Future<process::http::Connection> attach(
-      const ContainerID& containerId);
+  process::Future<process::http::Connection> attach(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerTermination>> wait(
-      const ContainerID& containerId);
+  process::Future<Option<mesos::slave::ContainerTermination>> wait(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerTermination>> destroy(
-      const ContainerID& containerId);
+  process::Future<Option<mesos::slave::ContainerTermination>> destroy(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<bool> kill(
+  process::Future<bool> kill(
       const ContainerID& containerId,
-      int signal);
+      int signal) override;
 
-  virtual process::Future<hashset<ContainerID>> containers();
+  process::Future<hashset<ContainerID>> containers() override;
 
-  virtual process::Future<Nothing> remove(const ContainerID& containerId);
+  process::Future<Nothing> remove(const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> pruneImages(
-      const std::vector<Image>& excludedImages);
+  process::Future<Nothing> pruneImages(
+      const std::vector<Image>& excludedImages) override;
 
 private:
   ComposingContainerizerProcess* process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/docker.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/docker.hpp b/src/slave/containerizer/docker.hpp
index 438d96a..ca41f3b 100644
--- a/src/slave/containerizer/docker.hpp
+++ b/src/slave/containerizer/docker.hpp
@@ -84,37 +84,37 @@ public:
   DockerContainerizer(
       const process::Owned<DockerContainerizerProcess>& _process);
 
-  virtual ~DockerContainerizer();
+  ~DockerContainerizer() override;
 
-  virtual process::Future<Nothing> recover(
-      const Option<state::SlaveState>& state);
+  process::Future<Nothing> recover(
+      const Option<state::SlaveState>& state) override;
 
-  virtual process::Future<Containerizer::LaunchResult> launch(
+  process::Future<Containerizer::LaunchResult> launch(
       const ContainerID& containerId,
       const mesos::slave::ContainerConfig& containerConfig,
       const std::map<std::string, std::string>& environment,
-      const Option<std::string>& pidCheckpointPath);
+      const Option<std::string>& pidCheckpointPath) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerTermination>> wait(
-      const ContainerID& containerId);
+  process::Future<Option<mesos::slave::ContainerTermination>> wait(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerTermination>> destroy(
-      const ContainerID& containerId);
+  process::Future<Option<mesos::slave::ContainerTermination>> destroy(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<hashset<ContainerID>> containers();
+  process::Future<hashset<ContainerID>> containers() override;
 
-  virtual process::Future<Nothing> pruneImages(
-      const std::vector<Image>& excludedImages);
+  process::Future<Nothing> pruneImages(
+      const std::vector<Image>& excludedImages) override;
 
 private:
   process::Owned<DockerContainerizerProcess> process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/fetcher_process.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/fetcher_process.hpp b/src/slave/containerizer/fetcher_process.hpp
index 56fecf2..56ed6e5 100644
--- a/src/slave/containerizer/fetcher_process.hpp
+++ b/src/slave/containerizer/fetcher_process.hpp
@@ -42,7 +42,7 @@ class FetcherProcess : public process::Process<FetcherProcess>
 {
 public:
   explicit FetcherProcess(const Flags& _flags);
-  virtual ~FetcherProcess();
+  ~FetcherProcess() override;
 
   process::Future<Nothing> fetch(
       const ContainerID& containerId,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/containerizer.hpp b/src/slave/containerizer/mesos/containerizer.hpp
index c814d8f..7711d46 100644
--- a/src/slave/containerizer/mesos/containerizer.hpp
+++ b/src/slave/containerizer/mesos/containerizer.hpp
@@ -79,46 +79,46 @@ public:
       const process::Shared<Provisioner>& provisioner,
       const std::vector<process::Owned<mesos::slave::Isolator>>& isolators);
 
-  virtual ~MesosContainerizer();
+  ~MesosContainerizer() override;
 
-  virtual process::Future<Nothing> recover(
-      const Option<state::SlaveState>& state);
+  process::Future<Nothing> recover(
+      const Option<state::SlaveState>& state) override;
 
-  virtual process::Future<Containerizer::LaunchResult> launch(
+  process::Future<Containerizer::LaunchResult> launch(
       const ContainerID& containerId,
       const mesos::slave::ContainerConfig& containerConfig,
       const std::map<std::string, std::string>& environment,
-      const Option<std::string>& pidCheckpointPath);
+      const Option<std::string>& pidCheckpointPath) override;
 
-  virtual process::Future<process::http::Connection> attach(
-      const ContainerID& containerId);
+  process::Future<process::http::Connection> attach(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerTermination>> wait(
-      const ContainerID& containerId);
+  process::Future<Option<mesos::slave::ContainerTermination>> wait(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerTermination>> destroy(
-      const ContainerID& containerId);
+  process::Future<Option<mesos::slave::ContainerTermination>> destroy(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<bool> kill(
+  process::Future<bool> kill(
       const ContainerID& containerId,
-      int signal);
+      int signal) override;
 
-  virtual process::Future<hashset<ContainerID>> containers();
+  process::Future<hashset<ContainerID>> containers() override;
 
-  virtual process::Future<Nothing> remove(const ContainerID& containerId);
+  process::Future<Nothing> remove(const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> pruneImages(
-      const std::vector<Image>& excludedImages);
+  process::Future<Nothing> pruneImages(
+      const std::vector<Image>& excludedImages) override;
 
 private:
   explicit MesosContainerizer(
@@ -147,7 +147,7 @@ public:
       provisioner(_provisioner),
       isolators(_isolators) {}
 
-  virtual ~MesosContainerizerProcess() {}
+  ~MesosContainerizerProcess() override {}
 
   virtual process::Future<Nothing> recover(
       const Option<state::SlaveState>& state);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/io/switchboard.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/io/switchboard.cpp b/src/slave/containerizer/mesos/io/switchboard.cpp
index 9c6b8a4..52b0e52 100644
--- a/src/slave/containerizer/mesos/io/switchboard.cpp
+++ b/src/slave/containerizer/mesos/io/switchboard.cpp
@@ -948,7 +948,7 @@ public:
       bool waitForConnection,
       Option<Duration> heartbeatInterval);
 
-  virtual void finalize();
+  void finalize() override;
 
   Future<Nothing> run();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/io/switchboard.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/io/switchboard.hpp b/src/slave/containerizer/mesos/io/switchboard.hpp
index e52dfe3..b51112e 100644
--- a/src/slave/containerizer/mesos/io/switchboard.hpp
+++ b/src/slave/containerizer/mesos/io/switchboard.hpp
@@ -57,24 +57,24 @@ public:
       const Flags& flags,
       bool local);
 
-  virtual ~IOSwitchboard();
+  ~IOSwitchboard() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
     const std::vector<mesos::slave::ContainerState>& states,
-    const hashset<ContainerID>& orphans);
+    const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<mesos::slave::ContainerLimitation> watch(
-    const ContainerID& containerId);
+  process::Future<mesos::slave::ContainerLimitation> watch(
+    const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
   // Connect to the `IOSwitchboard` associated with `containerId`.
   process::Future<process::http::Connection> connect(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolator.hpp b/src/slave/containerizer/mesos/isolator.hpp
index d56440c..a558679 100644
--- a/src/slave/containerizer/mesos/isolator.hpp
+++ b/src/slave/containerizer/mesos/isolator.hpp
@@ -39,38 +39,38 @@ class MesosIsolator : public mesos::slave::Isolator
 {
 public:
   explicit MesosIsolator(process::Owned<MesosIsolatorProcess> process);
-  virtual ~MesosIsolator();
+  ~MesosIsolator() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> isolate(
+  process::Future<Nothing> isolate(
       const ContainerID& containerId,
-      pid_t pid);
+      pid_t pid) override;
 
-  virtual process::Future<mesos::slave::ContainerLimitation> watch(
-      const ContainerID& containerId);
+  process::Future<mesos::slave::ContainerLimitation> watch(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   process::Owned<MesosIsolatorProcess> process;
@@ -80,7 +80,7 @@ private:
 class MesosIsolatorProcess : public process::Process<MesosIsolatorProcess>
 {
 public:
-  virtual ~MesosIsolatorProcess() {}
+  ~MesosIsolatorProcess() override {}
 
   virtual bool supportsNesting()
   {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/appc/runtime.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/appc/runtime.hpp b/src/slave/containerizer/mesos/isolators/appc/runtime.hpp
index 2e9c7e4..b74f06d 100644
--- a/src/slave/containerizer/mesos/isolators/appc/runtime.hpp
+++ b/src/slave/containerizer/mesos/isolators/appc/runtime.hpp
@@ -31,14 +31,14 @@ class AppcRuntimeIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~AppcRuntimeIsolatorProcess();
+  ~AppcRuntimeIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   AppcRuntimeIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
index cde1ace..4a1871b 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/cgroups.hpp
@@ -48,38 +48,38 @@ class CgroupsIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~CgroupsIsolatorProcess();
+  ~CgroupsIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> isolate(
+  process::Future<Nothing> isolate(
       const ContainerID& containerId,
-      pid_t pid);
+      pid_t pid) override;
 
-  virtual process::Future<mesos::slave::ContainerLimitation> watch(
-      const ContainerID& containerId);
+  process::Future<mesos::slave::ContainerLimitation> watch(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   struct Info

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
index 5ae8253..a311ab4 100644
--- a/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
+++ b/src/slave/containerizer/mesos/isolators/cgroups/subsystem.hpp
@@ -186,7 +186,7 @@ private:
 class SubsystemProcess : public process::Process<SubsystemProcess>
 {
 public:
-  virtual ~SubsystemProcess() {}
+  ~SubsystemProcess() override {}
 
   virtual std::string name() const = 0;
 


[4/7] mesos git commit: Apply the `override` keyword to Mesos.

Posted by jp...@apache.org.
http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/docker/runtime.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/docker/runtime.hpp b/src/slave/containerizer/mesos/isolators/docker/runtime.hpp
index 5c63b8f..53e7773 100644
--- a/src/slave/containerizer/mesos/isolators/docker/runtime.hpp
+++ b/src/slave/containerizer/mesos/isolators/docker/runtime.hpp
@@ -31,14 +31,14 @@ class DockerRuntimeIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~DockerRuntimeIsolatorProcess();
+  ~DockerRuntimeIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   DockerRuntimeIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
index 70f7ed2..76f1a52 100644
--- a/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
+++ b/src/slave/containerizer/mesos/isolators/docker/volume/isolator.hpp
@@ -49,21 +49,21 @@ public:
       const Flags& flags,
       const process::Owned<docker::volume::DriverClient>& client);
 
-  virtual ~DockerVolumeIsolatorProcess();
+  ~DockerVolumeIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   struct Info

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/environment_secret.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/environment_secret.hpp b/src/slave/containerizer/mesos/isolators/environment_secret.hpp
index 376a0a4..379ffd2 100644
--- a/src/slave/containerizer/mesos/isolators/environment_secret.hpp
+++ b/src/slave/containerizer/mesos/isolators/environment_secret.hpp
@@ -36,14 +36,14 @@ public:
       const Flags& flags,
       SecretResolver* secretResolver);
 
-  virtual ~EnvironmentSecretIsolatorProcess();
+  ~EnvironmentSecretIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   EnvironmentSecretIsolatorProcess(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp b/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
index 5510263..8f76944 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/linux.hpp
@@ -44,25 +44,25 @@ class LinuxFilesystemIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~LinuxFilesystemIsolatorProcess();
+  ~LinuxFilesystemIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   LinuxFilesystemIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp b/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
index b624a60..deacc90 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/posix.hpp
@@ -32,22 +32,22 @@ class PosixFilesystemIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~PosixFilesystemIsolatorProcess();
+  ~PosixFilesystemIsolatorProcess() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 protected:
   PosixFilesystemIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp b/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
index 414682b..703ba08 100644
--- a/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
+++ b/src/slave/containerizer/mesos/isolators/filesystem/shared.hpp
@@ -35,11 +35,11 @@ class SharedFilesystemIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~SharedFilesystemIsolatorProcess();
+  ~SharedFilesystemIsolatorProcess() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   SharedFilesystemIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/gpu/isolator.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/gpu/isolator.hpp b/src/slave/containerizer/mesos/isolators/gpu/isolator.hpp
index 7b29254..4645c62 100644
--- a/src/slave/containerizer/mesos/isolators/gpu/isolator.hpp
+++ b/src/slave/containerizer/mesos/isolators/gpu/isolator.hpp
@@ -84,26 +84,26 @@ public:
       const Flags& flags,
       const NvidiaComponents& components);
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   NvidiaGpuIsolatorProcess(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/linux/capabilities.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/linux/capabilities.hpp b/src/slave/containerizer/mesos/isolators/linux/capabilities.hpp
index 73e26a0..aee88a7 100644
--- a/src/slave/containerizer/mesos/isolators/linux/capabilities.hpp
+++ b/src/slave/containerizer/mesos/isolators/linux/capabilities.hpp
@@ -32,12 +32,12 @@ class LinuxCapabilitiesIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   LinuxCapabilitiesIsolatorProcess(const Flags& _flags)

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/linux/devices.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/linux/devices.hpp b/src/slave/containerizer/mesos/isolators/linux/devices.hpp
index 58128f0..c1d6712 100644
--- a/src/slave/containerizer/mesos/isolators/linux/devices.hpp
+++ b/src/slave/containerizer/mesos/isolators/linux/devices.hpp
@@ -37,10 +37,10 @@ class LinuxDevicesIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual bool supportsNesting() override;
-  virtual bool supportsStandalone() override;
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
       const mesos::slave::ContainerConfig& containerConfig) override;
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/namespaces/ipc.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/namespaces/ipc.hpp b/src/slave/containerizer/mesos/isolators/namespaces/ipc.hpp
index b3815ae..32c8883 100644
--- a/src/slave/containerizer/mesos/isolators/namespaces/ipc.hpp
+++ b/src/slave/containerizer/mesos/isolators/namespaces/ipc.hpp
@@ -30,14 +30,14 @@ class NamespacesIPCIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~NamespacesIPCIsolatorProcess() {}
+  ~NamespacesIPCIsolatorProcess() override {}
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   NamespacesIPCIsolatorProcess();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp b/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
index 5ed4a6e..42cdddf 100644
--- a/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
+++ b/src/slave/containerizer/mesos/isolators/namespaces/pid.hpp
@@ -30,14 +30,14 @@ class NamespacesPidIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~NamespacesPidIsolatorProcess() {}
+  ~NamespacesPidIsolatorProcess() override {}
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   NamespacesPidIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/network/cni/cni.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/network/cni/cni.hpp b/src/slave/containerizer/mesos/isolators/network/cni/cni.hpp
index 197b9d2..31ec4dd 100644
--- a/src/slave/containerizer/mesos/isolators/network/cni/cni.hpp
+++ b/src/slave/containerizer/mesos/isolators/network/cni/cni.hpp
@@ -49,27 +49,27 @@ class NetworkCniIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~NetworkCniIsolatorProcess() {}
+  ~NetworkCniIsolatorProcess() override {}
 
-  virtual bool supportsNesting();
+  bool supportsNesting() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> isolate(
+  process::Future<Nothing> isolate(
       const ContainerID& containerId,
-      pid_t pid);
+      pid_t pid) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   struct ContainerNetwork
@@ -250,8 +250,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace slave {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/posix.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix.hpp b/src/slave/containerizer/mesos/isolators/posix.hpp
index f7dddb2..1ff942c 100644
--- a/src/slave/containerizer/mesos/isolators/posix.hpp
+++ b/src/slave/containerizer/mesos/isolators/posix.hpp
@@ -41,9 +41,9 @@ namespace slave {
 class PosixIsolatorProcess : public MesosIsolatorProcess
 {
 public:
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& state,
-      const hashset<ContainerID>& orphans)
+      const hashset<ContainerID>& orphans) override
   {
     foreach (const mesos::slave::ContainerState& run, state) {
       // This should (almost) never occur: see comment in
@@ -62,9 +62,9 @@ public:
     return Nothing();
   }
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig)
+      const mesos::slave::ContainerConfig& containerConfig) override
   {
     if (promises.contains(containerId)) {
       return process::Failure("Container " + stringify(containerId) +
@@ -78,9 +78,9 @@ public:
     return None();
   }
 
-  virtual process::Future<Nothing> isolate(
+  process::Future<Nothing> isolate(
       const ContainerID& containerId,
-      pid_t pid)
+      pid_t pid) override
   {
     if (!promises.contains(containerId)) {
       return process::Failure("Unknown container: " + stringify(containerId));
@@ -91,8 +91,8 @@ public:
     return Nothing();
   }
 
-  virtual process::Future<mesos::slave::ContainerLimitation> watch(
-      const ContainerID& containerId)
+  process::Future<mesos::slave::ContainerLimitation> watch(
+      const ContainerID& containerId) override
   {
     if (!promises.contains(containerId)) {
       return process::Failure("Unknown container: " + stringify(containerId));
@@ -101,9 +101,9 @@ public:
     return promises[containerId]->future();
   }
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources)
+      const Resources& resources) override
   {
     if (!promises.contains(containerId)) {
       return process::Failure("Unknown container: " + stringify(containerId));
@@ -113,7 +113,7 @@ public:
     return Nothing();
   }
 
-  virtual process::Future<Nothing> cleanup(const ContainerID& containerId)
+  process::Future<Nothing> cleanup(const ContainerID& containerId) override
   {
     if (!promises.contains(containerId)) {
       VLOG(1) << "Ignoring cleanup request for unknown container "
@@ -150,8 +150,8 @@ public:
     return new MesosIsolator(process);
   }
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId)
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override
   {
     if (!pids.contains(containerId)) {
       LOG(WARNING) << "No resource usage for unknown container '"
@@ -184,8 +184,8 @@ public:
     return new MesosIsolator(process);
   }
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId)
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override
   {
     if (!pids.contains(containerId)) {
       LOG(WARNING) << "No resource usage for unknown container '"

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/posix/disk.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.cpp b/src/slave/containerizer/mesos/isolators/posix/disk.cpp
index d1e1b32..4869c72 100644
--- a/src/slave/containerizer/mesos/isolators/posix/disk.cpp
+++ b/src/slave/containerizer/mesos/isolators/posix/disk.cpp
@@ -466,7 +466,7 @@ public:
   DiskUsageCollectorProcess(const Duration& _interval)
     : ProcessBase(process::ID::generate("posix-disk-usage-collector")),
       interval(_interval) {}
-  virtual ~DiskUsageCollectorProcess() {}
+  ~DiskUsageCollectorProcess() override {}
 
   Future<Bytes> usage(
       const string& path,
@@ -492,12 +492,12 @@ public:
   }
 
 protected:
-  void initialize()
+  void initialize() override
   {
     schedule();
   }
 
-  void finalize()
+  void finalize() override
   {
     foreach (const Owned<Entry>& entry, entries) {
       if (entry->du.isSome() && entry->du->status().isPending()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/posix/disk.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix/disk.hpp b/src/slave/containerizer/mesos/isolators/posix/disk.hpp
index 0e03365..f513dfc 100644
--- a/src/slave/containerizer/mesos/isolators/posix/disk.hpp
+++ b/src/slave/containerizer/mesos/isolators/posix/disk.hpp
@@ -75,35 +75,35 @@ class PosixDiskIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~PosixDiskIsolatorProcess();
+  ~PosixDiskIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> isolate(
+  process::Future<Nothing> isolate(
       const ContainerID& containerId,
-      pid_t pid);
+      pid_t pid) override;
 
-  virtual process::Future<mesos::slave::ContainerLimitation> watch(
-      const ContainerID& containerId);
+  process::Future<mesos::slave::ContainerLimitation> watch(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> update(
+  process::Future<Nothing> update(
       const ContainerID& containerId,
-      const Resources& resources);
+      const Resources& resources) override;
 
-  virtual process::Future<ResourceStatistics> usage(
-      const ContainerID& containerId);
+  process::Future<ResourceStatistics> usage(
+      const ContainerID& containerId) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   PosixDiskIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/posix/rlimits.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/posix/rlimits.hpp b/src/slave/containerizer/mesos/isolators/posix/rlimits.hpp
index 2d95fb2..3a55c3e 100644
--- a/src/slave/containerizer/mesos/isolators/posix/rlimits.hpp
+++ b/src/slave/containerizer/mesos/isolators/posix/rlimits.hpp
@@ -32,12 +32,12 @@ class PosixRLimitsIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   PosixRLimitsIsolatorProcess(const Flags& flags) {}

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/volume/host_path.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/volume/host_path.hpp b/src/slave/containerizer/mesos/isolators/volume/host_path.hpp
index 4540aa3..4b509e9 100644
--- a/src/slave/containerizer/mesos/isolators/volume/host_path.hpp
+++ b/src/slave/containerizer/mesos/isolators/volume/host_path.hpp
@@ -30,14 +30,14 @@ class VolumeHostPathIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~VolumeHostPathIsolatorProcess();
+  ~VolumeHostPathIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   VolumeHostPathIsolatorProcess(const Flags& flags);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/volume/image.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/volume/image.hpp b/src/slave/containerizer/mesos/isolators/volume/image.hpp
index 80aa68d..706b8ff 100644
--- a/src/slave/containerizer/mesos/isolators/volume/image.hpp
+++ b/src/slave/containerizer/mesos/isolators/volume/image.hpp
@@ -41,14 +41,14 @@ public:
       const Flags& flags,
       const process::Shared<Provisioner>& provisioner);
 
-  virtual ~VolumeImageIsolatorProcess();
+  ~VolumeImageIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   VolumeImageIsolatorProcess(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/volume/sandbox_path.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/volume/sandbox_path.hpp b/src/slave/containerizer/mesos/isolators/volume/sandbox_path.hpp
index 8bf23e0..1631160 100644
--- a/src/slave/containerizer/mesos/isolators/volume/sandbox_path.hpp
+++ b/src/slave/containerizer/mesos/isolators/volume/sandbox_path.hpp
@@ -34,21 +34,21 @@ class VolumeSandboxPathIsolatorProcess : public MesosIsolatorProcess
 public:
   static Try<mesos::slave::Isolator*> create(const Flags& flags);
 
-  virtual ~VolumeSandboxPathIsolatorProcess();
+  ~VolumeSandboxPathIsolatorProcess() override;
 
-  virtual bool supportsNesting();
-  virtual bool supportsStandalone();
+  bool supportsNesting() override;
+  bool supportsStandalone() override;
 
-  virtual process::Future<Nothing> recover(
+  process::Future<Nothing> recover(
       const std::vector<mesos::slave::ContainerState>& states,
-      const hashset<ContainerID>& orphans);
+      const hashset<ContainerID>& orphans) override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
-  virtual process::Future<Nothing> cleanup(
-      const ContainerID& containerId);
+  process::Future<Nothing> cleanup(
+      const ContainerID& containerId) override;
 
 private:
   VolumeSandboxPathIsolatorProcess(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/isolators/volume/secret.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/isolators/volume/secret.hpp b/src/slave/containerizer/mesos/isolators/volume/secret.hpp
index 2680345..a166491 100644
--- a/src/slave/containerizer/mesos/isolators/volume/secret.hpp
+++ b/src/slave/containerizer/mesos/isolators/volume/secret.hpp
@@ -43,13 +43,13 @@ public:
       const Flags& flags,
       SecretResolver* secretResolver);
 
-  virtual ~VolumeSecretIsolatorProcess() {}
+  ~VolumeSecretIsolatorProcess() override {}
 
-  virtual bool supportsNesting();
+  bool supportsNesting() override;
 
-  virtual process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
+  process::Future<Option<mesos::slave::ContainerLaunchInfo>> prepare(
       const ContainerID& containerId,
-      const mesos::slave::ContainerConfig& containerConfig);
+      const mesos::slave::ContainerConfig& containerConfig) override;
 
 private:
   VolumeSecretIsolatorProcess(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/launch.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/launch.hpp b/src/slave/containerizer/mesos/launch.hpp
index 00842a5..0a6394d 100644
--- a/src/slave/containerizer/mesos/launch.hpp
+++ b/src/slave/containerizer/mesos/launch.hpp
@@ -54,8 +54,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace slave {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/launcher.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/launcher.hpp b/src/slave/containerizer/mesos/launcher.hpp
index c169b87..eef0d6f 100644
--- a/src/slave/containerizer/mesos/launcher.hpp
+++ b/src/slave/containerizer/mesos/launcher.hpp
@@ -93,12 +93,12 @@ class SubprocessLauncher : public Launcher
 public:
   static Try<Launcher*> create(const Flags& flags);
 
-  virtual ~SubprocessLauncher() {}
+  ~SubprocessLauncher() override {}
 
-  virtual process::Future<hashset<ContainerID>> recover(
-      const std::vector<mesos::slave::ContainerState>& states);
+  process::Future<hashset<ContainerID>> recover(
+      const std::vector<mesos::slave::ContainerState>& states) override;
 
-  virtual Try<pid_t> fork(
+  Try<pid_t> fork(
       const ContainerID& containerId,
       const std::string& path,
       const std::vector<std::string>& argv,
@@ -107,12 +107,12 @@ public:
       const Option<std::map<std::string, std::string>>& environment,
       const Option<int>& enterNamespaces,
       const Option<int>& cloneNamespaces,
-      const std::vector<int_fd>& whitelistFds);
+      const std::vector<int_fd>& whitelistFds) override;
 
-  virtual process::Future<Nothing> destroy(const ContainerID& containerId);
+  process::Future<Nothing> destroy(const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
 protected:
   SubprocessLauncher() {}

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/linux_launcher.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/linux_launcher.hpp b/src/slave/containerizer/mesos/linux_launcher.hpp
index a542d43..993a264 100644
--- a/src/slave/containerizer/mesos/linux_launcher.hpp
+++ b/src/slave/containerizer/mesos/linux_launcher.hpp
@@ -43,12 +43,12 @@ public:
       const std::string& cgroupsRoot,
       const ContainerID& containerId);
 
-  virtual ~LinuxLauncher();
+  ~LinuxLauncher() override;
 
-  virtual process::Future<hashset<ContainerID>> recover(
-      const std::vector<mesos::slave::ContainerState>& states);
+  process::Future<hashset<ContainerID>> recover(
+      const std::vector<mesos::slave::ContainerState>& states) override;
 
-  virtual Try<pid_t> fork(
+  Try<pid_t> fork(
       const ContainerID& containerId,
       const std::string& path,
       const std::vector<std::string>& argv,
@@ -57,12 +57,12 @@ public:
       const Option<std::map<std::string, std::string>>& environment,
       const Option<int>& enterNamespaces,
       const Option<int>& cloneNamespaces,
-      const std::vector<int_fd>& whitelistFds);
+      const std::vector<int_fd>& whitelistFds) override;
 
-  virtual process::Future<Nothing> destroy(const ContainerID& containerId);
+  process::Future<Nothing> destroy(const ContainerID& containerId) override;
 
-  virtual process::Future<ContainerStatus> status(
-      const ContainerID& containerId);
+  process::Future<ContainerStatus> status(
+      const ContainerID& containerId) override;
 
 private:
   LinuxLauncher(

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/mount.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/mount.hpp b/src/slave/containerizer/mesos/mount.hpp
index 038426d..0cbbd0b 100644
--- a/src/slave/containerizer/mesos/mount.hpp
+++ b/src/slave/containerizer/mesos/mount.hpp
@@ -50,8 +50,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace slave {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/appc/store.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/appc/store.cpp b/src/slave/containerizer/mesos/provisioner/appc/store.cpp
index afe6902..d43be3e 100644
--- a/src/slave/containerizer/mesos/provisioner/appc/store.cpp
+++ b/src/slave/containerizer/mesos/provisioner/appc/store.cpp
@@ -70,7 +70,7 @@ public:
       Owned<Cache> cache,
       Owned<Fetcher> fetcher);
 
-  ~StoreProcess() {}
+  ~StoreProcess() override {}
 
   Future<Nothing> recover();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/appc/store.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/appc/store.hpp b/src/slave/containerizer/mesos/provisioner/appc/store.hpp
index 37ef779..e70401e 100644
--- a/src/slave/containerizer/mesos/provisioner/appc/store.hpp
+++ b/src/slave/containerizer/mesos/provisioner/appc/store.hpp
@@ -37,18 +37,18 @@ public:
       const Flags& flags,
       SecretResolver* secretResolver = nullptr);
 
-  ~Store();
+  ~Store() override;
 
-  virtual process::Future<Nothing> recover();
+  process::Future<Nothing> recover() override;
 
   // TODO(xujyan): Fetching remotely is not implemented for now and
   // until then the future fails directly if the image is not in the
   // local cache.
   // TODO(xujyan): The store currently doesn't support images that
   // have dependencies and we should add it later.
-  virtual process::Future<ImageInfo> get(
+  process::Future<ImageInfo> get(
       const Image& image,
-      const std::string& backend);
+      const std::string& backend) override;
 
 private:
   Store(process::Owned<StoreProcess> process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/backends/aufs.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/backends/aufs.hpp b/src/slave/containerizer/mesos/provisioner/backends/aufs.hpp
index 65eb76b..2c25187 100644
--- a/src/slave/containerizer/mesos/provisioner/backends/aufs.hpp
+++ b/src/slave/containerizer/mesos/provisioner/backends/aufs.hpp
@@ -44,18 +44,18 @@ class AufsBackendProcess;
 class AufsBackend : public Backend
 {
 public:
-  virtual ~AufsBackend();
+  ~AufsBackend() override;
 
   static Try<process::Owned<Backend>> create(const Flags&);
 
-  virtual process::Future<Nothing> provision(
+  process::Future<Nothing> provision(
       const std::vector<std::string>& layers,
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
-  virtual process::Future<bool> destroy(
+  process::Future<bool> destroy(
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
 private:
   explicit AufsBackend(process::Owned<AufsBackendProcess> process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/backends/bind.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/backends/bind.hpp b/src/slave/containerizer/mesos/provisioner/backends/bind.hpp
index 54c88d9..c4a1d5f 100644
--- a/src/slave/containerizer/mesos/provisioner/backends/bind.hpp
+++ b/src/slave/containerizer/mesos/provisioner/backends/bind.hpp
@@ -50,19 +50,19 @@ class BindBackendProcess;
 class BindBackend : public Backend
 {
 public:
-  virtual ~BindBackend();
+  ~BindBackend() override;
 
   // BindBackend doesn't use any flag.
   static Try<process::Owned<Backend>> create(const Flags&);
 
-  virtual process::Future<Nothing> provision(
+  process::Future<Nothing> provision(
       const std::vector<std::string>& layers,
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
-  virtual process::Future<bool> destroy(
+  process::Future<bool> destroy(
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
 private:
   explicit BindBackend(process::Owned<BindBackendProcess> process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/backends/copy.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/backends/copy.hpp b/src/slave/containerizer/mesos/provisioner/backends/copy.hpp
index 131d755..5dc9a2f 100644
--- a/src/slave/containerizer/mesos/provisioner/backends/copy.hpp
+++ b/src/slave/containerizer/mesos/provisioner/backends/copy.hpp
@@ -38,21 +38,21 @@ class CopyBackendProcess;
 class CopyBackend : public Backend
 {
 public:
-  virtual ~CopyBackend();
+  ~CopyBackend() override;
 
   // CopyBackend doesn't use any flag.
   static Try<process::Owned<Backend>> create(const Flags&);
 
   // Provisions a rootfs given the layers' paths and target rootfs
   // path.
-  virtual process::Future<Nothing> provision(
+  process::Future<Nothing> provision(
       const std::vector<std::string>& layers,
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
-  virtual process::Future<bool> destroy(
+  process::Future<bool> destroy(
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
 private:
   explicit CopyBackend(process::Owned<CopyBackendProcess> process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/backends/overlay.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/backends/overlay.hpp b/src/slave/containerizer/mesos/provisioner/backends/overlay.hpp
index 6bef7b4..362e021 100644
--- a/src/slave/containerizer/mesos/provisioner/backends/overlay.hpp
+++ b/src/slave/containerizer/mesos/provisioner/backends/overlay.hpp
@@ -45,18 +45,18 @@ class OverlayBackendProcess;
 class OverlayBackend : public Backend
 {
 public:
-  virtual ~OverlayBackend();
+  ~OverlayBackend() override;
 
   static Try<process::Owned<Backend>> create(const Flags&);
 
-  virtual process::Future<Nothing> provision(
+  process::Future<Nothing> provision(
       const std::vector<std::string>& layers,
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
-  virtual process::Future<bool> destroy(
+  process::Future<bool> destroy(
       const std::string& rootfs,
-      const std::string& backendDir);
+      const std::string& backendDir) override;
 
 private:
   explicit OverlayBackend(process::Owned<OverlayBackendProcess> process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.cpp b/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.cpp
index 6549bf5..3a33388 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.cpp
@@ -64,7 +64,7 @@ public:
       archivesUri(_archivesUri),
       fetcher(_fetcher) {}
 
-  ~ImageTarPullerProcess() {}
+  ~ImageTarPullerProcess() override {}
 
   Future<vector<string>> pull(
       const spec::ImageReference& reference,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.hpp b/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.hpp
index f18a758..b5ec924 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.hpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/image_tar_puller.hpp
@@ -48,13 +48,13 @@ public:
       const Flags& flags,
       const process::Shared<uri::Fetcher>& fetcher);
 
-  ~ImageTarPuller();
+  ~ImageTarPuller() override;
 
   process::Future<std::vector<std::string>> pull(
       const ::docker::spec::ImageReference& reference,
       const std::string& directory,
       const std::string& backend,
-      const Option<Secret>& config = None());
+      const Option<Secret>& config = None()) override;
 
 private:
   explicit ImageTarPuller(process::Owned<ImageTarPullerProcess> _process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp b/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
index 9abcc3d..7b8030a 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/metadata_manager.cpp
@@ -55,7 +55,7 @@ class MetadataManagerProcess : public process::Process<MetadataManagerProcess>
 public:
   MetadataManagerProcess(const Flags& _flags) : flags(_flags) {}
 
-  ~MetadataManagerProcess() {}
+  ~MetadataManagerProcess() override {}
 
   Future<Nothing> recover();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/docker/registry_puller.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/registry_puller.hpp b/src/slave/containerizer/mesos/provisioner/docker/registry_puller.hpp
index 4df679b..926fab1 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/registry_puller.hpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/registry_puller.hpp
@@ -49,7 +49,7 @@ public:
       const process::Shared<uri::Fetcher>& fetcher,
       SecretResolver* secretResolver);
 
-  ~RegistryPuller();
+  ~RegistryPuller() override;
 
   /**
    * Pulls an image into a download directory. This image could
@@ -62,7 +62,7 @@ public:
       const ::docker::spec::ImageReference& reference,
       const std::string& directory,
       const std::string& backend,
-      const Option<Secret>& config = None());
+      const Option<Secret>& config = None()) override;
 
 private:
   RegistryPuller(process::Owned<RegistryPullerProcess> _process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/docker/store.cpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/store.cpp b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
index 85aad25..60507aa 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/store.cpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/store.cpp
@@ -84,7 +84,7 @@ public:
   {
   }
 
-  ~StoreProcess() {}
+  ~StoreProcess() override {}
 
   Future<Nothing> recover();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/containerizer/mesos/provisioner/docker/store.hpp
----------------------------------------------------------------------
diff --git a/src/slave/containerizer/mesos/provisioner/docker/store.hpp b/src/slave/containerizer/mesos/provisioner/docker/store.hpp
index a420fa0..34a5890 100644
--- a/src/slave/containerizer/mesos/provisioner/docker/store.hpp
+++ b/src/slave/containerizer/mesos/provisioner/docker/store.hpp
@@ -51,17 +51,17 @@ public:
       const Flags& flags,
       const process::Owned<Puller>& puller);
 
-  virtual ~Store();
+  ~Store() override;
 
-  virtual process::Future<Nothing> recover();
+  process::Future<Nothing> recover() override;
 
-  virtual process::Future<ImageInfo> get(
+  process::Future<ImageInfo> get(
       const mesos::Image& image,
-      const std::string& backend);
+      const std::string& backend) override;
 
-  virtual process::Future<Nothing> prune(
+  process::Future<Nothing> prune(
       const std::vector<mesos::Image>& excludeImages,
-      const hashset<std::string>& activeLayerPaths);
+      const hashset<std::string>& activeLayerPaths) override;
 
 private:
   explicit Store(process::Owned<StoreProcess> process);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/gc_process.hpp
----------------------------------------------------------------------
diff --git a/src/slave/gc_process.hpp b/src/slave/gc_process.hpp
index 84c83d3..6bc50e0 100644
--- a/src/slave/gc_process.hpp
+++ b/src/slave/gc_process.hpp
@@ -50,7 +50,7 @@ public:
       metrics(this),
       workDir(_workDir) {}
 
-  virtual ~GarbageCollectorProcess();
+  ~GarbageCollectorProcess() override;
 
   process::Future<Nothing> schedule(
       const Duration& d,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/qos_controllers/load.hpp
----------------------------------------------------------------------
diff --git a/src/slave/qos_controllers/load.hpp b/src/slave/qos_controllers/load.hpp
index 098a6d0..b7e5a62 100644
--- a/src/slave/qos_controllers/load.hpp
+++ b/src/slave/qos_controllers/load.hpp
@@ -55,12 +55,13 @@ public:
       loadThreshold15Min(_loadThreshold15Min),
       loadAverage(_loadAverage) {}
 
-  virtual ~LoadQoSController();
+  ~LoadQoSController() override;
 
-  virtual Try<Nothing> initialize(
-    const lambda::function<process::Future<ResourceUsage>()>& usage);
+  Try<Nothing> initialize(
+    const lambda::function<process::Future<ResourceUsage>()>& usage) override;
 
-  virtual process::Future<std::list<mesos::slave::QoSCorrection>> corrections();
+  process::Future<std::list<mesos::slave::QoSCorrection>> corrections()
+    override;
 
 private:
   const Option<double> loadThreshold5Min;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/qos_controllers/noop.cpp
----------------------------------------------------------------------
diff --git a/src/slave/qos_controllers/noop.cpp b/src/slave/qos_controllers/noop.cpp
index b398bd7..8bc753d 100644
--- a/src/slave/qos_controllers/noop.cpp
+++ b/src/slave/qos_controllers/noop.cpp
@@ -35,7 +35,7 @@ namespace slave {
 class NoopQoSControllerProcess : public Process<NoopQoSControllerProcess>
 {
 public:
-  virtual ~NoopQoSControllerProcess() {}
+  ~NoopQoSControllerProcess() override {}
 
   NoopQoSControllerProcess()
     : ProcessBase(process::ID::generate("qos-noop-controller")) {}

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/qos_controllers/noop.hpp
----------------------------------------------------------------------
diff --git a/src/slave/qos_controllers/noop.hpp b/src/slave/qos_controllers/noop.hpp
index 7c07f10..09d0533 100644
--- a/src/slave/qos_controllers/noop.hpp
+++ b/src/slave/qos_controllers/noop.hpp
@@ -37,12 +37,13 @@ class NoopQoSControllerProcess;
 class NoopQoSController : public mesos::slave::QoSController
 {
 public:
-  virtual ~NoopQoSController();
+  ~NoopQoSController() override;
 
-  virtual Try<Nothing> initialize(
-      const lambda::function<process::Future<ResourceUsage>()>& usage);
+  Try<Nothing> initialize(
+      const lambda::function<process::Future<ResourceUsage>()>& usage) override;
 
-  virtual process::Future<std::list<mesos::slave::QoSCorrection>> corrections();
+  process::Future<std::list<mesos::slave::QoSCorrection>> corrections()
+    override;
 
 protected:
   process::Owned<NoopQoSControllerProcess> process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/resource_estimators/fixed.cpp
----------------------------------------------------------------------
diff --git a/src/slave/resource_estimators/fixed.cpp b/src/slave/resource_estimators/fixed.cpp
index b43a3ac..f0011cb 100644
--- a/src/slave/resource_estimators/fixed.cpp
+++ b/src/slave/resource_estimators/fixed.cpp
@@ -84,7 +84,7 @@ public:
     }
   }
 
-  virtual ~FixedResourceEstimator()
+  ~FixedResourceEstimator() override
   {
     if (process.get() != nullptr) {
       terminate(process.get());
@@ -92,8 +92,8 @@ public:
     }
   }
 
-  virtual Try<Nothing> initialize(
-      const lambda::function<Future<ResourceUsage>()>& usage)
+  Try<Nothing> initialize(
+      const lambda::function<Future<ResourceUsage>()>& usage) override
   {
     if (process.get() != nullptr) {
       return Error("Fixed resource estimator has already been initialized");
@@ -105,7 +105,7 @@ public:
     return Nothing();
   }
 
-  virtual Future<Resources> oversubscribable()
+  Future<Resources> oversubscribable() override
   {
     if (process.get() == nullptr) {
       return Failure("Fixed resource estimator is not initialized");

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/resource_estimators/noop.hpp
----------------------------------------------------------------------
diff --git a/src/slave/resource_estimators/noop.hpp b/src/slave/resource_estimators/noop.hpp
index 6b669ce..89bfdef 100644
--- a/src/slave/resource_estimators/noop.hpp
+++ b/src/slave/resource_estimators/noop.hpp
@@ -37,12 +37,12 @@ class NoopResourceEstimatorProcess;
 class NoopResourceEstimator : public mesos::slave::ResourceEstimator
 {
 public:
-  virtual ~NoopResourceEstimator();
+  ~NoopResourceEstimator() override;
 
-  virtual Try<Nothing> initialize(
-      const lambda::function<process::Future<ResourceUsage>()>& usage);
+  Try<Nothing> initialize(
+      const lambda::function<process::Future<ResourceUsage>()>& usage) override;
 
-  virtual process::Future<Resources> oversubscribable();
+  process::Future<Resources> oversubscribable() override;
 
 protected:
   process::Owned<NoopResourceEstimatorProcess> process;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/slave.hpp
----------------------------------------------------------------------
diff --git a/src/slave/slave.hpp b/src/slave/slave.hpp
index d3117e6..802d4eb 100644
--- a/src/slave/slave.hpp
+++ b/src/slave/slave.hpp
@@ -128,7 +128,7 @@ public:
         mesos::SecretGenerator* secretGenerator,
         const Option<Authorizer*>& authorizer);
 
-  virtual ~Slave();
+  ~Slave() override;
 
   void shutdown(const process::UPID& from, const std::string& message);
 
@@ -421,9 +421,9 @@ public:
   // their address which we do in tests (for things like
   // FUTURE_DISPATCH).
 // protected:
-  virtual void initialize();
-  virtual void finalize();
-  virtual void exited(const process::UPID& pid);
+  void initialize() override;
+  void finalize() override;
+  void exited(const process::UPID& pid) override;
 
   process::Future<Secret> generateSecret(
       const FrameworkID& frameworkId,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/slave/task_status_update_manager.cpp
----------------------------------------------------------------------
diff --git a/src/slave/task_status_update_manager.cpp b/src/slave/task_status_update_manager.cpp
index f0cc502..fad9391 100644
--- a/src/slave/task_status_update_manager.cpp
+++ b/src/slave/task_status_update_manager.cpp
@@ -70,7 +70,7 @@ class TaskStatusUpdateManagerProcess
 {
 public:
   TaskStatusUpdateManagerProcess(const Flags& flags);
-  virtual ~TaskStatusUpdateManagerProcess();
+  ~TaskStatusUpdateManagerProcess() override;
 
   // Explicitly use 'initialize' since we're overloading below.
   using process::ProcessBase::initialize;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/state/leveldb.cpp
----------------------------------------------------------------------
diff --git a/src/state/leveldb.cpp b/src/state/leveldb.cpp
index 55eab61..df5f4ae 100644
--- a/src/state/leveldb.cpp
+++ b/src/state/leveldb.cpp
@@ -56,9 +56,9 @@ class LevelDBStorageProcess : public Process<LevelDBStorageProcess>
 {
 public:
   explicit LevelDBStorageProcess(const string& path);
-  virtual ~LevelDBStorageProcess();
+  ~LevelDBStorageProcess() override;
 
-  virtual void initialize();
+  void initialize() override;
 
   // Storage implementation.
   Future<Option<Entry>> get(const string& name);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/state/log.cpp
----------------------------------------------------------------------
diff --git a/src/state/log.cpp b/src/state/log.cpp
index 1b2d727..d3bf2cc 100644
--- a/src/state/log.cpp
+++ b/src/state/log.cpp
@@ -86,7 +86,7 @@ class LogStorageProcess : public Process<LogStorageProcess>
 public:
   LogStorageProcess(Log* log, size_t diffsBetweenSnapshots);
 
-  virtual ~LogStorageProcess();
+  ~LogStorageProcess() override;
 
   // Storage implementation.
   Future<Option<Entry>> get(const string& name);
@@ -95,7 +95,7 @@ public:
   Future<std::set<string>> names();
 
 protected:
-  virtual void finalize();
+  void finalize() override;
 
 private:
   Future<Nothing> start();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/state/zookeeper.cpp
----------------------------------------------------------------------
diff --git a/src/state/zookeeper.cpp b/src/state/zookeeper.cpp
index 7a25e5e..e20329a 100644
--- a/src/state/zookeeper.cpp
+++ b/src/state/zookeeper.cpp
@@ -71,9 +71,9 @@ public:
       const Duration& timeout,
       const string& znode,
       const Option<Authentication>& auth);
-  virtual ~ZooKeeperStorageProcess();
+  ~ZooKeeperStorageProcess() override;
 
-  virtual void initialize();
+  void initialize() override;
 
   // Storage implementation.
   Future<Option<Entry>> get(const string& name);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/active_user_test_helper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/active_user_test_helper.hpp b/src/tests/active_user_test_helper.hpp
index 0232520..d9718b5 100644
--- a/src/tests/active_user_test_helper.hpp
+++ b/src/tests/active_user_test_helper.hpp
@@ -39,8 +39,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace tests {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/agent_container_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/agent_container_api_tests.cpp b/src/tests/agent_container_api_tests.cpp
index 1dcc256..76dabdf 100644
--- a/src/tests/agent_container_api_tests.cpp
+++ b/src/tests/agent_container_api_tests.cpp
@@ -434,7 +434,7 @@ public:
   }
 
 protected:
-  virtual void TearDown()
+  void TearDown() override
   {
     if (normal.isSome()) {
       normal->driver->stop();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/agent_resource_provider_config_api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/agent_resource_provider_config_api_tests.cpp b/src/tests/agent_resource_provider_config_api_tests.cpp
index e1967d1..e6a68ba 100644
--- a/src/tests/agent_resource_provider_config_api_tests.cpp
+++ b/src/tests/agent_resource_provider_config_api_tests.cpp
@@ -69,7 +69,7 @@ class AgentResourceProviderConfigApiTest
     public WithParamInterface<ContentType>
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     ContainerizerTest<slave::MesosContainerizer>::SetUp();
 
@@ -160,7 +160,7 @@ public:
     return info.get();
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const string& slaveWorkDir, slaveWorkDirs) {
       // Clean up CSI endpoint directories if there is any.
@@ -191,7 +191,7 @@ public:
     ContainerizerTest<slave::MesosContainerizer>::TearDown();
   }
 
-  virtual slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags flags =
       ContainerizerTest<slave::MesosContainerizer>::CreateSlaveFlags();

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/allocator.hpp
----------------------------------------------------------------------
diff --git a/src/tests/allocator.hpp b/src/tests/allocator.hpp
index 73fc060..6139492 100644
--- a/src/tests/allocator.hpp
+++ b/src/tests/allocator.hpp
@@ -366,7 +366,7 @@ public:
       .WillRepeatedly(DoDefault());
   }
 
-  virtual ~TestAllocator() {}
+  ~TestAllocator() override {}
 
   MOCK_METHOD7(initialize, void(
       const Duration&,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/api_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/api_tests.cpp b/src/tests/api_tests.cpp
index 77b8806..182622a 100644
--- a/src/tests/api_tests.cpp
+++ b/src/tests/api_tests.cpp
@@ -117,7 +117,7 @@ class MasterAPITest
     public WithParamInterface<ContentType>
 {
 public:
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     // Turn off periodic allocations to avoid the race between
     // `HierarchicalAllocator::updateAvailable()` and periodic allocations.
@@ -4703,7 +4703,7 @@ class AgentAPITest
     public WithParamInterface<ContentType>
 {
 public:
-  virtual master::Flags CreateMasterFlags()
+  master::Flags CreateMasterFlags() override
   {
     // Turn off periodic allocations to avoid the race between
     // `HierarchicalAllocator::updateAvailable()` and periodic allocations.

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/check_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/check_tests.cpp b/src/tests/check_tests.cpp
index 99367df..d8a1a9b 100644
--- a/src/tests/check_tests.cpp
+++ b/src/tests/check_tests.cpp
@@ -1335,7 +1335,7 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(CommandExecutorCheckTest, TCPCheckDelivered)
 class DefaultExecutorCheckTest : public CheckTest
 {
 protected:
-  slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags flags = CheckTest::CreateSlaveFlags();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer.cpp b/src/tests/containerizer.cpp
index b3a09fd..fab7e81 100644
--- a/src/tests/containerizer.cpp
+++ b/src/tests/containerizer.cpp
@@ -71,7 +71,7 @@ public:
     }
   }
 
-  virtual ~TestContainerizerProcess()
+  ~TestContainerizerProcess() override
   {
     foreachvalue (const Owned<ExecutorData>& data, executors) {
       if (data->driver.get() != nullptr) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer.hpp b/src/tests/containerizer.hpp
index 6acb084..e05ce03 100644
--- a/src/tests/containerizer.hpp
+++ b/src/tests/containerizer.hpp
@@ -76,9 +76,9 @@ public:
 
   TestContainerizer();
 
-  virtual ~TestContainerizer();
+  ~TestContainerizer() override;
 
-  virtual process::Future<hashset<ContainerID>> containers();
+  process::Future<hashset<ContainerID>> containers() override;
 
   MOCK_METHOD1(
       recover,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/capabilities_test_helper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/capabilities_test_helper.hpp b/src/tests/containerizer/capabilities_test_helper.hpp
index 240bd5f..9d57483 100644
--- a/src/tests/containerizer/capabilities_test_helper.hpp
+++ b/src/tests/containerizer/capabilities_test_helper.hpp
@@ -46,8 +46,8 @@ public:
   Flags flags;
 
 protected:
-  virtual int execute();
-  virtual flags::FlagsBase* getFlags() { return &flags; }
+  int execute() override;
+  flags::FlagsBase* getFlags() override { return &flags; }
 };
 
 } // namespace tests {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/cgroups_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/cgroups_tests.cpp b/src/tests/containerizer/cgroups_tests.cpp
index 7008e7d..984903d 100644
--- a/src/tests/containerizer/cgroups_tests.cpp
+++ b/src/tests/containerizer/cgroups_tests.cpp
@@ -128,7 +128,7 @@ public:
     : subsystems(_subsystems) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     CgroupsTest::SetUp();
 
@@ -180,7 +180,7 @@ protected:
     }
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     // Remove all *our* cgroups.
     foreach (const string& subsystem, strings::tokenize(subsystems, ",")) {
@@ -1055,7 +1055,7 @@ public:
       cgroup(TEST_CGROUPS_ROOT) {}
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     CgroupsAnyHierarchyTest::SetUp();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/cni_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/cni_isolator_tests.cpp b/src/tests/containerizer/cni_isolator_tests.cpp
index b282e10..90d2d41 100644
--- a/src/tests/containerizer/cni_isolator_tests.cpp
+++ b/src/tests/containerizer/cni_isolator_tests.cpp
@@ -106,7 +106,7 @@ TEST(CniSpecTest, GenerateResolverConfig)
 class CniIsolatorTest : public MesosTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
 
@@ -1460,7 +1460,7 @@ class DefaultExecutorCniTest
     public WithParamInterface<NetworkParam>
 {
 protected:
-  slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags flags = CniIsolatorTest::CreateSlaveFlags();
 
@@ -1627,7 +1627,7 @@ class NestedContainerCniTest
     public WithParamInterface<bool>
 {
 protected:
-  slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags flags = CniIsolatorTest::CreateSlaveFlags();
 
@@ -1786,7 +1786,7 @@ TEST_P(NestedContainerCniTest, ROOT_INTERNET_CURL_VerifyContainerHostname)
 class CniIsolatorPortMapperTest : public CniIsolatorTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     CniIsolatorTest::SetUp();
 
@@ -1817,7 +1817,7 @@ public:
     ASSERT_SOME(write);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     // This is a best effort cleanup of the
     // `MESOS_TEST_PORT_MAPPER_CHAIN`. We shouldn't fail and bail on

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/docker_containerizer_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_containerizer_tests.cpp b/src/tests/containerizer/docker_containerizer_tests.cpp
index e89b8b0..2feead9 100644
--- a/src/tests/containerizer/docker_containerizer_tests.cpp
+++ b/src/tests/containerizer/docker_containerizer_tests.cpp
@@ -190,7 +190,7 @@ public:
     return false;
   }
 
-  virtual void SetUp()
+  void SetUp() override
   {
     Future<std::tuple<Nothing, Nothing>> pulls = process::collect(
         pullDockerImage(DOCKER_TEST_IMAGE),
@@ -209,7 +209,7 @@ public:
     AWAIT_READY_FOR(pulls, Minutes(10));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     Try<Owned<Docker>> docker = Docker::create(
         tests::flags.docker,
@@ -4638,7 +4638,7 @@ TEST_F(DockerContainerizerTest, ROOT_DOCKER_DefaultDNS)
 class DockerContainerizerIPv6Test : public DockerContainerizerTest
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     os::setenv("LIBPROCESS_IP6", "::1234");
     process::reinitialize(
@@ -4649,7 +4649,7 @@ protected:
     DockerContainerizerTest::SetUp();
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     DockerContainerizerTest::TearDown();
 
@@ -4837,13 +4837,13 @@ TEST_F_TEMP_DISABLED_ON_WINDOWS(
 class DockerContainerizerIPv6UserNetworkTest : public DockerContainerizerTest
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     createDockerIPv6UserNetwork();
     DockerContainerizerTest::SetUp();
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     DockerContainerizerTest::TearDown();
     removeDockerIPv6UserNetwork();
@@ -5042,7 +5042,7 @@ public:
   string commandsEnv;
   string delayEnv;
 
-  virtual slave::Flags CreateSlaveFlags()
+  slave::Flags CreateSlaveFlags() override
   {
     slave::Flags flags = MesosTest::CreateSlaveFlags();
 
@@ -5097,7 +5097,7 @@ public:
     writeEnv();
   }
 
-  virtual void SetUp()
+  void SetUp() override
   {
     DockerContainerizerTest::SetUp();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_tests.cpp b/src/tests/containerizer/docker_tests.cpp
index 7097efc..0eefbd9 100644
--- a/src/tests/containerizer/docker_tests.cpp
+++ b/src/tests/containerizer/docker_tests.cpp
@@ -72,7 +72,7 @@ static constexpr char TEST_DIR_NAME[] = "test_dir";
 
 class DockerTest : public MesosTest
 {
-  virtual void SetUp()
+  void SetUp() override
   {
     Future<Nothing> pull = pullDockerImage(DOCKER_TEST_IMAGE);
 
@@ -84,7 +84,7 @@ class DockerTest : public MesosTest
     AWAIT_READY_FOR(pull, Minutes(10));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     Try<Owned<Docker>> docker = Docker::create(
         tests::flags.docker,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/docker_volume_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/docker_volume_isolator_tests.cpp b/src/tests/containerizer/docker_volume_isolator_tests.cpp
index 36fffe2..c15a6fa 100644
--- a/src/tests/containerizer/docker_volume_isolator_tests.cpp
+++ b/src/tests/containerizer/docker_volume_isolator_tests.cpp
@@ -78,7 +78,7 @@ class MockDockerVolumeDriverClient : public DriverClient
 public:
   MockDockerVolumeDriverClient() {}
 
-  virtual ~MockDockerVolumeDriverClient() {}
+  ~MockDockerVolumeDriverClient() override {}
 
   MOCK_METHOD3(
       mount,
@@ -98,7 +98,7 @@ public:
 class DockerVolumeIsolatorTest : public MesosTest
 {
 protected:
-  virtual void TearDown()
+  void TearDown() override
   {
     // Try to remove any mounts under sandbox.
     if (::geteuid() == 0) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/isolator_tests.cpp b/src/tests/containerizer/isolator_tests.cpp
index bdc3619..e71f9e3 100644
--- a/src/tests/containerizer/isolator_tests.cpp
+++ b/src/tests/containerizer/isolator_tests.cpp
@@ -61,7 +61,7 @@ namespace tests {
 class NamespacesIsolatorTest : public MesosTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/launcher.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/launcher.hpp b/src/tests/containerizer/launcher.hpp
index 40728e0..6567e96 100644
--- a/src/tests/containerizer/launcher.hpp
+++ b/src/tests/containerizer/launcher.hpp
@@ -48,7 +48,7 @@ class TestLauncher : public slave::Launcher
 public:
   TestLauncher(const process::Owned<slave::Launcher>& _real);
 
-  ~TestLauncher();
+  ~TestLauncher() override;
 
   MOCK_METHOD1(
       recover,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/memory_test_helper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/memory_test_helper.hpp b/src/tests/containerizer/memory_test_helper.hpp
index 26e295b..05c35e1 100644
--- a/src/tests/containerizer/memory_test_helper.hpp
+++ b/src/tests/containerizer/memory_test_helper.hpp
@@ -37,7 +37,7 @@ public:
   static const char NAME[];
 
   MemoryTestHelper() : Subcommand(NAME) {}
-  virtual ~MemoryTestHelper();
+  ~MemoryTestHelper() override;
 
   // Spawns a subprocess.
   // TODO(chzhcn): Consider returning a future instead of blocking.
@@ -65,7 +65,7 @@ public:
 protected:
   // The main function of the subprocess. It runs in a loop and
   // executes commands passed from stdin.
-  virtual int execute();
+  int execute() override;
 
 private:
   Try<Nothing> requestAndWait(const std::string& request);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/provisioner_appc_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_appc_tests.cpp b/src/tests/containerizer/provisioner_appc_tests.cpp
index 5edd89b..1aa32ec 100644
--- a/src/tests/containerizer/provisioner_appc_tests.cpp
+++ b/src/tests/containerizer/provisioner_appc_tests.cpp
@@ -680,7 +680,7 @@ class AppcImageFetcherTest : public AppcStoreTest
 {
 protected:
   // Custom implementation that overrides the host and port of the image name.
-  JSON::Value getManifest() const
+  JSON::Value getManifest() const override
   {
     string imageName = strings::format(
         "%s:%d/TestAppcImageServer/image",
@@ -749,7 +749,7 @@ protected:
     spawn(server);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     terminate(server);
     wait(server);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/provisioner_backend_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_backend_tests.cpp b/src/tests/containerizer/provisioner_backend_tests.cpp
index e3516fc..109365b 100644
--- a/src/tests/containerizer/provisioner_backend_tests.cpp
+++ b/src/tests/containerizer/provisioner_backend_tests.cpp
@@ -57,7 +57,7 @@ namespace tests {
 class MountBackendTest : public TemporaryDirectoryTest
 {
 protected:
-  virtual void TearDown()
+  void TearDown() override
   {
     Try<fs::MountInfoTable> mountTable = fs::MountInfoTable::read();
     ASSERT_SOME(mountTable);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/provisioner_docker_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/provisioner_docker_tests.cpp b/src/tests/containerizer/provisioner_docker_tests.cpp
index 0b06eb7..bf56d60 100644
--- a/src/tests/containerizer/provisioner_docker_tests.cpp
+++ b/src/tests/containerizer/provisioner_docker_tests.cpp
@@ -122,7 +122,7 @@ public:
   }
 
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 
@@ -304,7 +304,7 @@ public:
       .WillRepeatedly(Invoke(this, &MockPuller::unmocked_pull));
   }
 
-  virtual ~MockPuller() {}
+  ~MockPuller() override {}
 
   MOCK_METHOD4(
       pull,

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/setns_test_helper.hpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/setns_test_helper.hpp b/src/tests/containerizer/setns_test_helper.hpp
index b052497..7f751e0 100644
--- a/src/tests/containerizer/setns_test_helper.hpp
+++ b/src/tests/containerizer/setns_test_helper.hpp
@@ -31,7 +31,7 @@ public:
   SetnsTestHelper() : Subcommand(NAME) {}
 
 protected:
-  virtual int execute();
+  int execute() override;
 };
 
 } // namespace tests {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/volume_image_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/volume_image_isolator_tests.cpp b/src/tests/containerizer/volume_image_isolator_tests.cpp
index c2647f4..b49f0f9 100644
--- a/src/tests/containerizer/volume_image_isolator_tests.cpp
+++ b/src/tests/containerizer/volume_image_isolator_tests.cpp
@@ -53,7 +53,7 @@ class VolumeImageIsolatorTest :
   public ::testing::WithParamInterface<bool>
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     nesting = GetParam();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/containerizer/volume_secret_isolator_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/containerizer/volume_secret_isolator_tests.cpp b/src/tests/containerizer/volume_secret_isolator_tests.cpp
index 3df575c..11cd3b6 100644
--- a/src/tests/containerizer/volume_secret_isolator_tests.cpp
+++ b/src/tests/containerizer/volume_secret_isolator_tests.cpp
@@ -69,7 +69,7 @@ class VolumeSecretIsolatorTest :
 
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     const char* prefix = std::tr1::get<0>(GetParam());
     const char* path = std::tr1::get<1>(GetParam());

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/csi_client_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/csi_client_tests.cpp b/src/tests/csi_client_tests.cpp
index 39dea56..3d4a062 100644
--- a/src/tests/csi_client_tests.cpp
+++ b/src/tests/csi_client_tests.cpp
@@ -79,7 +79,7 @@ class CSIClientTest
     public WithParamInterface<RPCParam>
 {
 protected:
-  virtual void SetUp() override
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 
@@ -89,7 +89,7 @@ protected:
     connection = _connection.get();
   }
 
-  virtual void TearDown() override
+  void TearDown() override
   {
     runtime.terminate();
     AWAIT_ASSERT_READY(runtime.wait());

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/disk_profile_adaptor_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/disk_profile_adaptor_tests.cpp b/src/tests/disk_profile_adaptor_tests.cpp
index fe8d1d3..0ccbc79 100644
--- a/src/tests/disk_profile_adaptor_tests.cpp
+++ b/src/tests/disk_profile_adaptor_tests.cpp
@@ -75,7 +75,7 @@ constexpr char URI_DISK_PROFILE_ADAPTOR_NAME[] =
 class UriDiskProfileAdaptorTest : public MesosTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     MesosTest::SetUp();
 
@@ -91,7 +91,7 @@ public:
     ASSERT_SOME(modules::ModuleManager::load(modules));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const Modules::Library& library, modules.libraries()) {
       foreach (const Modules::Library::Module& module, library.modules()) {

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/environment.cpp
----------------------------------------------------------------------
diff --git a/src/tests/environment.cpp b/src/tests/environment.cpp
index 3b84c0a..784f8fa 100644
--- a/src/tests/environment.cpp
+++ b/src/tests/environment.cpp
@@ -100,7 +100,7 @@ Environment* environment;
 class BenchmarkFilter : public TestFilter
 {
 public:
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "BENCHMARK_") && !flags.benchmark;
   }
@@ -148,7 +148,7 @@ public:
 #endif // __linux__
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "CFS_") && cfsError.isSome();
   }
@@ -191,7 +191,7 @@ public:
 #endif // __linux__
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     if (matches(test, "CGROUPS_") || matches(test, "Cgroups")) {
 #ifdef __linux__
@@ -244,7 +244,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "CURL_") && curlError;
   }
@@ -269,7 +269,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "NVIDIA_GPU_") && nvidiaGpuError;
   }
@@ -341,7 +341,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     if (dockerError.isSome()) {
       return matches(test, "DOCKER_");
@@ -508,7 +508,7 @@ public:
 #endif
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return dtypeError.isSome() && matches(test, "DTYPE_");
   }
@@ -534,7 +534,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "INTERNET_") && error;
   }
@@ -560,7 +560,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "LOGROTATE_") && logrotateError;
   }
@@ -585,7 +585,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "NC_") && netcatError;
   }
@@ -641,7 +641,7 @@ public:
 #endif
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "NET_CLS_") && netClsError;
   }
@@ -670,7 +670,7 @@ public:
 #endif
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     if (matches(test, "PortMappingIsolatorTest") ||
         matches(test, "PortMappingMesosTest")) {
@@ -724,7 +724,7 @@ class AufsFilter : public SupportedFilesystemTestFilter
 public:
   AufsFilter() : SupportedFilesystemTestFilter("aufs") {}
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return fsSupportError.isSome() && matches(test, "AUFS_");
   }
@@ -736,7 +736,7 @@ class OverlayFSFilter : public SupportedFilesystemTestFilter
 public:
   OverlayFSFilter() : SupportedFilesystemTestFilter("overlayfs") {}
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return fsSupportError.isSome() && matches(test, "OVERLAYFS_");
   }
@@ -748,7 +748,7 @@ class XfsFilter : public SupportedFilesystemTestFilter
 public:
   XfsFilter() : SupportedFilesystemTestFilter("xfs") {}
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return fsSupportError.isSome() && matches(test, "XFS_");
   }
@@ -791,7 +791,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     // Disable all tests that try to sample 'cpu-cycles' events using 'perf'.
     return (matches(test, "ROOT_CGROUPS_PERF_PerfTest") ||
@@ -824,7 +824,7 @@ public:
 #endif // __linux__
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "PERF_") && perfError;
   }
@@ -837,7 +837,7 @@ private:
 class RootFilter : public TestFilter
 {
 public:
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
 #ifdef __WINDOWS__
     // On Windows, tests are expected to be run as Administrator.
@@ -887,7 +887,7 @@ public:
 #endif
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "UNPRIVILEGED_USER_") && !unprivilegedUserFound;
   }
@@ -912,7 +912,7 @@ public:
     }
   }
 
-  bool disable(const ::testing::TestInfo* test) const
+  bool disable(const ::testing::TestInfo* test) const override
   {
     return matches(test, "UNZIP_") && unzipError;
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/environment.hpp
----------------------------------------------------------------------
diff --git a/src/tests/environment.hpp b/src/tests/environment.hpp
index 6d9a2bd..811ebc9 100644
--- a/src/tests/environment.hpp
+++ b/src/tests/environment.hpp
@@ -37,9 +37,9 @@ class Environment : public stout::internal::tests::Environment {
 public:
   Environment(const Flags& flags);
 
-  virtual void SetUp();
+  void SetUp() override;
 
-  virtual void TearDown();
+  void TearDown() override;
 
   // Helper to create a temporary directory based on the current test
   // case name and test name (derived from TestInfo via
@@ -57,7 +57,7 @@ private:
     Try<std::string> mkdtemp();
 
   protected:
-    virtual void OnTestEnd(const ::testing::TestInfo&);
+    void OnTestEnd(const ::testing::TestInfo&) override;
 
     // Temporary directories that we created and need to remove.
     std::list<std::string> directories;

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/fetcher_cache_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fetcher_cache_tests.cpp b/src/tests/fetcher_cache_tests.cpp
index f30a300..22a7c0f 100644
--- a/src/tests/fetcher_cache_tests.cpp
+++ b/src/tests/fetcher_cache_tests.cpp
@@ -135,8 +135,8 @@ public:
 protected:
   void setupArchiveAsset();
 
-  virtual void SetUp();
-  virtual void TearDown();
+  void SetUp() override;
+  void TearDown() override;
 
   // Sets up the slave and starts it. Calling this late in the test
   // instead of having it included in SetUp() gives us the opportunity
@@ -943,7 +943,7 @@ public:
       CHECK(!_archivePath.empty());
     }
 
-    virtual void initialize()
+    void initialize() override
     {
       provide(COMMAND_NAME, commandPath);
       provide(ARCHIVE_NAME, archivePath);
@@ -971,7 +971,7 @@ public:
       }
     }
 
-    virtual void consume(HttpEvent&& event)
+    void consume(HttpEvent&& event) override
     {
       if (latch.get() != nullptr) {
         latch->await();
@@ -1007,7 +1007,7 @@ public:
     Owned<Latch> latch;
   };
 
-  virtual void SetUp()
+  void SetUp() override
   {
     FetcherCacheTest::SetUp();
 
@@ -1015,7 +1015,7 @@ public:
     spawn(httpServer);
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     terminate(httpServer);
     wait(httpServer);

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/fetcher_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/fetcher_tests.cpp b/src/tests/fetcher_tests.cpp
index 5e6a1c3..f3ea709 100644
--- a/src/tests/fetcher_tests.cpp
+++ b/src/tests/fetcher_tests.cpp
@@ -525,7 +525,7 @@ public:
   MOCK_METHOD1(test, Future<http::Response>(const http::Request&));
 
 protected:
-  virtual void initialize()
+  void initialize() override
   {
     route("/test", None(), &HttpProcess::test);
   }

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/files_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/files_tests.cpp b/src/tests/files_tests.cpp
index 3e749de..d092790 100644
--- a/src/tests/files_tests.cpp
+++ b/src/tests/files_tests.cpp
@@ -84,7 +84,7 @@ protected:
             authenticator.get())));
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     foreach (const string& realm, realms) {
       // We need to wait in order to ensure that the operation completes before

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/hdfs_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/hdfs_tests.cpp b/src/tests/hdfs_tests.cpp
index 701350e..90c05c7 100644
--- a/src/tests/hdfs_tests.cpp
+++ b/src/tests/hdfs_tests.cpp
@@ -40,7 +40,7 @@ namespace tests {
 class HdfsTest : public TemporaryDirectoryTest
 {
 public:
-  virtual void SetUp()
+  void SetUp() override
   {
     TemporaryDirectoryTest::SetUp();
 

http://git-wip-us.apache.org/repos/asf/mesos/blob/3e432d86/src/tests/health_check_tests.cpp
----------------------------------------------------------------------
diff --git a/src/tests/health_check_tests.cpp b/src/tests/health_check_tests.cpp
index 34102e2..7544b2c 100644
--- a/src/tests/health_check_tests.cpp
+++ b/src/tests/health_check_tests.cpp
@@ -1911,7 +1911,7 @@ class DockerContainerizerHealthCheckTest
     public ::testing::WithParamInterface<NetworkInfo::Protocol>
 {
 protected:
-  virtual void SetUp()
+  void SetUp() override
   {
     Future<std::tuple<Nothing, Nothing, Nothing>> pulls = process::collect(
         pullDockerImage(DOCKER_TEST_IMAGE),
@@ -1934,7 +1934,7 @@ protected:
     createDockerIPv6UserNetwork();
   }
 
-  virtual void TearDown()
+  void TearDown() override
   {
     Try<Owned<Docker>> docker = Docker::create(
         tests::flags.docker,