⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alltests.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
    }    catch(const ServerStartException& ex)    {        cerr << ex.reason << endl;        test(false);    }    cout << "ok" << endl;    const int allocationTimeout = 5000;    Ice::ObjectPrx obj;    Ice::ObjectPrx dummy;    try    {        cout << "testing create session... " << flush;        SessionPrx session1 = registry->createSession("Client1", "");        SessionPrx session2 = registry->createSession("Client2", "");                keepAlive->add(session1);        keepAlive->add(session2);            cout << "ok" << endl;        cout << "testing allocate object by identity... " << flush;        Ice::Identity allocatable = communicator->stringToIdentity("allocatable");        Ice::Identity allocatablebis = communicator->stringToIdentity("allocatablebis");        try        {            session1->allocateObjectById(communicator->stringToIdentity("dummy"));        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            session1->releaseObject(communicator->stringToIdentity("dummy"));        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            session1->allocateObjectById(communicator->stringToIdentity("nonallocatable"));            test(false);        }        catch(const AllocationException&)        {            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            session2->allocateObjectById(communicator->stringToIdentity("nonallocatable"));            test(false);        }        catch(const AllocationException&)        {            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            session1->releaseObject(communicator->stringToIdentity("nonallocatable"));            test(false);        }        catch(const AllocationException&)        {            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            session2->releaseObject(communicator->stringToIdentity("nonallocatable"));            test(false);        }        catch(const AllocationException&)        {            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        session1->allocateObjectById(allocatable);        try        {            session1->allocateObjectById(allocatable);            test(false);        }        catch(const AllocationException&)        {        }        session1->setAllocationTimeout(0);        session2->setAllocationTimeout(0);        try        {            session2->allocateObjectById(allocatable);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        try        {            session2->releaseObject(allocatable);            test(false);        }        catch(const AllocationException&)        {        }        session1->allocateObjectById(allocatablebis);        try        {            session2->allocateObjectById(allocatablebis);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session1->releaseObject(allocatablebis);        session2->allocateObjectById(allocatablebis);        try        {            session1->allocateObjectById(allocatablebis);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session2->releaseObject(allocatablebis);            session2->setAllocationTimeout(allocationTimeout);        AllocateObjectByIdCallbackPtr cb1 = new AllocateObjectByIdCallback();        session2->allocateObjectById_async(cb1, allocatable);        IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(500));        test(!cb1->hasResponse(dummy));        session1->releaseObject(allocatable);        cb1->waitResponse(__FILE__, __LINE__);        test(cb1->hasResponse(dummy));        session1->setAllocationTimeout(0);        try        {            session1->allocateObjectById(allocatable);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        try        {            session1->releaseObject(allocatable);            test(false);        }        catch(const AllocationException&)        {        }        session1->setAllocationTimeout(allocationTimeout);        cb1 = new AllocateObjectByIdCallback();        session1->allocateObjectById_async(cb1, allocatable);        IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(500));        test(!cb1->hasResponse(dummy));        session2->releaseObject(allocatable);        cb1->waitResponse(__FILE__, __LINE__);        test(cb1->hasResponse(dummy));        session1->releaseObject(allocatable);        cout << "ok" << endl;        cout << "testing allocate object by type... " << flush;            session1->setAllocationTimeout(0);        session2->setAllocationTimeout(0);        try        {            obj = session1->allocateObjectByType("::Unknown");            test(false);        }        catch(const AllocationTimeoutException&)        {            test(false);        }        catch(const AllocationException&)        {        }        try        {            obj = session1->allocateObjectByType("::NotAllocatable");            test(false);        }        catch(const AllocationTimeoutException&)        {            test(false);        }        catch(const AllocationException&)        {        }        obj = session1->allocateObjectByType("::Test");        test(obj && obj->ice_getIdentity().name == "allocatable");        try        {            session1->allocateObjectByType("::Test");            test(false);        }        catch(const AllocationException&)        {        }        try        {            session2->allocateObjectByType("::Test");            test(false);        }        catch(const AllocationTimeoutException&)        {        }        try        {            session2->releaseObject(obj->ice_getIdentity());        }        catch(const AllocationException&)        {        }        session1->releaseObject(obj->ice_getIdentity());        try        {            session1->releaseObject(obj->ice_getIdentity());        }        catch(const AllocationException&)        {        }        obj = session2->allocateObjectByType("::Test"); // Allocate the object        test(obj && obj->ice_getIdentity().name == "allocatable");        try        {            session2->allocateObjectByType("::Test");            test(false);        }        catch(const AllocationException&)        {        }        try        {            session1->allocateObjectByType("::Test");            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session1->allocateObjectByType("::TestBis");        try        {            session2->allocateObjectByType("::TestBis");            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session1->releaseObject(allocatablebis);        session2->allocateObjectByType("::TestBis");        try        {            session1->allocateObjectByType("::TestBis");            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session2->releaseObject(allocatablebis);        session1->setAllocationTimeout(allocationTimeout);        AllocateObjectByTypeCallbackPtr cb3 = new AllocateObjectByTypeCallback();        session1->allocateObjectByType_async(cb3, "::Test");        IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(500));        test(!cb3->hasResponse(dummy));        session2->releaseObject(obj->ice_getIdentity());        cb3->waitResponse(__FILE__, __LINE__);        test(cb3->hasResponse(obj));        session1->releaseObject(obj->ice_getIdentity());            cout << "ok" << endl;        cout << "testing object allocation timeout... " << flush;            session1->allocateObjectById(allocatable);        IceUtil::Time time = IceUtil::Time::now();        session2->setAllocationTimeout(500);        try        {            session2->allocateObjectById(allocatable);            test(false);        }        catch(const AllocationTimeoutException&)        {            test(time + IceUtil::Time::milliSeconds(100) < IceUtil::Time::now());        }        time = IceUtil::Time::now();        try        {            session2->allocateObjectById(allocatable);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        test(time + IceUtil::Time::milliSeconds(100) < IceUtil::Time::now());        time = IceUtil::Time::now();        try        {            session2->allocateObjectByType("::Test");            test(false);        }        catch(const AllocationTimeoutException&)        {        }        test(time + IceUtil::Time::milliSeconds(100) < IceUtil::Time::now());        session1->releaseObject(allocatable);        session2->setAllocationTimeout(0);        cout << "ok" << endl;        cout << "testing server allocation... " << flush;        session1->setAllocationTimeout(0);        session2->setAllocationTimeout(0);        Ice::Identity allocatable3 = communicator->stringToIdentity("allocatable3");        Ice::Identity allocatable4 = communicator->stringToIdentity("allocatable4");        session1->allocateObjectById(allocatable3);        try        {            session2->allocateObjectById(allocatable3);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        try        {            session2->allocateObjectById(allocatable4);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session1->allocateObjectById(allocatable4);        session1->releaseObject(allocatable3);        try        {            session2->allocateObjectById(allocatable3);            test(false);        }        catch(const AllocationTimeoutException&)        {        }        session1->releaseObject(allocatable4);        session2->allocateObjectById(allocatable3);        try        {            session1->allocateObjectById(allocatable3);            test(false);        }        catch(const AllocationTimeoutException&)        {

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -