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

📄 alltests.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        test(objs == query->findAllObjectsByType("::IceGrid::Registry"));    }    cout << "ok" << endl;    cout << "testing well-known IceGrid objects... " << flush;    {        //        // Test Registry well-known object (we have already tested        // admin session creation for the creation of the admin        // session above!)        //        RegistryPrx masterRegistry = RegistryPrx::checkedCast(            comm->stringToProxy("TestIceGrid/Registry")->ice_locator(replicatedLocator));        RegistryPrx slave1Registry = RegistryPrx::checkedCast(            comm->stringToProxy("TestIceGrid/Registry-Slave1")->ice_locator(replicatedLocator));        SessionPrx session = masterRegistry->createSession("dummy", "dummy");        session->destroy();        if(comm->getProperties()->getProperty("Ice.Default.Protocol") == "ssl")        {             session = masterRegistry->createSessionFromSecureConnection();            session->destroy();        }        else        {            try            {                masterRegistry->createSessionFromSecureConnection();            }            catch(const PermissionDeniedException&)            {            }        }        try        {            slave1Registry->createSession("dummy", "");        }        catch(const PermissionDeniedException&)        {        }        try        {            slave1Registry->createSessionFromSecureConnection();        }        catch(const PermissionDeniedException&)        {        }        //        // Test registry user-account mapper.        //        UserAccountMapperPrx masterMapper = UserAccountMapperPrx::checkedCast(            comm->stringToProxy("TestIceGrid/RegistryUserAccountMapper")->ice_locator(replicatedLocator));        UserAccountMapperPrx slave1Mapper = UserAccountMapperPrx::checkedCast(            comm->stringToProxy("TestIceGrid/RegistryUserAccountMapper-Slave1")->ice_locator(replicatedLocator));        test(masterMapper->getUserAccount("Dummy User Account1") == "dummy1");        test(masterMapper->getUserAccount("Dummy User Account2") == "dummy2");        test(slave1Mapper->getUserAccount("Dummy User Account1") == "dummy1");        test(slave1Mapper->getUserAccount("Dummy User Account2") == "dummy2");        try        {            masterMapper->getUserAccount("unknown");            test(false);        }        catch(UserAccountNotFoundException&)        {        }        try        {            slave1Mapper->getUserAccount("unknown");            test(false);        }        catch(UserAccountNotFoundException&)        {        }                //        // Test SessionManager, SSLSessionManager,        // AdminSessionManager, AdminSSLSessionManager        //        comm->stringToProxy("TestIceGrid/SessionManager")->ice_locator(replicatedLocator)->ice_ping();        comm->stringToProxy("TestIceGrid/SSLSessionManager")->ice_locator(replicatedLocator)->ice_ping();        try        {            comm->stringToProxy("TestIceGrid/SessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();            test(false);        }        catch(const Ice::NotRegisteredException&)        {        }        try        {            comm->stringToProxy("TestIceGrid/SSLSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();            test(false);        }        catch(const Ice::NotRegisteredException&)        {        }        comm->stringToProxy("TestIceGrid/AdminSessionManager")->ice_locator(replicatedLocator)->ice_ping();        comm->stringToProxy("TestIceGrid/AdminSSLSessionManager")->ice_locator(replicatedLocator)->ice_ping();        comm->stringToProxy("TestIceGrid/AdminSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();        comm->stringToProxy("TestIceGrid/AdminSSLSessionManager-Slave1")->ice_locator(replicatedLocator)->ice_ping();    }    cout << "ok" << endl;    //    // Registry update test:    //    // - start master    // - start slave1: keep slave1 up for each update    // - start slave2: shutdown slave2 for each update    // - ensure updates are correctly replicated    // - updates to test: application/adapter/object    //    cout << "testing registry updates... " << flush;    {        ApplicationDescriptor app;        app.name = "TestApp";        app.description = "added application";        AdapterInfo adpt;        adpt.id = "TestAdpt";        adpt.proxy = comm->stringToProxy("dummy:tcp -p 12345 -h 127.0.0.1");        ObjectInfo obj;        obj.proxy = comm->stringToProxy("dummy:tcp -p 12345 -h 127.0.0.1");        obj.type = "::Hello";        //        // We use the locator registry from Slave1 to ensure that the        // forwarding to the master work (the slave locator registry        // forwards everything to the master).        //        Ice::LocatorRegistryPrx locatorRegistry = slave1Locator->getRegistry();        //        // Test addition of application, adapter, object.        //                try        {            slave1Admin->addApplication(app);            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database.        }        masterAdmin->addApplication(app);        locatorRegistry->setAdapterDirectProxy(adpt.id, adpt.proxy);        try        {            slave1Admin->addObjectWithType(obj.proxy, obj.type);            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database        }        masterAdmin->addObjectWithType(obj.proxy, obj.type);        admin->startServer("Slave2");        slave2Admin = createAdminSession(slave2Locator, "Slave2");        test(masterAdmin->getApplicationInfo("TestApp").descriptor.description == "added application");        test(slave1Admin->getApplicationInfo("TestApp").descriptor.description == "added application");        test(slave2Admin->getApplicationInfo("TestApp").descriptor.description == "added application");                     test(masterAdmin->getAdapterInfo("TestAdpt")[0] == adpt);        test(slave1Admin->getAdapterInfo("TestAdpt")[0] == adpt);        test(slave2Admin->getAdapterInfo("TestAdpt")[0] == adpt);        test(masterAdmin->getObjectInfo(obj.proxy->ice_getIdentity()) == obj);        test(slave1Admin->getObjectInfo(obj.proxy->ice_getIdentity()) == obj);        test(slave2Admin->getObjectInfo(obj.proxy->ice_getIdentity()) == obj);                slave2Admin->shutdown();        waitForServerState(admin, "Slave2", false);        //        // Test sync of application.        //        app.description = "updated1 application";        try        {            slave1Admin->syncApplication(app);            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database.        }        masterAdmin->syncApplication(app);        admin->startServer("Slave2");        slave2Admin = createAdminSession(slave2Locator, "Slave2");        test(masterAdmin->getApplicationInfo("TestApp").descriptor.description == "updated1 application");        test(slave1Admin->getApplicationInfo("TestApp").descriptor.description == "updated1 application");        test(slave2Admin->getApplicationInfo("TestApp").descriptor.description == "updated1 application");        slave2Admin->shutdown();        waitForServerState(admin, "Slave2", false);        //        // Test update of application, adapter, object.        //        ApplicationUpdateDescriptor appUpdate;        appUpdate.name = "TestApp";        appUpdate.description = new BoxedString("updated2 application");        try        {            slave1Admin->updateApplication(appUpdate);            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database.        }        masterAdmin->updateApplication(appUpdate);        adpt.replicaGroupId = "TestReplicaGroup";        locatorRegistry->setReplicatedAdapterDirectProxy(adpt.id, adpt.replicaGroupId, adpt.proxy);        obj.proxy = comm->stringToProxy("dummy:tcp -p 12346 -h 127.0.0.1");        try        {            slave1Admin->updateObject(obj.proxy);            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database        }        masterAdmin->updateObject(obj.proxy);        admin->startServer("Slave2");        slave2Admin = createAdminSession(slave2Locator, "Slave2");        test(masterAdmin->getApplicationInfo("TestApp").descriptor.description == "updated2 application");        test(slave1Admin->getApplicationInfo("TestApp").descriptor.description == "updated2 application");        test(slave2Admin->getApplicationInfo("TestApp").descriptor.description == "updated2 application");        test(masterAdmin->getAdapterInfo("TestAdpt")[0] == adpt);        test(slave1Admin->getAdapterInfo("TestAdpt")[0] == adpt);        test(slave2Admin->getAdapterInfo("TestAdpt")[0] == adpt);        test(masterAdmin->getObjectInfo(obj.proxy->ice_getIdentity()) == obj);        test(slave1Admin->getObjectInfo(obj.proxy->ice_getIdentity()) == obj);        test(slave2Admin->getObjectInfo(obj.proxy->ice_getIdentity()) == obj);                slave2Admin->shutdown();        waitForServerState(admin, "Slave2", false);        //        // Test removal of application, adapter and object.        try        {            slave1Admin->removeApplication("TestApp");            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database.        }        masterAdmin->removeApplication("TestApp");        try        {            slave1Admin->removeAdapter("TestAdpt");            test(false);        }        catch(const DeploymentException&)        {            // Slave can't modify the database.        }        masterAdmin->removeAdapter("TestAdpt");        try        {            slave1Admin->removeObject(obj.proxy->ice_getIdentity());        }        catch(const DeploymentException&)        {            // Slave can't modify the database.        }        masterAdmin->removeObject(obj.proxy->ice_getIdentity());        admin->startServer("Slave2");        slave2Admin = createAdminSession(slave2Locator, "Slave2");        try        {            masterAdmin->getApplicationInfo("TestApp");            test(false);        }        catch(const ApplicationNotExistException&)        {        }        try        {            slave1Admin->getApplicationInfo("TestApp");            test(false);        }        catch(const ApplicationNotExistException&)        {        }        try        {            slave2Admin->getApplicationInfo("TestApp");            test(false);        }        catch(const ApplicationNotExistException&)        {        }        try        {            masterAdmin->getAdapterInfo("TestAdpt");            test(false);        }        catch(const AdapterNotExistException&)        {        }        try        {            slave1Admin->getAdapterInfo("TestAdpt");            test(false);        }        catch(const AdapterNotExistException&)        {        }        try        {            slave2Admin->getAdapterInfo("TestAdpt");            test(false);        }        catch(const AdapterNotExistException&)        {        }        try        {            masterAdmin->getObjectInfo(obj.proxy->ice_getIdentity());            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            slave1Admin->getObjectInfo(obj.proxy->ice_getIdentity());            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        try        {            slave2Admin->getObjectInfo(obj.proxy->ice_getIdentity());            test(false);        }        catch(const ObjectNotRegisteredException&)        {        }        slave2Admin->shutdown();        waitForServerState(admin, "Slave2", false);    }    cout << "ok" << endl;    params.clear();    params["id"] = "Node1";    instantiateServer(admin, "IceGridNode", params);    //    // Add an application which is using Node1. Otherwise, when a    // registry restarts it would throw aways the proxy of the nodes    // because the node isn't used by any application.    //    ApplicationDescriptor app;    app.name = "DummyApp";    app.nodes["Node1"].description = "dummy node";    try    {        masterAdmin->addApplication(app);    }    catch(const Ice::Exception& ex)    {        cerr << ex << endl;        test(false);    }

⌨️ 快捷键说明

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