diff --git a/tests/core/logger.t.cpp b/tests/core/logger.t.cpp
index 5dafadb..51dd2d2 100644
--- a/tests/core/logger.t.cpp
+++ b/tests/core/logger.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-2016,  Regents of the University of California,
  *                           Arizona Board of Regents,
  *                           Colorado State University,
  *                           University Pierre & Marie Curie, Sorbonne University,
@@ -92,6 +92,8 @@
   microseconds::rep after =
     duration_cast<microseconds>(system_clock::now().time_since_epoch()).count();
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
@@ -203,6 +205,8 @@
   microseconds::rep after =
     duration_cast<microseconds>(system_clock::now().time_since_epoch()).count();
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
@@ -328,6 +332,8 @@
   microseconds::rep after =
     duration_cast<microseconds>(system_clock::now().time_since_epoch()).count();
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
@@ -424,6 +430,8 @@
 
   const size_t N_EXPECTED = sizeof(EXPECTED) / sizeof(std::string);
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
@@ -513,6 +521,8 @@
   microseconds::rep after =
     duration_cast<microseconds>(system_clock::now().time_since_epoch()).count();
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   const size_t firstSpace = buffer.find(" ");
@@ -619,6 +629,8 @@
 
   const size_t N_EXPECTED = sizeof(EXPECTED) / sizeof(string);
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
@@ -729,6 +741,8 @@
 
   const size_t N_EXPECTED = sizeof(EXPECTED) / sizeof(string);
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
@@ -812,6 +826,8 @@
 
   const size_t N_EXPECTED = sizeof(EXPECTED) / sizeof(string);
 
+  LoggerFactory::getInstance().flushBackend();
+
   const string buffer = m_buffer.str();
 
   std::vector<string> components;
diff --git a/tests/daemon/fw/topology-tester.cpp b/tests/daemon/fw/topology-tester.cpp
index 7b035eb..b1eeb6a 100644
--- a/tests/daemon/fw/topology-tester.cpp
+++ b/tests/daemon/fw/topology-tester.cpp
@@ -129,7 +129,7 @@
                         std::initializer_list<TopologyNode> forwarders,
                         bool forceMultiAccessFace)
 {
-  auto link = make_shared<TopologyLink>(delay);
+  auto link = std::make_shared<TopologyLink>(delay);
   FaceUri remoteUri("topology://link/" + label);
   ndn::nfd::LinkType linkType = (forceMultiAccessFace || forwarders.size() > 2) ?
                                 ndn::nfd::LINK_TYPE_MULTI_ACCESS :
