| /*========================================================================= |
| * Copyright (c) 2010-2014 Pivotal Software, Inc. All Rights Reserved. |
| * This product is protected by U.S. and international copyright |
| * and intellectual property laws. Pivotal products are covered by |
| * one or more patents listed at http://www.pivotal.io/patents. |
| *========================================================================= |
| */ |
| #include "ThinClientSecurityHelper.hpp" |
| |
| #define CLIENT1 s1p1 |
| #define CLIENT2 s1p2 |
| #define SERVER1 s2p1 |
| #define SERVER2 s2p2 |
| |
| // This is the test for tracking work. bug#304 |
| |
| putThread *thread1 = NULL; |
| putThread *thread2 = NULL; |
| putThread *thread3 = NULL; |
| putThread *thread4 = NULL; |
| |
| const char * regNames[] = { "DistRegionAck","DistRegionNoAck" }; |
| const char * group1 = "A"; |
| const char * group2 = "B"; |
| //const char * endPoints1 = CacheHelper::getTcrEndpoints( isLocalServer1, 3 ); |
| std::string gfendpoints1 = "localhost:"; |
| std::string gfendpoints2 = "localhost:"; |
| |
| bool isLocalServer1 = false; |
| const char * endPoints1 = CacheHelper::getTcrEndpoints(isLocalServer1, 2); |
| |
| static bool isLocator1 = false; |
| const char* locatorsG = CacheHelper::getLocatorHostPort( isLocator1, 1); |
| |
| CacheableStringPtr c1v11; |
| CacheableStringPtr c1v12; |
| CacheableStringPtr c1v13; |
| CacheableStringPtr c1v14; |
| CacheableStringPtr c1v15; |
| |
| CacheableStringPtr s1v11; |
| CacheableStringPtr s1v12; |
| CacheableStringPtr s1v13; |
| CacheableStringPtr s1v14; |
| CacheableStringPtr s1v15; |
| |
| CacheableStringPtr c2v11; |
| CacheableStringPtr c2v12; |
| CacheableStringPtr c2v13; |
| CacheableStringPtr c2v14; |
| CacheableStringPtr c2v15; |
| |
| CacheableStringPtr s2v11; |
| CacheableStringPtr s2v12; |
| CacheableStringPtr s2v13; |
| CacheableStringPtr s2v14; |
| CacheableStringPtr s2v15; |
| |
| void verifyAllValues() |
| { |
| LOGINFO("verifyAllValues TEST-1"); |
| /*LOGINFO("c1v11 = %s", c1v11->asChar()); |
| LOGINFO("verifyAllValues TEST-2"); |
| LOGINFO("c1v12 = %s", c1v12->asChar()); |
| LOGINFO("c1v13 = %s", c1v13->asChar()); |
| LOGINFO("c1v14 = %s", c1v14->asChar()); |
| LOGINFO("c1v15 = %s", c1v15->asChar()); |
| |
| LOGINFO("s1v11 = %s", s1v11->asChar()); |
| LOGINFO("s1v12 = %s", s1v12->asChar()); |
| LOGINFO("s1v13 = %s", s1v13->asChar()); |
| LOGINFO("s1v14 = %s", s1v14->asChar()); |
| LOGINFO("s1v15 = %s", s1v15->asChar()); |
| |
| LOGINFO("c2v11 = %s", c2v11->asChar()); |
| LOGINFO("c2v12 = %s", c2v12->asChar()); |
| LOGINFO("c2v13 = %s", c2v13->asChar()); |
| LOGINFO("c2v14 = %s", c2v14->asChar()); |
| LOGINFO("c2v15 = %s", c2v15->asChar()); |
| |
| LOGINFO("s2v11 = %s", s2v11->asChar()); |
| LOGINFO("s2v12 = %s", s2v12->asChar()); |
| LOGINFO("s2v13 = %s", s2v13->asChar()); |
| LOGINFO("s2v14 = %s", s2v14->asChar()); |
| LOGINFO("s2v15 = %s", s2v15->asChar());*/ |
| } |
| |
| //added |
| DUNIT_TASK_DEFINITION(SERVER1, StartServer1) |
| { |
| LOG("starting SERVER1..."); |
| if ( isLocalServer1 ) |
| CacheHelper::initServer( 1 , "cacheserver_concurrency_enabled1.xml"); |
| LOG("SERVER1 started"); |
| } |
| END_TASK_DEFINITION |
| |
| //added |
| DUNIT_TASK_DEFINITION(SERVER2, StartServer2) |
| { |
| LOG("starting SERVER2..."); |
| if ( isLocalServer1 ) |
| CacheHelper::initServer( 2 , "cacheserver_concurrency_enabled2.xml"); |
| LOG("SERVER2 started"); |
| } |
| END_TASK_DEFINITION |
| |
| |
| DUNIT_TASK_DEFINITION(CLIENT1, StartClient1) |
| { |
| //TOOD::check for poolwithendpoints or locators |
| |
| //By default poolwithendpoints |
| //char tmp1[100]; |
| //sprintf( tmp1, "%d", CacheHelper::staticHostPort1 ); |
| //gfendpoints1 += tmp1; |
| |
| //initClientWithPool(true/*isthinClient*/, NULL/*poolName*/, NULL/*locators*/,serverGroup1, NULL/*servers*/, NULLPTR/*PropertiesPtr&*/, 0/*redundancy*/, true/*clientNotification*/, -1/*subscriptionAckInterval*/, 5/*connections*/, 60000/*loadConditioningInterval*/); |
| //RegionPtr regPtr0 = createRegionAndAttachPool(regNames[0],USE_ACK, NULL); |
| |
| initClient(true); |
| getHelper()->createPoolWithLocators("__TEST_POOL1__", locatorsG, true, -1 , -1, -1, false, group1); |
| RegionPtr regPtr0 = getHelper()->createRegionAndAttachPool(regNames[0], USE_ACK, "__TEST_POOL1__",true); |
| LOG( "StepOne_Pooled_Locator1 complete." ); |
| |
| regPtr0->registerAllKeys(); |
| |
| LOG( "Client-1 Init complete." ); |
| } |
| END_TASK_DEFINITION |
| |
| //startClient-2 |
| DUNIT_TASK_DEFINITION(CLIENT2, StartClient2) |
| { |
| //TOOD::check for poolwithendpoints or locators |
| /* LOG( "Client-2 Init -1" ); |
| //By default poolwithendpoints |
| char tmp2[100]; |
| LOG( "Client-2 Init -2" ); |
| sprintf( tmp2, "%d", CacheHelper::staticHostPort2 ); |
| LOG( "Client-2 Init -3" ); |
| gfendpoints2 += tmp2; |
| LOG( "Client-2 Init -4" ); |
| initClientWithPool(true, NULL, NULL, serverGroup2, gfendpoints2.c_str(), NULLPTR, 0, true, -1, 5, 60000); |
| LOG( "Client-2 Init -5" ); |
| |
| RegionPtr regPtr0 = createRegionAndAttachPool(regNames[0],USE_ACK, NULL); |
| LOG( "Client-2 Init -6" ); |
| |
| */ |
| initClient(true); |
| getHelper()->createPoolWithLocators("__TEST_POOL1__", locatorsG, true, -1 , -1, -1, false, group2); |
| RegionPtr regPtr0 = getHelper()->createRegionAndAttachPool(regNames[0], USE_ACK, "__TEST_POOL1__",true); |
| LOG( "StepOne_Pooled_Locator1 complete." ); |
| |
| regPtr0->registerAllKeys(); |
| LOG( "Client-2 StartClient2 complete." ); |
| } |
| END_TASK_DEFINITION |
| |
| |
| //threadPutonClient1 |
| DUNIT_TASK_DEFINITION(CLIENT1,threadPutonClient1) |
| { |
| RegionPtr rptr = getHelper()->getRegion(regNames[0]); |
| thread4 = new putThread(rptr,false); |
| thread4->setParams(0, 10, 1, true, false, 0); |
| thread4->start(); |
| LOG( "Task: threadPutonClient1 Done" ); |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT2,transactionPutOnClient2) |
| { |
| RegionPtr rptr = getHelper()->getRegion(regNames[0]); |
| CacheTransactionManagerPtr txManager = getHelper()->getCache()->getCacheTransactionManager(); |
| |
| txManager->begin(); |
| CacheableKeyPtr keyPtr1 = CacheableKey::create( "key-1" ); |
| CacheableStringPtr valPtr = CacheableString::create( "client2-value1" ); |
| rptr->put( keyPtr1, valPtr ); |
| |
| CacheableKeyPtr keyPtr2 = CacheableKey::create( "key-2" ); |
| valPtr = CacheableString::create( "client2-value2" ); |
| rptr->put( keyPtr2, valPtr ); |
| |
| CacheableKeyPtr keyPtr3 = CacheableKey::create( "key-3" ); |
| valPtr = CacheableString::create( "client2-value3" ); |
| rptr->put( keyPtr3, valPtr ); |
| txManager->commit(); |
| |
| dunit::sleep(1000); |
| |
| //localGet |
| |
| c2v11= dynCast<CacheableStringPtr>( rptr->get( keyPtr1 ) ); |
| c2v12= dynCast<CacheableStringPtr>( rptr->get( keyPtr2 ) ); |
| c2v13= dynCast<CacheableStringPtr>( rptr->get( keyPtr3 ) ); |
| |
| //localDestroy |
| rptr->localDestroy(keyPtr1); |
| rptr->localDestroy(keyPtr2); |
| rptr->localDestroy(keyPtr3); |
| |
| //remoteGet |
| c2v11= dynCast<CacheableStringPtr>( rptr->get( keyPtr1 ) ); |
| s2v12= dynCast<CacheableStringPtr>( rptr->get( keyPtr2 ) ); |
| s2v13= dynCast<CacheableStringPtr>( rptr->get( keyPtr3 ) ); |
| |
| //Print remoteGet Values |
| LOGINFO("CLIENT-2 :: TASK:transactionPutOnClient2: localGet Val1 = %s remoteGet Val1 = %s ", c2v11->asChar(), s2v11->asChar()); |
| LOGINFO("CLIENT-2 :: TASK:transactionPutOnClient2: localGet Val2 = %s remoteGet Val2 = %s ", c2v12->asChar(), s2v12->asChar()); |
| LOGINFO("CLIENT-2 :: TASK:transactionPutOnClient2: localGet Val3 = %s remoteGet Val3 = %s ", c2v13->asChar(), s2v13->asChar()); |
| |
| ASSERT(*c2v11.ptr() == *c2v11.ptr(), "transactionPutOnClient2:Values should be equal-1"); |
| ASSERT(*c2v12.ptr() == *c2v12.ptr(), "transactionPutOnClient2:Values should be equal-2"); |
| ASSERT(*c2v13.ptr() == *c2v13.ptr(), "transactionPutOnClient2:Values should be equal-3"); |
| |
| |
| LOG("CLIENT-2 :: TASK: transactionPutOnClient2 completed successfully"); |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT1,verifyGetonClient1) |
| { |
| thread4->stop(); |
| delete thread4; |
| |
| RegionPtr rptr = getHelper()->getRegion(regNames[0]); |
| |
| CacheableKeyPtr keyPtr1 = CacheableKey::create( "key-1" ); |
| CacheableKeyPtr keyPtr2 = CacheableKey::create( "key-2" ); |
| CacheableKeyPtr keyPtr3 = CacheableKey::create( "key-3" ); |
| |
| //localGet |
| c1v11= dynCast<CacheableStringPtr>( rptr->get( keyPtr1 ) ); |
| c1v12= dynCast<CacheableStringPtr>( rptr->get( keyPtr2 ) ); |
| c1v13= dynCast<CacheableStringPtr>( rptr->get( keyPtr3 ) ); |
| |
| //localDestroy |
| rptr->localDestroy(keyPtr1); |
| rptr->localDestroy(keyPtr2); |
| rptr->localDestroy(keyPtr3); |
| |
| //remoteGet |
| s1v11= dynCast<CacheableStringPtr>( rptr->get( keyPtr1 ) ); |
| s1v12= dynCast<CacheableStringPtr>( rptr->get( keyPtr2 ) ); |
| s1v13= dynCast<CacheableStringPtr>( rptr->get( keyPtr3 ) ); |
| |
| //Print remoteGet Values |
| LOGINFO("CLIENT-2 :: verifyGetonClient1: localGet Val1 = %s remoteGet Val1 = %s ", c1v11->asChar(), s1v11->asChar()); |
| LOGINFO("CLIENT-2 :: verifyGetonClient1: localGet Val2 = %s remoteGet Val2 = %s ", c1v12->asChar(), s1v12->asChar()); |
| LOGINFO("CLIENT-2 :: verifyGetonClient1: localGet Val3 = %s remoteGet Val3 = %s ", c1v13->asChar(), s1v13->asChar()); |
| |
| ASSERT(*c1v11.ptr() == *s1v11.ptr(), "verifyGetonClient1:Values should be equal-1"); |
| ASSERT(*c1v12.ptr() == *s1v12.ptr(), "verifyGetonClient1:Values should be equal-2"); |
| ASSERT(*c1v13.ptr() == *s1v13.ptr(), "verifyGetonClient1:Values should be equal-3"); |
| |
| LOG("CLIENT-2 :: TASK: verifyGetonClient1 completed successfully"); |
| |
| } |
| END_TASK_DEFINITION |
| |
| // |
| DUNIT_TASK_DEFINITION(CLIENT1,PutOnClient1) |
| { |
| RegionPtr rptr = getHelper()->getRegion(regNames[0]); |
| thread1 = new putThread(rptr,false); |
| thread1->setParams(0, 5, 1, true, false, 1); |
| thread1->start(); |
| LOG( "PUT ops done on client 1" ); |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT2, PutOnClient2) |
| { |
| RegionPtr rptr = getHelper()->getRegion(regNames[0]); |
| thread2 = new putThread(rptr,false); |
| thread2->setParams(0, 5, 1, false, false, 0);//0, 5, 1, false, false, 0 |
| thread2->start(); |
| LOG( "PUT ops done on client 2" ); |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT1, testServerGC) |
| { |
| RegionPtr rptr = getHelper()->getRegion(regNames[0]); |
| thread3 = new putThread(rptr,false); |
| thread3->setParams(0, 5000, 1, true, false, 0);//0, 5, 1, false, false, 0 |
| thread3->start(); |
| LOG( "5000 PUT ops done on client 1" ); |
| |
| //set thread to destroy entries. |
| thread3->setParams(7, 5000, 1, true, false, 0);//Destroy |
| thread3->start(); |
| LOG( "5000 entries destroyed successfully" ); |
| |
| dunit::sleep(10000); |
| |
| thread3->stop(); |
| delete thread3; |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT1,GetOnClient1) |
| { |
| LOG("CLIENT-1 :: local GET operation -1"); |
| thread1->stop(); |
| delete thread1; |
| dunit::sleep(3000); |
| RegionPtr regPtr = getHelper()->getRegion(regNames[0]); |
| //localGet |
| CacheableKeyPtr keyPtr1 = CacheableKey::create("key-1"); |
| CacheableKeyPtr keyPtr2 = CacheableKey::create("key-2"); |
| CacheableKeyPtr keyPtr3 = CacheableKey::create("key-3"); |
| CacheableKeyPtr keyPtr4 = CacheableKey::create("key-4"); |
| CacheableKeyPtr keyPtr5 = CacheableKey::create("key-5"); |
| |
| c1v11= dynCast<CacheableStringPtr>( regPtr->get( keyPtr1 ) ); |
| c1v12= dynCast<CacheableStringPtr>( regPtr->get( keyPtr2 ) ); |
| c1v13= dynCast<CacheableStringPtr>( regPtr->get( keyPtr3 ) ); |
| c1v14= dynCast<CacheableStringPtr>( regPtr->get( keyPtr4 ) ); |
| c1v15= dynCast<CacheableStringPtr>( regPtr->get( keyPtr5 ) ); |
| |
| |
| //Print local Get Values |
| LOGINFO("CLIENT-1 :: local GET operation -6 c1v11 = %s", c1v11->asChar()); |
| LOGINFO("CLIENT-1 :: local GET operation -7 c1v12 = %s", c1v12->asChar()); |
| LOGINFO("CLIENT-1 :: local GET operation -8 c1v13 = %s", c1v13->asChar()); |
| LOGINFO("CLIENT-1 :: local GET operation -9 c1v14=%s", c1v14->asChar()); |
| LOGINFO("CLIENT-1 :: local GET operation....Done c1v15=%s", c1v15->asChar()); |
| |
| //localDestroy |
| regPtr->localDestroy(keyPtr1); |
| regPtr->localDestroy(keyPtr2); |
| regPtr->localDestroy(keyPtr3); |
| regPtr->localDestroy(keyPtr4); |
| regPtr->localDestroy(keyPtr5); |
| |
| LOG("CLIENT-1 :: localDestroy() operation....Done"); |
| |
| //remoteGet |
| s1v11= dynCast<CacheableStringPtr>( regPtr->get( keyPtr1 ) ); |
| s1v12= dynCast<CacheableStringPtr>( regPtr->get( keyPtr2 ) ); |
| s1v13= dynCast<CacheableStringPtr>( regPtr->get( keyPtr3 ) ); |
| s1v14= dynCast<CacheableStringPtr>( regPtr->get( keyPtr4 ) ); |
| s1v15= dynCast<CacheableStringPtr>( regPtr->get( keyPtr5 ) ); |
| |
| //Print remoteGet Values |
| LOGINFO("CLIENT-1 :: remoteGet operation -6 s1v11 = %s", s1v11->asChar()); |
| LOGINFO("CLIENT-1 :: remoteGet operation -6 s1v12 = %s", s1v12->asChar()); |
| LOGINFO("CLIENT-1 :: remoteGet operation -6 s1v13 = %s", s1v13->asChar()); |
| LOGINFO("CLIENT-1 :: remoteGet operation -6 s1v14 = %s", s1v14->asChar()); |
| LOGINFO("CLIENT-1 :: remoteGet operation -6 s1v15 = %s", s1v15->asChar()); |
| |
| ASSERT(*c1v11.ptr() == *s1v11.ptr(), "GetOnClient1:Values should be equal-1"); |
| ASSERT(*c1v12.ptr() == *s1v12.ptr(), "GetOnClient1:Values should be equal-2"); |
| ASSERT(*c1v13.ptr() == *s1v13.ptr(), "GetOnClient1:Values should be equal-3"); |
| ASSERT(*c1v14.ptr() == *s1v14.ptr(), "GetOnClient1:Values should be equal-4"); |
| ASSERT(*c1v15.ptr() == *s1v15.ptr(), "GetOnClient1:Values should be equal-5"); |
| LOG("CLIENT-1 ::local GET operation....Done"); |
| |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT2,GetOnClient2) |
| { |
| RegionPtr regPtr = getHelper()->getRegion(regNames[0]); |
| thread2->stop(); |
| delete thread2; |
| |
| dunit::sleep(3000); |
| //localGet |
| CacheableKeyPtr keyPtr1 = CacheableKey::create("key-1"); |
| CacheableKeyPtr keyPtr2 = CacheableKey::create("key-2"); |
| CacheableKeyPtr keyPtr3 = CacheableKey::create("key-3"); |
| CacheableKeyPtr keyPtr4 = CacheableKey::create("key-4"); |
| CacheableKeyPtr keyPtr5 = CacheableKey::create("key-5"); |
| |
| c2v11= dynCast<CacheableStringPtr>( regPtr->get( keyPtr1 ) ); |
| c2v12= dynCast<CacheableStringPtr>( regPtr->get( keyPtr2 ) ); |
| c2v13= dynCast<CacheableStringPtr>( regPtr->get( keyPtr3 ) ); |
| c2v14= dynCast<CacheableStringPtr>( regPtr->get( keyPtr4 ) ); |
| c2v15= dynCast<CacheableStringPtr>( regPtr->get( keyPtr5 ) ); |
| |
| //Print localGets |
| //Print local Get Values |
| LOGINFO("CLIENT-2 :: local GET operation c2v11 = %s", c2v11->asChar()); |
| LOGINFO("CLIENT-2 :: local GET operation c2v12 = %s", c2v12->asChar()); |
| LOGINFO("CLIENT-2 :: local GET operation c2v13 = %s", c2v13->asChar()); |
| LOGINFO("CLIENT-2 :: local GET operation c2v14=%s", c2v14->asChar()); |
| LOGINFO("CLIENT-2 :: local GET operation....Done c2v15=%s", c2v15->asChar()); |
| |
| LOG("CLIENT-2 :: local GET operation....Done"); |
| |
| //localDestroy |
| regPtr->localDestroy(keyPtr1); |
| regPtr->localDestroy(keyPtr2); |
| regPtr->localDestroy(keyPtr3); |
| regPtr->localDestroy(keyPtr4); |
| regPtr->localDestroy(keyPtr5); |
| LOG("CLIENT-2 :: localDestroy() operation....Done"); |
| |
| //remoteGet |
| s2v11= dynCast<CacheableStringPtr>( regPtr->get( keyPtr1 ) ); |
| s2v12= dynCast<CacheableStringPtr>( regPtr->get( keyPtr2 ) ); |
| s2v13= dynCast<CacheableStringPtr>( regPtr->get( keyPtr3 ) ); |
| s2v14= dynCast<CacheableStringPtr>( regPtr->get( keyPtr4 ) ); |
| s2v15= dynCast<CacheableStringPtr>( regPtr->get( keyPtr5 ) ); |
| |
| //Print remoteGet Values |
| LOGINFO("CLIENT-2 :: remoteGet operation s2v11 = %s", s2v11->asChar()); |
| LOGINFO("CLIENT-2 :: remoteGet operation s2v12 = %s", s2v12->asChar()); |
| LOGINFO("CLIENT-2 :: remoteGet operation s2v13 = %s", s2v13->asChar()); |
| LOGINFO("CLIENT-2 :: remoteGet operation s2v14 = %s", s2v14->asChar()); |
| LOGINFO("CLIENT-2 :: remoteGet operation s2v15 = %s", s2v15->asChar()); |
| |
| ASSERT(*c2v11.ptr() == *s2v11.ptr(), "GetOnClient2:Values should be equal-1"); |
| ASSERT(*c2v12.ptr() == *s2v12.ptr(), "GetOnClient2:Values should be equal-2"); |
| ASSERT(*c2v13.ptr() == *s2v13.ptr(), "GetOnClient2:Values should be equal-3"); |
| ASSERT(*c2v14.ptr() == *s2v14.ptr(), "GetOnClient2:Values should be equal-4"); |
| ASSERT(*c2v15.ptr() == *s2v15.ptr(), "GetOnClient2:Values should be equal-5"); |
| |
| LOG( "GetOnClient2 completed" ); |
| |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(SERVER1,CloseServer1) |
| { |
| SLEEP(2000); |
| if ( isLocalServer1 ) { |
| CacheHelper::closeServer( 1 ); |
| LOG("SERVER1 stopped"); |
| } |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(CLIENT1,CloseClient1) |
| { |
| cleanProc(); |
| } |
| END_TASK_DEFINITION |
| DUNIT_TASK_DEFINITION(CLIENT2,CloseClient2) |
| { |
| cleanProc(); |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(SERVER1, CreateServers_With_Locator) |
| { |
| //starting locator |
| if ( isLocator1 ) |
| CacheHelper::initLocator( 1 ); |
| LOG(": Locator1 started"); |
| |
| //starting servers |
| if ( isLocalServer1 ){ |
| CacheHelper::initServer( 1, "cacheserver_concurrency_enabled1.xml", locatorsG, NULL, false, true, false, true ); |
| LOG(":SERVER1 started"); |
| } |
| //starting servers |
| if ( isLocalServer1 ){ |
| CacheHelper::initServer( 2, "cacheserver_concurrency_enabled2.xml", locatorsG, NULL, false, true, false, true ); |
| LOG(":SERVER2 started"); |
| } |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(SERVER1, CreateServers_With_Locator_Disk) |
| { |
| //starting locator |
| if ( isLocator1 ) |
| CacheHelper::initLocator( 1 ); |
| LOG(": Locator1 started"); |
| |
| //starting servers |
| if ( isLocalServer1 ){ |
| CacheHelper::initServer( 1, "cacheserver_concurrency_enabled_disk_replicate1.xml", locatorsG, NULL, false, true, false, true ); |
| LOG(":SERVER1 started"); |
| } |
| //starting servers |
| if ( isLocalServer1 ){ |
| CacheHelper::initServer( 2, "cacheserver_concurrency_enabled_disk_replicate2.xml", locatorsG, NULL, false, true, false, true ); |
| LOG(":SERVER2 started"); |
| } |
| } |
| END_TASK_DEFINITION |
| |
| DUNIT_TASK_DEFINITION(SERVER1, CreateServers_With_Locator_Partition) |
| { |
| //starting locator |
| if ( isLocator1 ) |
| CacheHelper::initLocator( 1 ); |
| LOG(": Locator1 started"); |
| |
| //starting servers |
| if ( isLocalServer1 ){ |
| CacheHelper::initServer( 1, "cacheserver_concurrency_enabled_disk1.xml", locatorsG, NULL, false, true, false, true ); |
| LOG(":SERVER1 started"); |
| } |
| //starting servers |
| if ( isLocalServer1 ){ |
| CacheHelper::initServer( 2, "cacheserver_concurrency_enabled_disk2.xml", locatorsG, NULL, false, true, false, true ); |
| LOG(":SERVER2 started"); |
| } |
| } |
| END_TASK_DEFINITION |
| DUNIT_TASK_DEFINITION(SERVER1,CloseServers_With_Locator) |
| { |
| |
| if (isLocalServer1) { |
| CacheHelper::closeServer(1); |
| LOG("SERVER1 stopped"); |
| } |
| |
| if (isLocalServer1) { |
| CacheHelper::closeServer(2); |
| LOG("SERVER2 stopped"); |
| } |
| |
| if ( isLocator1 ) { |
| CacheHelper::closeLocator( 1 ); |
| LOG("Locator1 stopped"); |
| } |
| } |
| END_TASK_DEFINITION |
| |
| |
| DUNIT_MAIN |
| { |
| /*TestCase-1 |
| * Two clients, Two servers |
| * One client connected to one server and another client connected to another server |
| * both clients have registerAllKeys |
| * Run various operations and check if the values across the clients and server are same. |
| */ |
| |
| CALL_TASK(CreateServers_With_Locator); |
| CALL_TASK(StartClient1); |
| CALL_TASK(StartClient2); |
| |
| CALL_TASK(PutOnClient1); |
| CALL_TASK(PutOnClient2); |
| CALL_TASK(GetOnClient1); |
| CALL_TASK(GetOnClient2); |
| |
| //test transaction |
| CALL_TASK(threadPutonClient1); |
| CALL_TASK(transactionPutOnClient2); |
| CALL_TASK(verifyGetonClient1); |
| |
| CALL_TASK(CloseClient1); |
| CALL_TASK(CloseClient2); |
| CALL_TASK(CloseServers_With_Locator); |
| |
| /*testServerGC, TestCase-2 |
| * Two clients, Two servers |
| * One client connected to one server and another client connected to another server |
| * both clients have registerAllKeys |
| * tombstone timeout on server reset to receive an early GC. |
| * Replicated region. Destroy multiple keys, a GC is received and it should be handled properly. |
| * For now, no error message is thrown. Log files need to be verified. |
| */ |
| CALL_TASK(CreateServers_With_Locator); |
| CALL_TASK(StartClient1); |
| CALL_TASK(StartClient2); |
| |
| CALL_TASK(testServerGC); |
| |
| CALL_TASK(CloseClient1); |
| CALL_TASK(CloseClient2); |
| CALL_TASK(CloseServers_With_Locator); |
| |
| /*testServerGC, TestCase-3 |
| * Two clients, Two servers |
| * One client connected to one server and another client connected to another server |
| * both clients have registerAllKeys |
| * Tombstone timeout on server reset to receive an early GC. |
| * REPLICATE_PERSISTENT region. Destroy multiple keys, a GC is received and it should be handled properly. |
| * For now, no error message is thrown. Log files need to be verified. |
| */ |
| CALL_TASK(CreateServers_With_Locator_Disk); |
| |
| CALL_TASK(StartClient1); |
| CALL_TASK(StartClient2); |
| CALL_TASK(testServerGC); |
| |
| CALL_TASK(CloseClient1); |
| CALL_TASK(CloseClient2); |
| CALL_TASK(CloseServers_With_Locator); |
| |
| /*testServerGC, TestCase-4 |
| * Two clients, Two servers |
| * One client connected to one server and another client connected to another server |
| * both clients have registerAllKeys |
| * Tombstone timeout on server reset to receive an early GC. |
| * PARTITION_PERSISTENT region. Destroy multiple keys, a GC is received and it should be handled properly. |
| * For now, no error message is thrown. Log files need to be verified. |
| */ |
| CALL_TASK(CreateServers_With_Locator_Partition); |
| |
| CALL_TASK(StartClient1); |
| CALL_TASK(StartClient2); |
| CALL_TASK(testServerGC); |
| |
| CALL_TASK(CloseClient1); |
| CALL_TASK(CloseClient2); |
| CALL_TASK(CloseServers_With_Locator); |
| |
| } |
| END_MAIN |