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..f2f92e6a5 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',
