void rice::p2p::replication::manager::testing::ReplicationManagerRegrTest::testBasic()
{
    auto num = npc(npc(environment)->getRandomSource())->nextInt(NUM_NODES);
    auto id = npc((*nodes)[num])->getId();
    auto all = npc(FACTORY)->buildIdRange(npc(FACTORY)->buildId(new ::int8_tArray(int32_t(20))), npc(FACTORY)->buildId(new ::int8_tArray(int32_t(20))));
    sectionStart(u"Testing Basic Functionality"_j);
    stepStart(u"Inserting Object"_j);
    npc((*clients)[num])->insert(id);
    stepDone(SUCCESS());
    stepStart(u"Initiating Maintenance"_j);
    runMaintenance();
    for (auto i = int32_t(0); i < NUM_NODES; i++) 
                simulate();

    auto count = int32_t(0);
    for (auto i = int32_t(0); i < NUM_NODES; i++) {
        if(npc(npc((*clients)[i])->scan(all))->isMemberId(id))
            count++;

    }
    assertTrue(::java::lang::StringBuilder().append(u"Correct number of replicas should be "_j)->append((REPLICATION_FACTOR + int32_t(1)))
        ->append(u" was "_j)
        ->append(count)->toString(), count == REPLICATION_FACTOR + int32_t(1));
    stepDone(SUCCESS());
    sectionDone();
}
void rice::p2p::replication::manager::testing::ReplicationManagerRegrTest::testOverload()
{
    auto NUM_TO_INSERT = int32_t(16);
    auto num = npc(npc(environment)->getRandomSource())->nextInt(NUM_NODES);
    auto id = npc((*nodes)[num])->getId();
    auto all = npc(FACTORY)->buildIdRange(npc(FACTORY)->buildId(new ::int8_tArray(int32_t(20))), npc(FACTORY)->buildId(new ::int8_tArray(int32_t(20))));
    sectionStart(u"Testing Overload Functionality"_j);
    stepStart(::java::lang::StringBuilder().append(u"Inserting "_j)->append(NUM_TO_INSERT)
        ->append(u" Objects"_j)->toString());
    for (auto i = int32_t(0); i < NUM_TO_INSERT; i++) {
        npc((*clients)[num])->insert(addToId(id, i));
        simulate();
    }
    stepDone(SUCCESS());
    stepStart(u"Initiating Maintenance"_j);
    runMaintenance();
    simulate();
    for (auto i = int32_t(0); i < NUM_TO_INSERT + int32_t(1); i++) {
        try {
            ::java::lang::Thread::sleep(npc((*replications)[int32_t(0)])->FETCH_DELAY);
        } catch (::java::lang::InterruptedException* e) {
            npc(::java::lang::System::out())->println(npc(e)->toString());
        }
        simulate();
    }
    for (auto j = int32_t(0); j < NUM_TO_INSERT; j++) {
        auto count = int32_t(0);
        auto thisId = addToId(id, j);
        for (auto i = int32_t(0); i < NUM_NODES; i++) {
            if(npc(npc((*clients)[i])->scan(all))->isMemberId(thisId))
                count++;

        }
        assertTrue(::java::lang::StringBuilder().append(u"Correct number of replicas for "_j)->append(j)
            ->append(u":"_j)
            ->append(static_cast< ::java::lang::Object* >(thisId))
            ->append(u" should be "_j)
            ->append((REPLICATION_FACTOR + int32_t(1)))
            ->append(u" was "_j)
            ->append(count)->toString(), count == REPLICATION_FACTOR + int32_t(1));
    }
    stepDone(SUCCESS());
    sectionDone();
}
예제 #3
0
	void timeStep(const action_type& a) {
	  
	  switch(current_state) {
	  case CLIFF::start:
	    stepStart(a);
	    break;
	  case CLIFF::goal:
	    stepGoal(a);
	    break;
	  default:
	    step(a);
	    break;
	  }
	}