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()