diff --git a/tests/daemon/face/dummy-face.cpp b/tests/daemon/face/dummy-face.cpp
index c4f6154..5c9895b 100644
--- a/tests/daemon/face/dummy-face.cpp
+++ b/tests/daemon/face/dummy-face.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California,
+ * Copyright (c) 2014-2016,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -55,28 +55,28 @@
 
 private:
   virtual void
-  doSendInterest(const Interest& interest) DECL_OVERRIDE
+  doSendInterest(const Interest& interest) override
   {
     this->sentInterests.push_back(interest);
     this->afterSend(tlv::Interest);
   }
 
   virtual void
-  doSendData(const Data& data) DECL_OVERRIDE
+  doSendData(const Data& data) override
   {
     this->sentData.push_back(data);
     this->afterSend(tlv::Data);
   }
 
   virtual void
-  doSendNack(const lp::Nack& nack) DECL_OVERRIDE
+  doSendNack(const lp::Nack& nack) override
   {
     this->sentNacks.push_back(nack);
     this->afterSend(lp::tlv::Nack);
   }
 
   virtual void
-  doReceivePacket(Transport::Packet&& packet) DECL_OVERRIDE
+  doReceivePacket(Transport::Packet&& packet) override
   {
     BOOST_ASSERT(false);
   }
diff --git a/tests/daemon/face/dummy-receive-link-service.hpp b/tests/daemon/face/dummy-receive-link-service.hpp
index 91dabd2..1d40653 100644
--- a/tests/daemon/face/dummy-receive-link-service.hpp
+++ b/tests/daemon/face/dummy-receive-link-service.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California,
+ * Copyright (c) 2014-2016,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -41,25 +41,25 @@
 {
 private:
   virtual void
-  doSendInterest(const Interest& interest) DECL_OVERRIDE
+  doSendInterest(const Interest& interest) override
   {
     BOOST_ASSERT(false);
   }
 
   virtual void
-  doSendData(const Data& data) DECL_OVERRIDE
+  doSendData(const Data& data) override
   {
     BOOST_ASSERT(false);
   }
 
   virtual void
-  doSendNack(const lp::Nack& nack) DECL_OVERRIDE
+  doSendNack(const lp::Nack& nack) override
   {
     BOOST_ASSERT(false);
   }
 
   virtual void
-  doReceivePacket(Transport::Packet&& packet) DECL_OVERRIDE
+  doReceivePacket(Transport::Packet&& packet) override
   {
     receivedPackets.push_back(packet);
   }
diff --git a/tests/daemon/face/dummy-transport.hpp b/tests/daemon/face/dummy-transport.hpp
index f957e1e..4dfda76 100644
--- a/tests/daemon/face/dummy-transport.hpp
+++ b/tests/daemon/face/dummy-transport.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California,
+ * Copyright (c) 2014-2016,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -81,21 +81,21 @@
 
 protected:
   virtual void
-  beforeChangePersistency(ndn::nfd::FacePersistency newPersistency) DECL_OVERRIDE
+  beforeChangePersistency(ndn::nfd::FacePersistency newPersistency) override
   {
     // accept everything
   }
 
 private:
   virtual void
-  doClose() DECL_OVERRIDE
+  doClose() override
   {
     isClosed = true;
     this->setState(TransportState::CLOSED);
   }
 
   virtual void
-  doSend(Packet&& packet) DECL_OVERRIDE
+  doSend(Packet&& packet) override
   {
     sentPackets.push_back(std::move(packet));
   }
