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:08 UTC

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

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,