test for sync (failing)
diff --git a/test/test-sync-core.cc b/test/test-sync-core.cc
new file mode 100644
index 0000000..cdec04d
--- /dev/null
+++ b/test/test-sync-core.cc
@@ -0,0 +1,86 @@
+#include "sync-core.h"
+
+#include <boost/test/unit_test.hpp>
+#include <boost/filesystem.hpp>
+
+using namespace std;
+using namespace Ccnx;
+using namespace boost::filesystem;
+
+BOOST_AUTO_TEST_SUITE(SyncCoreTests)
+
+SyncStateMsgPtr msg1;
+SyncStateMsgPtr msg2;
+
+void callback1(const SyncStateMsgPtr &ptr)
+{
+  msg1 = ptr;
+}
+
+void callback2(const SyncStateMsgPtr &ptr)
+{
+  msg2 = ptr;
+}
+
+BOOST_AUTO_TEST_CASE(SyncCoreTest)
+{
+  string dir = "./SyncCoreTest";
+  Name user1("/joker");
+  Name loc1("/gotham1");
+  Name user2("/darkknight");
+  Name loc2("/gotham2");
+  Name syncPrefix("/broadcast/darkknight");
+  CcnxWrapperPtr c1(new CcnxWrapper());
+  CcnxWrapperPtr c2(new CcnxWrapper());
+  SchedulerPtr scheduler(new Scheduler());
+  scheduler->start();
+
+  // clean the test dir
+  path d(dir);
+  if (exists(d))
+  {
+    remove_all(d);
+  }
+
+  SyncCore *core1 = new SyncCore(dir, user1, loc1, syncPrefix, bind(callback1, _1), c1, scheduler);
+  usleep(10000);
+  SyncCore *core2 = new SyncCore(dir, user2, loc2, syncPrefix, bind(callback2, _1), c2, scheduler);
+  usleep(10000);
+
+  SyncState state;
+
+  core1->updateLocalState(1);
+  usleep(100000);
+  BOOST_CHECK_EQUAL(msg2->state_size(), 1);
+  state = msg2->state(0);
+  BOOST_CHECK_EQUAL(state.seq(), 1);
+  BOOST_CHECK_EQUAL(user1, state.name());
+  BOOST_CHECK_EQUAL(loc1, state.locator());
+
+  core1->updateLocalState(5);
+  usleep(100000);
+  state = msg2->state(0);
+  BOOST_CHECK_EQUAL(state.seq(), 5);
+
+  core2->updateLocalState(10);
+  usleep(100000);
+  state = msg1->state(0);
+  BOOST_CHECK_EQUAL(state.seq(), 10);
+
+  // simple simultaneous data generation
+  core1->updateLocalState(11);
+  core2->updateLocalState(12);
+  usleep(100000);
+  state = msg1->state(0);
+  BOOST_CHECK_EQUAL(state.seq(), 12);
+  state = msg2->state(0);
+  BOOST_CHECK_EQUAL(state.seq(), 11);
+
+  // clean the test dir
+  if (exists(d))
+  {
+    remove_all(d);
+  }
+}
+
+BOOST_AUTO_TEST_SUITE_END()