diff --git a/tests/core/algorithm.t.cpp b/tests/core/algorithm.t.cpp
index 75ebe83..fb23238 100644
--- a/tests/core/algorithm.t.cpp
+++ b/tests/core/algorithm.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2015,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,7 +30,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestAlgorithm, BaseFixture)
+BOOST_AUTO_TEST_SUITE(TestAlgorithm)
 
 BOOST_AUTO_TEST_CASE(FindLastIf)
 {
@@ -56,7 +56,7 @@
   BOOST_CHECK_LE(hit2, vec.size());
 }
 
-BOOST_AUTO_TEST_SUITE_END()
+BOOST_AUTO_TEST_SUITE_END() // TestAlgorithm
 
 } // namespace tests
 } // namespace nfd
diff --git a/tests/core/config-file.t.cpp b/tests/core/config-file.t.cpp
index 0be1cf1..c2ceb85 100644
--- a/tests/core/config-file.t.cpp
+++ b/tests/core/config-file.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018,  Regents of the University of California,
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -34,7 +34,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestConfigFile, BaseFixture)
+BOOST_AUTO_TEST_SUITE(TestConfigFile)
 
 static const std::string CONFIG = R"CONFIG(
   a
@@ -283,7 +283,7 @@
   BOOST_CHECK(sub2.allCallbacksFired());
 }
 
-class MissingCallbackFixture : public BaseFixture
+class MissingCallbackFixture
 {
 public:
   void
diff --git a/tests/core/counter.t.cpp b/tests/core/counter.t.cpp
index ce9a086..387b13f 100644
--- a/tests/core/counter.t.cpp
+++ b/tests/core/counter.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2017,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,7 +30,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestCounter, BaseFixture)
+BOOST_AUTO_TEST_SUITE(TestCounter)
 
 BOOST_AUTO_TEST_CASE(PacketCnt)
 {
diff --git a/tests/core/network-predicate.t.cpp b/tests/core/network-predicate.t.cpp
index a0a510e..378b6aa 100644
--- a/tests/core/network-predicate.t.cpp
+++ b/tests/core/network-predicate.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018,  Regents of the University of California,
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,6 +30,7 @@
 
 #include <ndn-cxx/net/ethernet.hpp>
 #include <ndn-cxx/net/network-monitor-stub.hpp>
+
 #include <boost/property_tree/info_parser.hpp>
 #include <sstream>
 
@@ -39,7 +40,7 @@
 BOOST_AUTO_TEST_SUITE(TestNetworkPredicate)
 
 template<class T>
-class NetworkPredicateBaseFixture : public BaseFixture
+class NetworkPredicateBaseFixture
 {
 public:
   void
diff --git a/tests/core/network.t.cpp b/tests/core/network.t.cpp
index 62eabde..4ab71b5 100644
--- a/tests/core/network.t.cpp
+++ b/tests/core/network.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018,  Regents of the University of California,
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,7 +30,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestNetwork, BaseFixture)
+BOOST_AUTO_TEST_SUITE(TestNetwork)
 
 using boost::asio::ip::address;
 
diff --git a/tests/core/privilege-helper.t.cpp b/tests/core/privilege-helper.t.cpp
index 594f42f..58f8947 100644
--- a/tests/core/privilege-helper.t.cpp
+++ b/tests/core/privilege-helper.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
 /*
- * Copyright (c) 2014-2018,  Regents of the University of California,
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,7 +30,7 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestPrivilegeHelper, BaseFixture)
+BOOST_AUTO_TEST_SUITE(TestPrivilegeHelper)
 
 BOOST_AUTO_TEST_CASE(DropRaise)
 {
diff --git a/tests/core/rtt-estimator.t.cpp b/tests/core/rtt-estimator.t.cpp
index e5952e9..526b03d 100644
--- a/tests/core/rtt-estimator.t.cpp
+++ b/tests/core/rtt-estimator.t.cpp
@@ -1,6 +1,6 @@
 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
-/**
- * Copyright (c) 2014-2017,  Regents of the University of California,
+/*
+ * Copyright (c) 2014-2019,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -30,9 +30,9 @@
 namespace nfd {
 namespace tests {
 
-BOOST_FIXTURE_TEST_SUITE(TestRttEstimator, BaseFixture)
+BOOST_AUTO_TEST_SUITE(TestRttEstimator)
 
-static inline double
+static double
 computeRtoAsFloatSeconds(RttEstimator& rtt)
 {
   typedef time::duration<double, time::seconds::period> FloatSeconds;
