diff --git a/AUTHORS.md b/AUTHORS.md
index 860e351..88126cf 100644
--- a/AUTHORS.md
+++ b/AUTHORS.md
@@ -31,3 +31,4 @@
 * Mathias Gibbens       <gibmat@cs.arizona.edu>
 * Chengyu Fan           <chengyu@cs.colostate.edu>
 * Qiuhan Ding           <http://irl.cs.ucla.edu/~qiuhanding/>
+* Spyridon Mastorakis   <http://cs.ucla.edu/~mastorakis/>
diff --git a/tests/unit-tests/test-data.cpp b/tests/unit-tests/data.t.cpp
similarity index 99%
rename from tests/unit-tests/test-data.cpp
rename to tests/unit-tests/data.t.cpp
index 2f8329b..1682854 100644
--- a/tests/unit-tests/test-data.cpp
+++ b/tests/unit-tests/data.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -26,8 +26,8 @@
 
 #include "boost-test.hpp"
 
-using namespace std;
 namespace ndn {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(TestData)
 
@@ -503,4 +503,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/test-block.cpp b/tests/unit-tests/encoding/block.t.cpp
similarity index 98%
rename from tests/unit-tests/test-block.cpp
rename to tests/unit-tests/encoding/block.t.cpp
index 959b612..e9e8c76 100644
--- a/tests/unit-tests/test-block.cpp
+++ b/tests/unit-tests/encoding/block.t.cpp
@@ -27,7 +27,7 @@
 namespace ndn {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(TestBlock)
+BOOST_AUTO_TEST_SUITE(EncodingBlock)
 
 class BasicBlockFixture
 {
diff --git a/tests/unit-tests/encoding/nfd-constants.cpp b/tests/unit-tests/encoding/nfd-constants.cpp
deleted file mode 100644
index 537699e..0000000
--- a/tests/unit-tests/encoding/nfd-constants.cpp
+++ /dev/null
@@ -1,4 +0,0 @@
-#include "encoding/nfd-constants.hpp"
-
-// This file is intentionally empty.
-// See Bug 2091.
diff --git a/tests/unit-tests/util/placeholders2.cpp b/tests/unit-tests/encoding/nfd-constants.t.cpp
similarity index 71%
copy from tests/unit-tests/util/placeholders2.cpp
copy to tests/unit-tests/encoding/nfd-constants.t.cpp
index c0f11b6..96ff500 100644
--- a/tests/unit-tests/util/placeholders2.cpp
+++ b/tests/unit-tests/encoding/nfd-constants.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -18,23 +18,7 @@
  *
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
+#include "encoding/nfd-constants.hpp"
 
-// Bug 2109 test case
-
-// interest.hpp includes common.hpp; common.hpp shouldn't be used from external program
-#include "interest.hpp"
-
-#include <boost/bind.hpp>
-
-void
-placeholders2TestFunction(int i)
-{
-}
-
-int
-placeholders2TestMain()
-{
-  auto f = boost::bind(&placeholders2TestFunction, _1);
-  f(1);
-  return 0;
-}
+// This file is intentionally empty.
+// See Bug 2091.
diff --git a/tests/unit-tests/encoding/tlv.cpp b/tests/unit-tests/encoding/tlv.t.cpp
similarity index 99%
rename from tests/unit-tests/encoding/tlv.cpp
rename to tests/unit-tests/encoding/tlv.t.cpp
index 7aeec58..763d628 100644
--- a/tests/unit-tests/encoding/tlv.cpp
+++ b/tests/unit-tests/encoding/tlv.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/test-exclude.cpp b/tests/unit-tests/exclude.t.cpp
similarity index 98%
rename from tests/unit-tests/test-exclude.cpp
rename to tests/unit-tests/exclude.t.cpp
index ec7029c..a211f15 100644
--- a/tests/unit-tests/test-exclude.cpp
+++ b/tests/unit-tests/exclude.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -24,6 +24,7 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(TestExclude)
 
@@ -192,4 +193,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/test-face.cpp b/tests/unit-tests/face.t.cpp
similarity index 99%
rename from tests/unit-tests/test-face.cpp
rename to tests/unit-tests/face.t.cpp
index e901e54..3ded5ee 100644
--- a/tests/unit-tests/test-face.cpp
+++ b/tests/unit-tests/face.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -26,7 +26,7 @@
 
 #include "boost-test.hpp"
 #include "unit-test-time-fixture.hpp"
-#include "test-make-interest-data.hpp"
+#include "make-interest-data.hpp"
 
 namespace ndn {
 namespace tests {
diff --git a/tests/unit-tests/test-interest.cpp b/tests/unit-tests/interest.t.cpp
similarity index 99%
rename from tests/unit-tests/test-interest.cpp
rename to tests/unit-tests/interest.t.cpp
index 7151c56..be466b0 100644
--- a/tests/unit-tests/test-interest.cpp
+++ b/tests/unit-tests/interest.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/test-key-locator.cpp b/tests/unit-tests/key-locator.t.cpp
similarity index 97%
rename from tests/unit-tests/test-key-locator.cpp
rename to tests/unit-tests/key-locator.t.cpp
index 9ed7849..671a362 100644
--- a/tests/unit-tests/test-key-locator.cpp
+++ b/tests/unit-tests/key-locator.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,6 +25,7 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(TestKeyLocator)
 
@@ -173,4 +174,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/test-make-interest-data.hpp b/tests/unit-tests/make-interest-data.hpp
similarity index 82%
rename from tests/unit-tests/test-make-interest-data.hpp
rename to tests/unit-tests/make-interest-data.hpp
index 697447c..23fcc22 100644
--- a/tests/unit-tests/test-make-interest-data.hpp
+++ b/tests/unit-tests/make-interest-data.hpp
@@ -1,11 +1,11 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014  Regents of the University of California,
- *                     Arizona Board of Regents,
- *                     Colorado State University,
- *                     University Pierre & Marie Curie, Sorbonne University,
- *                     Washington University in St. Louis,
- *                     Beijing Institute of Technology
+ * Copyright (c) 2013-2015 Regents of the University of California,
+ *                         Arizona Board of Regents,
+ *                         Colorado State University,
+ *                         University Pierre & Marie Curie, Sorbonne University,
+ *                         Washington University in St. Louis,
+ *                         Beijing Institute of Technology
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -22,7 +22,7 @@
  * <http://www.gnu.org/licenses/>.
  *
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
- **/
+ */
 
 #ifndef NDN_TESTS_UNIT_TESTS_MAKE_INTEREST_DATA_HPP
 #define NDN_TESTS_UNIT_TESTS_MAKE_INTEREST_DATA_HPP
@@ -61,7 +61,6 @@
 }
 
 } // namespace util
-
 } // namespace ndn
 
 #endif // NDN_TESTS_UNIT_TESTS_MAKE_INTEREST_DATA_HPP
diff --git a/tests/unit-tests/management/test-nfd-channel-status.cpp b/tests/unit-tests/management/nfd-channel-status.t.cpp
similarity index 94%
rename from tests/unit-tests/management/test-nfd-channel-status.cpp
rename to tests/unit-tests/management/nfd-channel-status.t.cpp
index 5e3ea6c..7fff8d4 100644
--- a/tests/unit-tests/management/test-nfd-channel-status.cpp
+++ b/tests/unit-tests/management/nfd-channel-status.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -27,7 +27,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdChannelStatus)
+BOOST_AUTO_TEST_SUITE(ManagementNfdChannelStatus)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
diff --git a/tests/unit-tests/management/test-nfd-command-options.cpp b/tests/unit-tests/management/nfd-command-options.t.cpp
similarity index 96%
rename from tests/unit-tests/management/test-nfd-command-options.cpp
rename to tests/unit-tests/management/nfd-command-options.t.cpp
index b1afb35..8a2a4b1 100644
--- a/tests/unit-tests/management/test-nfd-command-options.cpp
+++ b/tests/unit-tests/management/nfd-command-options.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -27,7 +27,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdCommandOptions)
+BOOST_AUTO_TEST_SUITE(ManagementNfdCommandOptions)
 
 BOOST_AUTO_TEST_CASE(Timeout)
 {
diff --git a/tests/unit-tests/management/test-nfd-control-command.cpp b/tests/unit-tests/management/nfd-control-command.t.cpp
similarity index 98%
rename from tests/unit-tests/management/test-nfd-control-command.cpp
rename to tests/unit-tests/management/nfd-control-command.t.cpp
index a0ea8c1..a82c8b9 100644
--- a/tests/unit-tests/management/test-nfd-control-command.cpp
+++ b/tests/unit-tests/management/nfd-control-command.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdControlCommand)
+BOOST_AUTO_TEST_SUITE(ManagementNfdControlCommand)
 
 BOOST_AUTO_TEST_CASE(FaceCreate)
 {
@@ -286,5 +287,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-control-parameters.cpp b/tests/unit-tests/management/nfd-control-parameters.t.cpp
similarity index 96%
rename from tests/unit-tests/management/test-nfd-control-parameters.cpp
rename to tests/unit-tests/management/nfd-control-parameters.t.cpp
index 737e89e..9a959e4 100644
--- a/tests/unit-tests/management/test-nfd-control-parameters.cpp
+++ b/tests/unit-tests/management/nfd-control-parameters.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdControlParameters)
+BOOST_AUTO_TEST_SUITE(ManagementNfdControlParameters)
 
 BOOST_AUTO_TEST_CASE(FaceOptions)
 {
@@ -138,5 +139,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-control-response.cpp b/tests/unit-tests/management/nfd-control-response.t.cpp
similarity index 93%
rename from tests/unit-tests/management/test-nfd-control-response.cpp
rename to tests/unit-tests/management/nfd-control-response.t.cpp
index 8ca9e8b..9ce5dcb 100644
--- a/tests/unit-tests/management/test-nfd-control-response.cpp
+++ b/tests/unit-tests/management/nfd-control-response.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdControlResponse)
+BOOST_AUTO_TEST_SUITE(ManagementNfdControlResponse)
 
 const uint8_t TestControlResponse[] = {0x65, 0x17,
                                        0x66, 0x02, 0x01, 0x94, 0x67, 0x11, 0x4e, 0x6f, 0x74,
@@ -58,5 +59,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-controller.cpp b/tests/unit-tests/management/nfd-controller.t.cpp
similarity index 98%
rename from tests/unit-tests/management/test-nfd-controller.cpp
rename to tests/unit-tests/management/nfd-controller.t.cpp
index 8555dde..2419627 100644
--- a/tests/unit-tests/management/test-nfd-controller.cpp
+++ b/tests/unit-tests/management/nfd-controller.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -35,7 +35,7 @@
 using ndn::util::DummyClientFace;
 using ndn::util::makeDummyClientFace;
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdController)
+BOOST_AUTO_TEST_SUITE(ManagementNfdController)
 
 class CommandFixture : public ndn::tests::UnitTestTimeFixture
 {
diff --git a/tests/unit-tests/management/test-nfd-face-event-notification.cpp b/tests/unit-tests/management/nfd-face-event-notification.t.cpp
similarity index 97%
rename from tests/unit-tests/management/test-nfd-face-event-notification.cpp
rename to tests/unit-tests/management/nfd-face-event-notification.t.cpp
index 5d014d8..0fce21b 100644
--- a/tests/unit-tests/management/test-nfd-face-event-notification.cpp
+++ b/tests/unit-tests/management/nfd-face-event-notification.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdFaceEventNotification)
+BOOST_AUTO_TEST_SUITE(ManagementNfdFaceEventNotification)
 
 BOOST_AUTO_TEST_CASE(Traits)
 {
@@ -163,5 +164,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-face-query-filter.cpp b/tests/unit-tests/management/nfd-face-query-filter.t.cpp
similarity index 95%
rename from tests/unit-tests/management/test-nfd-face-query-filter.cpp
rename to tests/unit-tests/management/nfd-face-query-filter.t.cpp
index 575c475..845e314 100644
--- a/tests/unit-tests/management/test-nfd-face-query-filter.cpp
+++ b/tests/unit-tests/management/nfd-face-query-filter.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdFaceQueryFilter)
+BOOST_AUTO_TEST_SUITE(ManagementNfdFaceQueryFilter)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -93,5 +94,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-face-status.cpp b/tests/unit-tests/management/nfd-face-status.t.cpp
similarity index 96%
rename from tests/unit-tests/management/test-nfd-face-status.cpp
rename to tests/unit-tests/management/nfd-face-status.t.cpp
index 4c1a7fa..f502f13 100644
--- a/tests/unit-tests/management/test-nfd-face-status.cpp
+++ b/tests/unit-tests/management/nfd-face-status.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdFaceStatus)
+BOOST_AUTO_TEST_SUITE(ManagementNfdFaceStatus)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -99,5 +100,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-fib-entry.cpp b/tests/unit-tests/management/nfd-fib-entry.t.cpp
similarity index 96%
rename from tests/unit-tests/management/test-nfd-fib-entry.cpp
rename to tests/unit-tests/management/nfd-fib-entry.t.cpp
index 5b7d20b..05459f3 100644
--- a/tests/unit-tests/management/test-nfd-fib-entry.cpp
+++ b/tests/unit-tests/management/nfd-fib-entry.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdFibEntry)
+BOOST_AUTO_TEST_SUITE(ManagementNfdFibEntry)
 
 const uint8_t TestNextHopRecord[] =
 {
@@ -150,5 +151,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-forwarder-status.cpp b/tests/unit-tests/management/nfd-forwarder-status.t.cpp
similarity index 95%
rename from tests/unit-tests/management/test-nfd-forwarder-status.cpp
rename to tests/unit-tests/management/nfd-forwarder-status.t.cpp
index 0255f3c..c313791 100644
--- a/tests/unit-tests/management/test-nfd-forwarder-status.cpp
+++ b/tests/unit-tests/management/nfd-forwarder-status.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -26,8 +26,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdForwarderStatus)
+BOOST_AUTO_TEST_SUITE(ManagementNfdForwarderStatus)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
@@ -87,5 +88,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-rib-entry.cpp b/tests/unit-tests/management/nfd-rib-entry.t.cpp
similarity index 98%
rename from tests/unit-tests/management/test-nfd-rib-entry.cpp
rename to tests/unit-tests/management/nfd-rib-entry.t.cpp
index 858598f..4018386 100644
--- a/tests/unit-tests/management/test-nfd-rib-entry.cpp
+++ b/tests/unit-tests/management/nfd-rib-entry.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -26,8 +26,9 @@
 
 namespace ndn {
 namespace nfd {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdRibEntry)
+BOOST_AUTO_TEST_SUITE(ManagementNfdRibEntry)
 
 const uint8_t RouteData[] =
 {
@@ -337,5 +338,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace nfd
 } // namespace ndn
diff --git a/tests/unit-tests/management/test-nfd-strategy-choice.cpp b/tests/unit-tests/management/nfd-strategy-choice.t.cpp
similarity index 95%
rename from tests/unit-tests/management/test-nfd-strategy-choice.cpp
rename to tests/unit-tests/management/nfd-strategy-choice.t.cpp
index d19c2c8..38290fa 100644
--- a/tests/unit-tests/management/test-nfd-strategy-choice.cpp
+++ b/tests/unit-tests/management/nfd-strategy-choice.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -27,7 +27,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(ManagementTestNfdStrategyChoice)
+BOOST_AUTO_TEST_SUITE(ManagementNfdStrategyChoice)
 
 BOOST_AUTO_TEST_CASE(Encode)
 {
diff --git a/tests/unit-tests/test-meta-info.cpp b/tests/unit-tests/meta-info.t.cpp
similarity index 98%
rename from tests/unit-tests/test-meta-info.cpp
rename to tests/unit-tests/meta-info.t.cpp
index fe25005..6c158a2 100644
--- a/tests/unit-tests/test-meta-info.cpp
+++ b/tests/unit-tests/meta-info.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/security/test-certificate-cache.cpp b/tests/unit-tests/security/certificate-cache-ttl.t.cpp
similarity index 96%
rename from tests/unit-tests/security/test-certificate-cache.cpp
rename to tests/unit-tests/security/certificate-cache-ttl.t.cpp
index 1524b1d..4d3430d 100644
--- a/tests/unit-tests/security/test-certificate-cache.cpp
+++ b/tests/unit-tests/security/certificate-cache-ttl.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -29,7 +29,7 @@
 namespace ndn {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(SecurityTestCertificateCache)
+BOOST_AUTO_TEST_SUITE(SecurityCertificateCacheTtl)
 
 class CertificateCacheFixture : public UnitTestTimeFixture
 {
@@ -64,7 +64,6 @@
   Name name2;
 };
 
-
 BOOST_FIXTURE_TEST_CASE(Expiration, CertificateCacheFixture)
 {
   cache->insertCertificate(cert1);
diff --git a/tests/unit-tests/security/test-encode-decode-certificate.cpp b/tests/unit-tests/security/certificate.t.cpp
similarity index 98%
rename from tests/unit-tests/security/test-encode-decode-certificate.cpp
rename to tests/unit-tests/security/certificate.t.cpp
index 04ac645..b975cf0 100644
--- a/tests/unit-tests/security/test-encode-decode-certificate.cpp
+++ b/tests/unit-tests/security/certificate.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -33,7 +33,7 @@
 
 using namespace CryptoPP;
 
-BOOST_AUTO_TEST_SUITE(SecurityTestCertificate)
+BOOST_AUTO_TEST_SUITE(SecurityEncodeDecodeCertificate)
 
 const uint8_t PUBLIC_KEY[] = {
 0x30, 0x81, 0x9d, 0x30, 0x0d, 0x06, 0x09, 0x2a, 0x86, 0x48, 0x86, 0xf7, 0x0d, 0x01, 0x01,
diff --git a/tests/unit-tests/security/test-conf-checker.cpp b/tests/unit-tests/security/conf/checker.t.cpp
similarity index 97%
rename from tests/unit-tests/security/test-conf-checker.cpp
rename to tests/unit-tests/security/conf/checker.t.cpp
index f173436..ea26b0c 100644
--- a/tests/unit-tests/security/test-conf-checker.cpp
+++ b/tests/unit-tests/security/conf/checker.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,11 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace security {
+namespace conf {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestConfChecker, security::IdentityManagementFixture)
+BOOST_FIXTURE_TEST_SUITE(SecurityConfChecker, IdentityManagementFixture)
 
 void
 interestChecked(const shared_ptr<const Interest>& interest)
@@ -525,4 +528,7 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
+} // namespace conf
+} // namespace security
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-digest-sha256.cpp b/tests/unit-tests/security/digest-sha256.t.cpp
similarity index 91%
rename from tests/unit-tests/security/test-digest-sha256.cpp
rename to tests/unit-tests/security/digest-sha256.t.cpp
index 4460be7..b0cdebc 100644
--- a/tests/unit-tests/security/test-digest-sha256.cpp
+++ b/tests/unit-tests/security/digest-sha256.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,6 +19,7 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
+#include "security/digest-sha256.hpp"
 #include "security/key-chain.hpp"
 #include "security/validator.hpp"
 #include "security/cryptopp.hpp"
@@ -26,8 +27,9 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestDigestSha256, security::IdentityManagementFixture)
+BOOST_FIXTURE_TEST_SUITE(SecurityDigestSha256, security::IdentityManagementFixture)
 
 std::string SHA256_RESULT("a883dafc480d466ee04e0d6da986bd78eb1fdd2178d04693723da3a8f95d42f4");
 
@@ -78,7 +80,7 @@
   BOOST_CHECK(Validator::verifySignature(testInterest, sig));
 }
 
-
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-fixture.cpp b/tests/unit-tests/security/identity-management-fixture.t.cpp
similarity index 85%
rename from tests/unit-tests/security/test-fixture.cpp
rename to tests/unit-tests/security/identity-management-fixture.t.cpp
index 1b0226a..046c018 100644
--- a/tests/unit-tests/security/test-fixture.cpp
+++ b/tests/unit-tests/security/identity-management-fixture.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -23,8 +23,10 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace security {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestIdentityManagementFixture, security::IdentityManagementFixture)
+BOOST_FIXTURE_TEST_SUITE(SecurityIdentityManagementFixture, IdentityManagementFixture)
 
 BOOST_AUTO_TEST_CASE(Tmp)
 {
@@ -37,4 +39,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
+} // namespace security
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-keychain.cpp b/tests/unit-tests/security/key-chain.t.cpp
similarity index 99%
rename from tests/unit-tests/security/test-keychain.cpp
rename to tests/unit-tests/security/key-chain.t.cpp
index 5f8e06b..f3d125a 100644
--- a/tests/unit-tests/security/test-keychain.cpp
+++ b/tests/unit-tests/security/key-chain.t.cpp
@@ -31,7 +31,7 @@
 
 using std::vector;
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestKeyChain, util::TestHomeEnvironmentFixture)
+BOOST_FIXTURE_TEST_SUITE(SecurityKeyChain, util::TestHomeEnvironmentFixture)
 
 BOOST_AUTO_TEST_CASE(ConstructorNormalConfig)
 {
diff --git a/tests/unit-tests/security/test-key-params.cpp b/tests/unit-tests/security/key-params.t.cpp
similarity index 94%
rename from tests/unit-tests/security/test-key-params.cpp
rename to tests/unit-tests/security/key-params.t.cpp
index 48db6c6..3cfc61c 100644
--- a/tests/unit-tests/security/test-key-params.cpp
+++ b/tests/unit-tests/security/key-params.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,8 +25,9 @@
 
 
 namespace ndn {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(SecurityTestKeyParams)
+BOOST_AUTO_TEST_SUITE(SecurityKeyParams)
 
 BOOST_AUTO_TEST_CASE(RsaParameter)
 {
@@ -88,4 +89,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-public-key.cpp b/tests/unit-tests/security/public-key.t.cpp
similarity index 96%
rename from tests/unit-tests/security/test-public-key.cpp
rename to tests/unit-tests/security/public-key.t.cpp
index 46ecfea..96fda58 100644
--- a/tests/unit-tests/security/test-public-key.cpp
+++ b/tests/unit-tests/security/public-key.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,10 +25,10 @@
 
 #include "boost-test.hpp"
 
-
 namespace ndn {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(SecurityTestPublicKey)
+BOOST_AUTO_TEST_SUITE(SecurityPublicKey)
 
 const std::string RSA_DER("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuFoDcNtffwbfFix64fw0\
 hI2tKMkFrc6Ex7yw0YLMK9vGE8lXOyBl/qXabow6RCz+GldmFN6E2Qhm1+AX3Zm5\
@@ -104,4 +104,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-sec-public-info-sqlite3.cpp b/tests/unit-tests/security/sec-public-info-sqlite3.t.cpp
similarity index 97%
rename from tests/unit-tests/security/test-sec-public-info-sqlite3.cpp
rename to tests/unit-tests/security/sec-public-info-sqlite3.t.cpp
index 88b3ee7..2828b0a 100644
--- a/tests/unit-tests/security/test-sec-public-info-sqlite3.cpp
+++ b/tests/unit-tests/security/sec-public-info-sqlite3.t.cpp
@@ -30,6 +30,7 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
 class PibTmpPathFixture
 {
@@ -51,7 +52,7 @@
   boost::filesystem::path tmpPath;
 };
 
-BOOST_AUTO_TEST_SUITE(SecurityTestSecPublicInfoSqlite3)
+BOOST_AUTO_TEST_SUITE(SecuritySecPublicInfoSqlite3)
 
 const std::string RSA_DER("MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuFoDcNtffwbfFix64fw0\
 hI2tKMkFrc6Ex7yw0YLMK9vGE8lXOyBl/qXabow6RCz+GldmFN6E2Qhm1+AX3Zm5\
@@ -145,4 +146,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-sec-rule.cpp b/tests/unit-tests/security/sec-rule-relative.t.cpp
similarity index 61%
copy from tests/unit-tests/security/test-sec-rule.cpp
copy to tests/unit-tests/security/sec-rule-relative.t.cpp
index 91f9b09..f2f92e6 100644
--- a/tests/unit-tests/security/test-sec-rule.cpp
+++ b/tests/unit-tests/security/sec-rule-relative.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,46 +19,14 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-#include "security/sec-rule-specific.hpp"
 #include "security/sec-rule-relative.hpp"
-#include "security/key-chain.hpp"
 #include "identity-management-fixture.hpp"
 
-#include "boost-test.hpp"
-
 namespace ndn {
+namespace security {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestSecRule, security::IdentityManagementFixture)
-
-BOOST_AUTO_TEST_CASE(SecRuleSpecificTest)
-{
-  Name rsaIdentity("/SecurityTestSecRule/Basic/Rsa");
-  BOOST_REQUIRE(addIdentity(rsaIdentity, RsaKeyParams()));
-  Name ecdsaIdentity("/SecurityTestSecRule/Basic/Ecdsa");
-  BOOST_REQUIRE(addIdentity(ecdsaIdentity, EcdsaKeyParams()));
-
-  Name dataName("SecurityTestSecRule/Basic");
-  Data rsaData(dataName);
-  m_keyChain.signByIdentity(rsaData, rsaIdentity);
-  Data ecdsaData(dataName);
-  m_keyChain.signByIdentity(ecdsaData, ecdsaIdentity);
-  Data sha256Data(dataName);
-  m_keyChain.signWithSha256(sha256Data);
-
-  shared_ptr<Regex> dataRegex =
-    make_shared<Regex>("^<SecurityTestSecRule><Basic>$");
-  shared_ptr<Regex> signerRegex =
-    make_shared<Regex>("^<SecurityTestSecRule><Basic><><KEY><><>$");
-
-  SecRuleSpecific rule(dataRegex, signerRegex);
-  BOOST_CHECK(rule.satisfy(rsaData));
-  BOOST_CHECK(rule.satisfy(ecdsaData));
-  BOOST_CHECK_EQUAL(rule.satisfy(sha256Data), false);
-
-  BOOST_CHECK(rule.matchSignerName(rsaData));
-  BOOST_CHECK(rule.matchSignerName(ecdsaData));
-  BOOST_CHECK_EQUAL(rule.matchSignerName(sha256Data), false);
-}
+BOOST_FIXTURE_TEST_SUITE(SecuritySecRuleRelative, IdentityManagementFixture)
 
 BOOST_AUTO_TEST_CASE(SecRuleRelativeTest)
 {
@@ -89,4 +57,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
+} // namespace security
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-sec-rule.cpp b/tests/unit-tests/security/sec-rule-specific.t.cpp
similarity index 65%
rename from tests/unit-tests/security/test-sec-rule.cpp
rename to tests/unit-tests/security/sec-rule-specific.t.cpp
index 91f9b09..3c48265 100644
--- a/tests/unit-tests/security/test-sec-rule.cpp
+++ b/tests/unit-tests/security/sec-rule-specific.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -20,15 +20,16 @@
  */
 
 #include "security/sec-rule-specific.hpp"
-#include "security/sec-rule-relative.hpp"
 #include "security/key-chain.hpp"
 #include "identity-management-fixture.hpp"
 
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace security {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestSecRule, security::IdentityManagementFixture)
+BOOST_FIXTURE_TEST_SUITE(SecuritySecRuleSpecific, IdentityManagementFixture)
 
 BOOST_AUTO_TEST_CASE(SecRuleSpecificTest)
 {
@@ -60,33 +61,8 @@
   BOOST_CHECK_EQUAL(rule.matchSignerName(sha256Data), false);
 }
 
-BOOST_AUTO_TEST_CASE(SecRuleRelativeTest)
-{
-  Name rsaIdentity("/SecurityTestSecRule/Basic/Rsa");
-  BOOST_REQUIRE(addIdentity(rsaIdentity, RsaKeyParams()));
-  Name ecdsaIdentity("/SecurityTestSecRule/Basic/Ecdsa");
-  BOOST_REQUIRE(addIdentity(ecdsaIdentity, EcdsaKeyParams()));
-
-  Name dataName("SecurityTestSecRule/Basic");
-  Data rsaData(dataName);
-  m_keyChain.signByIdentity(rsaData, rsaIdentity);
-  Data ecdsaData(dataName);
-  m_keyChain.signByIdentity(ecdsaData, ecdsaIdentity);
-  Data sha256Data(dataName);
-  m_keyChain.signWithSha256(sha256Data);
-
-  SecRuleRelative rule("^(<SecurityTestSecRule><Basic>)$",
-                       "^(<SecurityTestSecRule><Basic>)<><KEY><><>$",
-                       "==", "\\1", "\\1", true);
-  BOOST_CHECK(rule.satisfy(rsaData));
-  BOOST_CHECK(rule.satisfy(ecdsaData));
-  BOOST_CHECK_EQUAL(rule.satisfy(sha256Data), false);
-
-  BOOST_CHECK(rule.matchSignerName(rsaData));
-  BOOST_CHECK(rule.matchSignerName(ecdsaData));
-  BOOST_CHECK_EQUAL(rule.matchSignerName(sha256Data), false);
-}
-
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
+} // namespace security
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-sec-tpm-file.cpp b/tests/unit-tests/security/sec-tpm-file.t.cpp
similarity index 99%
rename from tests/unit-tests/security/test-sec-tpm-file.cpp
rename to tests/unit-tests/security/sec-tpm-file.t.cpp
index 8b262ba..fc1f6fb 100644
--- a/tests/unit-tests/security/test-sec-tpm-file.cpp
+++ b/tests/unit-tests/security/sec-tpm-file.t.cpp
@@ -30,8 +30,9 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(SecurityTestSecTpmFile)
+BOOST_AUTO_TEST_SUITE(SecuritySecTpmFile)
 
 BOOST_AUTO_TEST_CASE(Delete)
 {
@@ -404,7 +405,7 @@
   BOOST_REQUIRE_EQUAL(tpm.doesKeyExistInTpm(keyName, KEY_CLASS_PUBLIC), false);
 }
 
-
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-sec-tpm-osx.cpp b/tests/unit-tests/security/sec-tpm-osx.t.cpp
similarity index 98%
rename from tests/unit-tests/security/test-sec-tpm-osx.cpp
rename to tests/unit-tests/security/sec-tpm-osx.t.cpp
index 0fd1ba3..1e590af 100644
--- a/tests/unit-tests/security/test-sec-tpm-osx.cpp
+++ b/tests/unit-tests/security/sec-tpm-osx.t.cpp
@@ -30,6 +30,7 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
 class OsxKeyChainTestFixture
 {
@@ -61,7 +62,7 @@
   std::string m_HOME;
 };
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestSecTpmOsx, OsxKeyChainTestFixture)
+BOOST_FIXTURE_TEST_SUITE(SecuritySecTpmOsx, OsxKeyChainTestFixture)
 
 BOOST_AUTO_TEST_CASE(Delete)
 {
@@ -360,4 +361,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/security/test-signature-sha256-ecdsa.cpp b/tests/unit-tests/security/signature-sha256-with-ecdsa.t.cpp
similarity index 96%
rename from tests/unit-tests/security/test-signature-sha256-ecdsa.cpp
rename to tests/unit-tests/security/signature-sha256-with-ecdsa.t.cpp
index a384bdc..22b324a 100644
--- a/tests/unit-tests/security/test-signature-sha256-ecdsa.cpp
+++ b/tests/unit-tests/security/signature-sha256-with-ecdsa.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -43,7 +43,7 @@
   Scheduler scheduler;
 };
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestSignatureSha256WithEcdsa, SignatureSha256EcdsaTimeFixture)
+BOOST_FIXTURE_TEST_SUITE(SecuritySignatureSha256WithEcdsa, SignatureSha256EcdsaTimeFixture)
 
 const uint8_t sigInfo[] = {
 0x16, 0x1b, // SignatureInfo
diff --git a/tests/unit-tests/security/test-signature-sha256-rsa.cpp b/tests/unit-tests/security/signature-sha256-with-rsa.t.cpp
similarity index 97%
rename from tests/unit-tests/security/test-signature-sha256-rsa.cpp
rename to tests/unit-tests/security/signature-sha256-with-rsa.t.cpp
index cf6b172..0eb39f4 100644
--- a/tests/unit-tests/security/test-signature-sha256-rsa.cpp
+++ b/tests/unit-tests/security/signature-sha256-with-rsa.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -43,7 +43,7 @@
   Scheduler scheduler;
 };
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestSignatureSha256WithRsa, SignatureSha256RsaTimeFixture)
+BOOST_FIXTURE_TEST_SUITE(SecuritySignatureSha256WithRsa, SignatureSha256RsaTimeFixture)
 
 const uint8_t sigInfo[] = {
 0x16, 0x1b, // SignatureInfo
diff --git a/tests/unit-tests/security/test-validator-config.cpp b/tests/unit-tests/security/validator-config.t.cpp
similarity index 99%
rename from tests/unit-tests/security/test-validator-config.cpp
rename to tests/unit-tests/security/validator-config.t.cpp
index b6a3102..4171554 100644
--- a/tests/unit-tests/security/test-validator-config.cpp
+++ b/tests/unit-tests/security/validator-config.t.cpp
@@ -37,7 +37,7 @@
 namespace ndn {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(TestValidatorConfig)
+BOOST_AUTO_TEST_SUITE(SecurityValidatorConfig)
 
 BOOST_FIXTURE_TEST_CASE(NameFilter, security::IdentityManagementFixture)
 {
diff --git a/tests/unit-tests/security/test-validator.cpp b/tests/unit-tests/security/validator.t.cpp
similarity index 97%
rename from tests/unit-tests/security/test-validator.cpp
rename to tests/unit-tests/security/validator.t.cpp
index 46bc6a3..e72171e 100644
--- a/tests/unit-tests/security/test-validator.cpp
+++ b/tests/unit-tests/security/validator.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -26,10 +26,11 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
 using std::string;
 
-BOOST_FIXTURE_TEST_SUITE(SecurityTestValidator, security::IdentityManagementFixture)
+BOOST_FIXTURE_TEST_SUITE(SecurityValidator, security::IdentityManagementFixture)
 
 void
 onValidated(const shared_ptr<const Data>& data)
@@ -219,4 +220,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/test-signature-info.cpp b/tests/unit-tests/signature-info.t.cpp
similarity index 97%
rename from tests/unit-tests/test-signature-info.cpp
rename to tests/unit-tests/signature-info.t.cpp
index fc2cb52..b1f2047 100644
--- a/tests/unit-tests/test-signature-info.cpp
+++ b/tests/unit-tests/signature-info.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -24,6 +24,7 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(TestSignatureInfo)
 
@@ -175,4 +176,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/test-tag-host.cpp b/tests/unit-tests/tag-host.t.cpp
similarity index 97%
rename from tests/unit-tests/test-tag-host.cpp
rename to tests/unit-tests/tag-host.t.cpp
index b0bff72..ffdf7e0 100644
--- a/tests/unit-tests/test-tag-host.cpp
+++ b/tests/unit-tests/tag-host.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/transport/test-tcp-transport.cpp b/tests/unit-tests/transport/tcp-transport.t.cpp
similarity index 95%
rename from tests/unit-tests/transport/test-tcp-transport.cpp
rename to tests/unit-tests/transport/tcp-transport.t.cpp
index 7c646d8..c8aa461 100644
--- a/tests/unit-tests/transport/test-tcp-transport.cpp
+++ b/tests/unit-tests/transport/tcp-transport.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -25,10 +25,9 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
-
-
-BOOST_FIXTURE_TEST_SUITE(TransportTestTcpTransport, TransportFixture)
+BOOST_FIXTURE_TEST_SUITE(TransportTcpTransport, TransportFixture)
 
 BOOST_AUTO_TEST_CASE(GetDefaultSocketNameOk)
 {
@@ -101,4 +100,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/transport/test-unix-transport.cpp b/tests/unit-tests/transport/unix-transport.t.cpp
similarity index 96%
rename from tests/unit-tests/transport/test-unix-transport.cpp
rename to tests/unit-tests/transport/unix-transport.t.cpp
index 7bfebe9..83ae2b0 100644
--- a/tests/unit-tests/transport/test-unix-transport.cpp
+++ b/tests/unit-tests/transport/unix-transport.t.cpp
@@ -25,8 +25,9 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TransportTestUnixTransport, TransportFixture)
+BOOST_FIXTURE_TEST_SUITE(TransportUnixTransport, TransportFixture)
 
 BOOST_AUTO_TEST_CASE(GetDefaultSocketNameOk)
 {
@@ -78,4 +79,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/unit-test-time-fixture.hpp b/tests/unit-tests/unit-test-time-fixture.hpp
index 606ed53..9c349fb 100644
--- a/tests/unit-tests/unit-test-time-fixture.hpp
+++ b/tests/unit-tests/unit-test-time-fixture.hpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/util/concepts.cpp b/tests/unit-tests/util/concepts.t.cpp
similarity index 77%
rename from tests/unit-tests/util/concepts.cpp
rename to tests/unit-tests/util/concepts.t.cpp
index 0486013..522e737 100644
--- a/tests/unit-tests/util/concepts.cpp
+++ b/tests/unit-tests/util/concepts.t.cpp
@@ -1,12 +1,12 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014,  Regents of the University of California,
- *                      Arizona Board of Regents,
- *                      Colorado State University,
- *                      University Pierre & Marie Curie, Sorbonne University,
- *                      Washington University in St. Louis,
- *                      Beijing Institute of Technology,
- *                      The University of Memphis
+ * Copyright (c) 2013-2015 Regents of the University of California,
+ *                         Arizona Board of Regents,
+ *                         Colorado State University,
+ *                         University Pierre & Marie Curie, Sorbonne University,
+ *                         Washington University in St. Louis,
+ *                         Beijing Institute of Technology,
+ *                         The University of Memphis.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/util/test-config-file.cpp b/tests/unit-tests/util/config-file.t.cpp
similarity index 94%
rename from tests/unit-tests/util/test-config-file.cpp
rename to tests/unit-tests/util/config-file.t.cpp
index 2f6650e..af03156 100644
--- a/tests/unit-tests/util/test-config-file.cpp
+++ b/tests/unit-tests/util/config-file.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -29,7 +29,7 @@
 namespace ndn {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(UtilTestConfigFile, util::TestHomeEnvironmentFixture)
+BOOST_FIXTURE_TEST_SUITE(UtilConfigFile, util::TestHomeEnvironmentFixture)
 
 BOOST_AUTO_TEST_CASE(TestParse)
 {
diff --git a/tests/unit-tests/util/test-digest.cpp b/tests/unit-tests/util/digest.t.cpp
similarity index 98%
rename from tests/unit-tests/util/test-digest.cpp
rename to tests/unit-tests/util/digest.t.cpp
index 6a43067..252a0e7 100644
--- a/tests/unit-tests/util/test-digest.cpp
+++ b/tests/unit-tests/util/digest.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -28,7 +28,7 @@
 namespace util {
 namespace test {
 
-BOOST_AUTO_TEST_SUITE(UtilTestDigest)
+BOOST_AUTO_TEST_SUITE(UtilDigest)
 
 BOOST_AUTO_TEST_CASE(Sha256Digest)
 {
diff --git a/tests/unit-tests/util/test-dns.cpp b/tests/unit-tests/util/dns.t.cpp
similarity index 100%
rename from tests/unit-tests/util/test-dns.cpp
rename to tests/unit-tests/util/dns.t.cpp
diff --git a/tests/unit-tests/util/ethernet.cpp b/tests/unit-tests/util/ethernet.t.cpp
similarity index 88%
rename from tests/unit-tests/util/ethernet.cpp
rename to tests/unit-tests/util/ethernet.t.cpp
index 35c0dee..9b7aa35 100644
--- a/tests/unit-tests/util/ethernet.cpp
+++ b/tests/unit-tests/util/ethernet.t.cpp
@@ -1,12 +1,12 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014,  Regents of the University of California,
- *                      Arizona Board of Regents,
- *                      Colorado State University,
- *                      University Pierre & Marie Curie, Sorbonne University,
- *                      Washington University in St. Louis,
- *                      Beijing Institute of Technology,
- *                      The University of Memphis
+ * Copyright (c) 2013-2015 Regents of the University of California,
+ *                         Arizona Board of Regents,
+ *                         Colorado State University,
+ *                         University Pierre & Marie Curie, Sorbonne University,
+ *                         Washington University in St. Louis,
+ *                         Beijing Institute of Technology,
+ *                         The University of Memphis.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -31,8 +31,9 @@
 
 namespace ndn {
 namespace util {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(UtilTestEthernet)
+BOOST_AUTO_TEST_SUITE(UtilEthernet)
 
 BOOST_AUTO_TEST_CASE(BasicChecks)
 {
@@ -111,5 +112,6 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace util
 } // namespace ndn
diff --git a/tests/unit-tests/util/test-event-emitter.cpp b/tests/unit-tests/util/event-emitter.t.cpp
similarity index 78%
rename from tests/unit-tests/util/test-event-emitter.cpp
rename to tests/unit-tests/util/event-emitter.t.cpp
index 8dd5314..b429dbf 100644
--- a/tests/unit-tests/util/test-event-emitter.cpp
+++ b/tests/unit-tests/util/event-emitter.t.cpp
@@ -1,6 +1,11 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California,
+ *                         Arizona Board of Regents,
+ *                         Colorado State University,
+ *                         University Pierre & Marie Curie, Sorbonne University,
+ *                         Washington University in St. Louis,
+ *                         Beijing Institute of Technology
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -17,42 +22,16 @@
  * <http://www.gnu.org/licenses/>.
  *
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
- *
- * This code is actually copied from NFD project (NDN Forwarding Daemon).
- * We acknowledge the permission of the authors of NFD.
  */
-/**
- * Copyright (c) 2014  Regents of the University of California,
- *                     Arizona Board of Regents,
- *                     Colorado State University,
- *                     University Pierre & Marie Curie, Sorbonne University,
- *                     Washington University in St. Louis,
- *                     Beijing Institute of Technology
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- **/
 
 #include "util/event-emitter.hpp"
 
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace util {
 namespace tests {
 
-using ndn::util::EventEmitter;
-
 BOOST_AUTO_TEST_SUITE(UtilEventEmitter)
 
 class EventEmitterTester : noncopyable
@@ -272,4 +251,5 @@
 BOOST_AUTO_TEST_SUITE_END()
 
 } // namespace tests
+} // namespace util
 } // namespace ndn
diff --git a/tests/unit-tests/util/face-uri.cpp b/tests/unit-tests/util/face-uri.t.cpp
similarity index 96%
rename from tests/unit-tests/util/face-uri.cpp
rename to tests/unit-tests/util/face-uri.t.cpp
index 39353be..5ae5e28 100644
--- a/tests/unit-tests/util/face-uri.cpp
+++ b/tests/unit-tests/util/face-uri.t.cpp
@@ -1,12 +1,12 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2014-2015,  Regents of the University of California,
- *                           Arizona Board of Regents,
- *                           Colorado State University,
- *                           University Pierre & Marie Curie, Sorbonne University,
- *                           Washington University in St. Louis,
- *                           Beijing Institute of Technology,
- *                           The University of Memphis.
+ * Copyright (c) 2013-2015 Regents of the University of California,
+ *                         Arizona Board of Regents,
+ *                         Colorado State University,
+ *                         University Pierre & Marie Curie, Sorbonne University,
+ *                         Washington University in St. Louis,
+ *                         Beijing Institute of Technology,
+ *                         The University of Memphis.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -36,7 +36,7 @@
 
 using ndn::tests::NetworkConfigurationDetector;
 
-BOOST_AUTO_TEST_SUITE(UtilTestFaceUri)
+BOOST_AUTO_TEST_SUITE(UtilFaceUri)
 
 class CanonizeFixture : noncopyable
 {
diff --git a/tests/unit-tests/util/test-in-memory-storage-fifo.cpp b/tests/unit-tests/util/in-memory-storage-fifo.t.cpp
similarity index 93%
rename from tests/unit-tests/util/test-in-memory-storage-fifo.cpp
rename to tests/unit-tests/util/in-memory-storage-fifo.t.cpp
index 9a7a13b..f090169 100644
--- a/tests/unit-tests/util/test-in-memory-storage-fifo.cpp
+++ b/tests/unit-tests/util/in-memory-storage-fifo.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -23,10 +23,11 @@
 #include "security/key-chain.hpp"
 
 #include "boost-test.hpp"
-#include "../test-make-interest-data.hpp"
+#include "../make-interest-data.hpp"
 
 namespace ndn {
 namespace util {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(UtilInMemoryStorage)
 BOOST_AUTO_TEST_SUITE(Fifo)
@@ -75,5 +76,6 @@
 BOOST_AUTO_TEST_SUITE_END() // Fifo
 BOOST_AUTO_TEST_SUITE_END() // UtilInMemoryStorage
 
+} // namespace tests
 } // namespace util
 } // namespace ndn
diff --git a/tests/unit-tests/util/test-in-memory-storage-lfu.cpp b/tests/unit-tests/util/in-memory-storage-lfu.t.cpp
similarity index 96%
rename from tests/unit-tests/util/test-in-memory-storage-lfu.cpp
rename to tests/unit-tests/util/in-memory-storage-lfu.t.cpp
index 428d2e3..b8d08c6 100644
--- a/tests/unit-tests/util/test-in-memory-storage-lfu.cpp
+++ b/tests/unit-tests/util/in-memory-storage-lfu.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -23,10 +23,11 @@
 #include "security/key-chain.hpp"
 
 #include "boost-test.hpp"
-#include "../test-make-interest-data.hpp"
+#include "../make-interest-data.hpp"
 
 namespace ndn {
 namespace util {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(UtilInMemoryStorage)
 BOOST_AUTO_TEST_SUITE(Lfu)
@@ -130,5 +131,6 @@
 BOOST_AUTO_TEST_SUITE_END() // Lfu
 BOOST_AUTO_TEST_SUITE_END() // UtilInMemoryStorage
 
+} // namespace tests
 } // namesapce util
 } // namespace ndn
diff --git a/tests/unit-tests/util/test-in-memory-storage-lru.cpp b/tests/unit-tests/util/in-memory-storage-lru.t.cpp
similarity index 96%
rename from tests/unit-tests/util/test-in-memory-storage-lru.cpp
rename to tests/unit-tests/util/in-memory-storage-lru.t.cpp
index d91f7ad..1cbffb8 100644
--- a/tests/unit-tests/util/test-in-memory-storage-lru.cpp
+++ b/tests/unit-tests/util/in-memory-storage-lru.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -23,10 +23,11 @@
 #include "security/key-chain.hpp"
 
 #include "boost-test.hpp"
-#include "../test-make-interest-data.hpp"
+#include "../make-interest-data.hpp"
 
 namespace ndn {
 namespace util {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(UtilInMemoryStorage)
 BOOST_AUTO_TEST_SUITE(Lru)
@@ -132,5 +133,6 @@
 BOOST_AUTO_TEST_SUITE_END() // Lru
 BOOST_AUTO_TEST_SUITE_END() // UtilInMemoryStorage
 
+} // namespace tests
 } // namespace util
 } // namespace ndn
diff --git a/tests/unit-tests/util/test-in-memory-storage-persistent.cpp b/tests/unit-tests/util/in-memory-storage-persistent.t.cpp
similarity index 92%
rename from tests/unit-tests/util/test-in-memory-storage-persistent.cpp
rename to tests/unit-tests/util/in-memory-storage-persistent.t.cpp
index 3da691f..1734774 100644
--- a/tests/unit-tests/util/test-in-memory-storage-persistent.cpp
+++ b/tests/unit-tests/util/in-memory-storage-persistent.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -23,10 +23,11 @@
 #include "security/key-chain.hpp"
 
 #include "boost-test.hpp"
-#include "../test-make-interest-data.hpp"
+#include "../make-interest-data.hpp"
 
 namespace ndn {
 namespace util {
+namespace tests {
 
 BOOST_AUTO_TEST_SUITE(UtilInMemoryStorage)
 BOOST_AUTO_TEST_SUITE(Persistent)
@@ -60,5 +61,6 @@
 BOOST_AUTO_TEST_SUITE_END() // Persistent
 BOOST_AUTO_TEST_SUITE_END() // UtilInMemoryStorage
 
+} // namespace tests
 } // namespace util
 } // namespace ndn
diff --git a/tests/unit-tests/util/indented-stream.cpp b/tests/unit-tests/util/indented-stream.t.cpp
similarity index 96%
rename from tests/unit-tests/util/indented-stream.cpp
rename to tests/unit-tests/util/indented-stream.t.cpp
index d82e9f3..30d2e07 100644
--- a/tests/unit-tests/util/indented-stream.cpp
+++ b/tests/unit-tests/util/indented-stream.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/util/test-io.cpp b/tests/unit-tests/util/io.t.cpp
similarity index 94%
rename from tests/unit-tests/util/test-io.cpp
rename to tests/unit-tests/util/io.t.cpp
index 0a3e422..d69123e 100644
--- a/tests/unit-tests/util/test-io.cpp
+++ b/tests/unit-tests/util/io.t.cpp
@@ -26,8 +26,9 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(UtilTestIo, security::IdentityManagementFixture)
+BOOST_FIXTURE_TEST_SUITE(UtilIo, security::IdentityManagementFixture)
 
 BOOST_AUTO_TEST_CASE(Basic)
 {
@@ -48,4 +49,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/util/notification-stream.cpp b/tests/unit-tests/util/notification-stream.t.cpp
similarity index 97%
rename from tests/unit-tests/util/notification-stream.cpp
rename to tests/unit-tests/util/notification-stream.t.cpp
index 4b6d43d..fb91f5e 100644
--- a/tests/unit-tests/util/notification-stream.cpp
+++ b/tests/unit-tests/util/notification-stream.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/util/notification-subscriber.cpp b/tests/unit-tests/util/notification-subscriber.t.cpp
similarity index 84%
rename from tests/unit-tests/util/notification-subscriber.cpp
rename to tests/unit-tests/util/notification-subscriber.t.cpp
index 643daf0..4fa222b 100644
--- a/tests/unit-tests/util/notification-subscriber.cpp
+++ b/tests/unit-tests/util/notification-subscriber.t.cpp
@@ -1,6 +1,12 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2015 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California,
+ *                         Arizona Board of Regents,
+ *                         Colorado State University,
+ *                         University Pierre & Marie Curie, Sorbonne University,
+ *                         Washington University in St. Louis,
+ *                         Beijing Institute of Technology,
+ *                         The University of Memphis.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -19,32 +25,6 @@
  * See AUTHORS.md for complete list of ndn-cxx authors and contributors.
  */
 
-/**
- * Original copyright notice from NFD:
- *
- * Copyright (c) 2014,  Regents of the University of California,
- *                      Arizona Board of Regents,
- *                      Colorado State University,
- *                      University Pierre & Marie Curie, Sorbonne University,
- *                      Washington University in St. Louis,
- *                      Beijing Institute of Technology,
- *                      The University of Memphis
- *
- * This file is part of NFD (Named Data Networking Forwarding Daemon).
- * See AUTHORS.md for complete list of NFD authors and contributors.
- *
- * NFD is free software: you can redistribute it and/or modify it under the terms
- * of the GNU General Public License as published by the Free Software Foundation,
- * either version 3 of the License, or (at your option) any later version.
- *
- * NFD is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
- * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- * PURPOSE.  See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * NFD, e.g., in COPYING.md file.  If not, see <http://www.gnu.org/licenses/>.
- */
-
 #include "util/notification-subscriber.hpp"
 #include "util/notification-stream.hpp"
 #include "simple-notification.hpp"
diff --git a/tests/unit-tests/util/placeholders.cpp b/tests/unit-tests/util/placeholders.t.cpp
similarity index 95%
rename from tests/unit-tests/util/placeholders.cpp
rename to tests/unit-tests/util/placeholders.t.cpp
index 2138f48..032b088 100644
--- a/tests/unit-tests/util/placeholders.cpp
+++ b/tests/unit-tests/util/placeholders.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/util/placeholders2.cpp b/tests/unit-tests/util/placeholders2.t.cpp
similarity index 94%
rename from tests/unit-tests/util/placeholders2.cpp
rename to tests/unit-tests/util/placeholders2.t.cpp
index c0f11b6..ada739a 100644
--- a/tests/unit-tests/util/placeholders2.cpp
+++ b/tests/unit-tests/util/placeholders2.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/unit-tests/util/test-random.cpp b/tests/unit-tests/util/random.t.cpp
similarity index 94%
rename from tests/unit-tests/util/test-random.cpp
rename to tests/unit-tests/util/random.t.cpp
index 26ac8ce..d56d84b 100644
--- a/tests/unit-tests/util/test-random.cpp
+++ b/tests/unit-tests/util/random.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -27,8 +27,9 @@
 #include <cmath>
 
 namespace ndn {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(UtilTestRandom)
+BOOST_AUTO_TEST_SUITE(UtilRandom)
 
 class PseudoRandomWord32
 {
@@ -108,4 +109,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/util/test-regex.cpp b/tests/unit-tests/util/regex.t.cpp
similarity index 98%
rename from tests/unit-tests/util/test-regex.cpp
rename to tests/unit-tests/util/regex.t.cpp
index 81630d1..e7cdea5 100644
--- a/tests/unit-tests/util/test-regex.cpp
+++ b/tests/unit-tests/util/regex.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -32,10 +32,12 @@
 
 #include "boost-test.hpp"
 
-using namespace std;
 namespace ndn {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(UtilTestRegex)
+using std::string;
+
+BOOST_AUTO_TEST_SUITE(UtilRegex)
 
 BOOST_AUTO_TEST_CASE(ComponentMatcher)
 {
@@ -464,4 +466,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/util/test-scheduler.cpp b/tests/unit-tests/util/scheduler.t.cpp
similarity index 96%
rename from tests/unit-tests/util/test-scheduler.cpp
rename to tests/unit-tests/util/scheduler.t.cpp
index 3b8feb0..8e22f1e 100644
--- a/tests/unit-tests/util/test-scheduler.cpp
+++ b/tests/unit-tests/util/scheduler.t.cpp
@@ -30,7 +30,9 @@
 namespace scheduler {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(UtilTestScheduler, ::ndn::tests::UnitTestTimeFixture)
+using namespace ndn::tests;
+
+BOOST_FIXTURE_TEST_SUITE(UtilScheduler, UnitTestTimeFixture)
 
 BOOST_AUTO_TEST_CASE(Events)
 {
@@ -83,7 +85,7 @@
   BOOST_REQUIRE_NO_THROW(advanceClocks(time::milliseconds(100), 10));
 }
 
-class SelfRescheduleFixture : public ::ndn::tests::UnitTestTimeFixture
+class SelfRescheduleFixture : public UnitTestTimeFixture
 {
 public:
   SelfRescheduleFixture()
@@ -203,7 +205,7 @@
   BOOST_CHECK_EQUAL(count, 0);
 }
 
-class ScopedEventFixture : public ::ndn::tests::UnitTestTimeFixture
+class ScopedEventFixture : public UnitTestTimeFixture
 {
 public:
   ScopedEventFixture()
diff --git a/tests/unit-tests/util/segment-fetcher.cpp b/tests/unit-tests/util/segment-fetcher.t.cpp
similarity index 100%
rename from tests/unit-tests/util/segment-fetcher.cpp
rename to tests/unit-tests/util/segment-fetcher.t.cpp
diff --git a/tests/unit-tests/util/signal.cpp b/tests/unit-tests/util/signal.t.cpp
similarity index 100%
rename from tests/unit-tests/util/signal.cpp
rename to tests/unit-tests/util/signal.t.cpp
diff --git a/tests/unit-tests/util/test-in-memory-storage-common.cpp b/tests/unit-tests/util/test-in-memory-storage-common.cpp
index 303391e..5fe9805 100644
--- a/tests/unit-tests/util/test-in-memory-storage-common.cpp
+++ b/tests/unit-tests/util/test-in-memory-storage-common.cpp
@@ -26,7 +26,7 @@
 #include "security/key-chain.hpp"
 
 #include "boost-test.hpp"
-#include "../test-make-interest-data.hpp"
+#include "../make-interest-data.hpp"
 
 #include <boost/mpl/list.hpp>
 
diff --git a/tests/unit-tests/util/test-time-unit-test-clock.cpp b/tests/unit-tests/util/time-unit-test-clock.t.cpp
similarity index 97%
rename from tests/unit-tests/util/test-time-unit-test-clock.cpp
rename to tests/unit-tests/util/time-unit-test-clock.t.cpp
index e43d4ed..658f043 100644
--- a/tests/unit-tests/util/test-time-unit-test-clock.cpp
+++ b/tests/unit-tests/util/time-unit-test-clock.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -29,7 +29,7 @@
 namespace ndn {
 namespace tests {
 
-BOOST_AUTO_TEST_SUITE(UtilTestTimeUnitTestClock)
+BOOST_AUTO_TEST_SUITE(UtilTimeUnitTestClock)
 
 class UnitTestTimeFixture
 {
diff --git a/tests/unit-tests/util/test-time.cpp b/tests/unit-tests/util/time.t.cpp
similarity index 95%
rename from tests/unit-tests/util/test-time.cpp
rename to tests/unit-tests/util/time.t.cpp
index d3a659c..c4ac260 100644
--- a/tests/unit-tests/util/test-time.cpp
+++ b/tests/unit-tests/util/time.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
@@ -24,8 +24,9 @@
 #include "boost-test.hpp"
 
 namespace ndn {
+namespace tests {
 
-BOOST_AUTO_TEST_SUITE(UtilTestTime)
+BOOST_AUTO_TEST_SUITE(UtilTime)
 
 BOOST_AUTO_TEST_CASE(SystemClock)
 {
@@ -74,4 +75,5 @@
 
 BOOST_AUTO_TEST_SUITE_END()
 
+} // namespace tests
 } // namespace ndn
diff --git a/tests/unit-tests/test-version.cpp b/tests/unit-tests/version.t.cpp
similarity index 96%
rename from tests/unit-tests/test-version.cpp
rename to tests/unit-tests/version.t.cpp
index 5ea900e..9dbcc6d 100644
--- a/tests/unit-tests/test-version.cpp
+++ b/tests/unit-tests/version.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /**
- * Copyright (c) 2013-2014 Regents of the University of California.
+ * Copyright (c) 2013-2015 Regents of the University of California.
  *
  * This file is part of ndn-cxx library (NDN C++ library with eXperimental eXtensions).
  *
diff --git a/tests/wscript b/tests/wscript
index cf43382..f3c1ccf 100644
--- a/tests/wscript
+++ b/tests/wscript
@@ -27,16 +27,16 @@
         name="unit-test-objects",
         features="cxx",
         source=bld.path.ant_glob(['unit-tests/**/*.cpp'],
-                                 excl=['**/*-osx.cpp', '**/*-sqlite3.cpp']),
+                                 excl=['**/*-osx.t.cpp', '**/*-sqlite3.t.cpp']),
         use='ndn-cxx tests-base BOOST',
         includes='.',
         install_path=None)
 
     if bld.env['HAVE_OSX_SECURITY']:
-        unit_tests.source += bld.path.ant_glob('unit-tests/**/*-osx.cpp')
+        unit_tests.source += bld.path.ant_glob('unit-tests/**/*-osx.t.cpp')
 
     # In case we want to make it optional later
-    unit_tests.source += bld.path.ant_glob('unit-tests/**/*-sqlite3.cpp')
+    unit_tests.source += bld.path.ant_glob('unit-tests/**/*-sqlite3.t.cpp')
 
     # unit test app
     bld(features='cxx cxxprogram',
