diff --git "a/test/.\043test-ccnx-wrapper.cc" "b/test/.\043test-ccnx-wrapper.cc"
deleted file mode 120000
index 23e4010..0000000
--- "a/test/.\043test-ccnx-wrapper.cc"
+++ /dev/null
@@ -1 +0,0 @@
-cawka@cawka-mac.55285
\ No newline at end of file
diff --git a/test/test-ccnx-wrapper.cc b/test/test-ccnx-wrapper.cc
index 42516ea..cd5dd12 100644
--- a/test/test-ccnx-wrapper.cc
+++ b/test/test-ccnx-wrapper.cc
@@ -34,7 +34,7 @@
 using namespace std;
 using namespace boost;
 
-BOOST_AUTO_TEST_SUITE(CcnxWrapperTests)
+BOOST_AUTO_TEST_SUITE(TestCcnxWrapper)
 
 CcnxWrapperPtr c1;
 CcnxWrapperPtr c2;
@@ -67,7 +67,7 @@
   return Closure::RESULT_OK;
 }
 
-BOOST_AUTO_TEST_CASE (CcnxWrapperTest)
+BOOST_AUTO_TEST_CASE (BlaCcnxWrapperTest)
 {
   c1 = make_shared<CcnxWrapper> ();
   c2 = make_shared<CcnxWrapper> ();
@@ -121,30 +121,30 @@
   g_timeout_counter = 0;
 }
 
-BOOST_AUTO_TEST_CASE (CcnxWrapperSigningTest)
-{
-  Bytes data;
-  data.resize(1024);
-  for (int i = 0; i < 1024; i++)
-  {
-    data[i] = 'm';
-  }
+// BOOST_AUTO_TEST_CASE (CcnxWrapperSigningTest)
+// {
+//   Bytes data;
+//   data.resize(1024);
+//   for (int i = 0; i < 1024; i++)
+//   {
+//     data[i] = 'm';
+//   }
 
-  Name name("/signingtest");
+//   Name name("/signingtest");
 
-  posix_time::ptime start = posix_time::second_clock::local_time();
-  for (uint64_t i = 0; i < 10000; i++)
-  {
-    Name n = name;
-    n.appendComp(i);
-    c1->publishData(n, data, 10);
-  }
-  posix_time::ptime end = posix_time::second_clock::local_time();
+//   posix_time::ptime start = posix_time::second_clock::local_time();
+//   for (uint64_t i = 0; i < 10000; i++)
+//   {
+//     Name n = name;
+//     n.appendComp(i);
+//     c1->publishData(n, data, 10);
+//   }
+//   posix_time::ptime end = posix_time::second_clock::local_time();
 
-  posix_time::time_duration duration = end - start;
+//   posix_time::time_duration duration = end - start;
 
-  cout << "Publishing 10000 1K size content objects costs " <<duration.total_milliseconds() << " milliseconds" << endl;
-  cout << "Average time to publish one content object is " << (double) duration.total_milliseconds() / 10000.0 << " milliseconds" << endl;
-}
+//   cout << "Publishing 10000 1K size content objects costs " <<duration.total_milliseconds() << " milliseconds" << endl;
+//   cout << "Average time to publish one content object is " << (double) duration.total_milliseconds() / 10000.0 << " milliseconds" << endl;
+// }
 
 BOOST_AUTO_TEST_SUITE_END()
diff --git a/test/test-dispatcher.cc b/test/test-dispatcher.cc
index 6f619df..20843af 100644
--- a/test/test-dispatcher.cc
+++ b/test/test-dispatcher.cc
@@ -35,7 +35,7 @@
 
 INIT_LOGGER ("Test.Dispatcher");
 
-BOOST_AUTO_TEST_SUITE(DispatcherTest)
+BOOST_AUTO_TEST_SUITE(TestDispatcher)
 
 
 void cleanDir(fs::path dir)
@@ -51,7 +51,7 @@
   BOOST_CHECK_EQUAL(*root1, *root2);
 }
 
-BOOST_AUTO_TEST_CASE(TestDispatcher)
+BOOST_AUTO_TEST_CASE(DispatcherTest)
 {
   INIT_LOGGERS ();
 
