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

📄 alltests.cpp

📁 ICE-3.2 一个开源的中间件
💻 CPP
📖 第 1 页 / 共 3 页
字号:
        service->entry = "dummy";        addProperty(service, "ServiceProp", "test");                TemplateDescriptor svcTempl;        svcTempl.parameters.push_back("name");        svcTempl.descriptor = service;        ServiceInstanceDescriptor serviceInstance;        serviceInstance._cpp_template = "ServiceTemplate";        serviceInstance.parameterValues["name"] =  "Service";        serviceInstance.propertySet.properties.push_back(createProperty("ServiceInstanceProp", "test"));        IceBoxDescriptorPtr server = new IceBoxDescriptor();        server->id = "${name}";        server->exe = "server";        server->pwd = ".";        server->propertySet.references.push_back("ApplicationPropertySet");        server->propertySet.references.push_back("NodePropertySet");        addProperty(server, "ServerProp", "test");        server->services.push_back(serviceInstance);        TemplateDescriptor templ;        templ.parameters.push_back("name");        templ.descriptor = server;        ApplicationDescriptor testApp;        testApp.name = "TestApp";        testApp.variables["appvar"] = "AppValue";        testApp.serverTemplates["ServerTemplate"] = templ;        testApp.serviceTemplates["ServiceTemplate"] = svcTempl;        testApp.propertySets["ApplicationPropertySet"].properties.push_back(createProperty("ApplicationProp","test"));        testApp.propertySets["ApplicationPropertySet1"].properties.push_back(createProperty("ApplicationProp", "d"));        NodeDescriptor node;        node.variables["nodevar"] = "NodeValue";        node.propertySets["NodePropertySet"].properties.push_back(createProperty("NodeProp", "test"));        node.propertySets["NodePropertySet1"].properties.push_back(createProperty("NodeProp", "test"));        ServerInstanceDescriptor serverInstance;        serverInstance._cpp_template = "ServerTemplate";        serverInstance.parameterValues["name"] = "Server";        serverInstance.propertySet.properties.push_back(createProperty("ServerInstanceProp", "test"));        node.serverInstances.push_back(serverInstance);        testApp.nodes["node1"] = node;        try        {            admin->addApplication(testApp);        }        catch(const DeploymentException& ex)        {            cerr << ex.reason << endl;            test(false);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        ServerInfo info = admin->getServerInfo("Server");        test(hasProperty(info.descriptor, "ServerProp", "test"));        test(hasProperty(info.descriptor, "NodeProp", "test"));        test(hasProperty(info.descriptor, "ApplicationProp", "test"));        test(hasProperty(info.descriptor, "ServerInstanceProp", "test"));        ServiceDescriptorPtr svc = IceBoxDescriptorPtr::dynamicCast(info.descriptor)->services[0].descriptor;        test(hasProperty(svc, "ServiceProp", "test"));        ApplicationUpdateDescriptor empty;        empty.name = "TestApp";        ApplicationUpdateDescriptor update;        update = empty;        service->propertySet.properties.clear();        addProperty(service, "ServiceProp", "updated");        svcTempl.descriptor = service;        update.serviceTemplates["ServiceTemplate"] = svcTempl;        admin->updateApplication(update);        info = admin->getServerInfo("Server");        svc = IceBoxDescriptorPtr::dynamicCast(info.descriptor)->services[0].descriptor;        test(hasProperty(svc, "ServiceProp", "updated"));        update = empty;        serviceInstance.propertySet.properties.clear();        serviceInstance.propertySet.properties.push_back(createProperty("ServiceInstanceProp", "updated"));        server->services.clear();        server->services.push_back(serviceInstance);        templ.descriptor = server;        update.serverTemplates["ServerTemplate"] = templ;        admin->updateApplication(update);        info = admin->getServerInfo("Server");        svc = IceBoxDescriptorPtr::dynamicCast(info.descriptor)->services[0].descriptor;        test(hasProperty(svc, "ServiceInstanceProp", "updated"));        update = empty;        server->propertySet.properties.clear();        addProperty(server, "ServerProp", "updated");        templ.descriptor = server;        update.serverTemplates["ServerTemplate"] = templ;        admin->updateApplication(update);        info = admin->getServerInfo("Server");        test(hasProperty(info.descriptor, "ServerProp", "updated"));        update = empty;        serverInstance.propertySet.properties.clear();        serverInstance.propertySet.properties.push_back(createProperty("ServerInstanceProp", "updated"));        NodeUpdateDescriptor nodeUpdate;        nodeUpdate.name = "node1";        nodeUpdate.serverInstances.push_back(serverInstance);        update.nodes.push_back(nodeUpdate);        admin->updateApplication(update);        info = admin->getServerInfo("Server");        test(hasProperty(info.descriptor, "ServerInstanceProp", "updated"));        update = empty;        nodeUpdate.name = "node1";        nodeUpdate.serverInstances.clear();        nodeUpdate.propertySets["NodePropertySet"].properties.clear();        nodeUpdate.propertySets["NodePropertySet"].properties.push_back(            createProperty("NodeProp", "updated"));        nodeUpdate.removePropertySets.push_back("NodePropertySet1");        update.nodes.push_back(nodeUpdate);        admin->updateApplication(update);        info = admin->getServerInfo("Server");        test(hasProperty(info.descriptor, "NodeProp", "updated"));        ApplicationDescriptor updatedApplication = admin->getApplicationInfo("TestApp").descriptor;        test(updatedApplication.nodes["node1"].propertySets.find("NodePropertySet1") ==             updatedApplication.nodes["node1"].propertySets.end());        update = empty;        update.propertySets["ApplicationPropertySet"].properties.clear();        update.propertySets["ApplicationPropertySet"].properties.push_back(            createProperty("ApplicationProp", "updated"));        update.removePropertySets.push_back("ApplicationPropertySet1");        admin->updateApplication(update);        info = admin->getServerInfo("Server");        test(hasProperty(info.descriptor, "ApplicationProp", "updated"));        updatedApplication = admin->getApplicationInfo("TestApp").descriptor;        test(updatedApplication.propertySets.find("ApplicationPropertySet1") ==              updatedApplication.propertySets.end());        admin->removeApplication("TestApp");        cout << "ok" << endl;    }    {        cout << "testing description update... " << flush;        ApplicationDescriptor testApp;        testApp.name = "TestApp";        testApp.description = "Description";        try        {            admin->addApplication(testApp);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        testApp = admin->getApplicationInfo("TestApp").descriptor;        test(testApp.description == "Description");                ApplicationUpdateDescriptor update;        update.name = "TestApp";        try        {            admin->updateApplication(update);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        testApp = admin->getApplicationInfo("TestApp").descriptor;        test(testApp.description == "Description");        update.description = new BoxedString("updatedDescription");        try        {            admin->updateApplication(update);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        testApp = admin->getApplicationInfo("TestApp").descriptor;        test(testApp.description == "updatedDescription");                    update.description = new BoxedString("");        try        {            admin->updateApplication(update);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        testApp = admin->getApplicationInfo("TestApp").descriptor;        test(testApp.description == "");        admin->removeApplication("TestApp");                cout << "ok" << endl;    }    {        cout << "testing server node move... " << flush;                ApplicationDescriptor nodeApp;        nodeApp.name = "NodeApp";        ServerDescriptorPtr server = new ServerDescriptor();        server->id = "node-${index}";        server->exe = properties->getProperty("IceDir") + "/bin/icegridnode";        server->pwd = ".";        server->options.push_back("--nowarn");        AdapterDescriptor adapter;        adapter.name = "IceGrid.Node";        adapter.id = "IceGrid.Node.node-${index}";        adapter.registerProcess = true;        adapter.serverLifetime = false;        server->adapters.push_back(adapter);        addProperty(server, "IceGrid.Node.Name", "node-${index}");        addProperty(server, "IceGrid.Node.Data", properties->getProperty("TestDir") + "/db/node-${index}");        addProperty(server, "IceGrid.Node.Endpoints", "default");        addProperty(server, "IceGrid.Node.PropertiesOverride", properties->getProperty("NodePropertiesOverride"));        nodeApp.serverTemplates["nodeTemplate"].descriptor = server;        nodeApp.serverTemplates["nodeTemplate"].parameters.push_back("index");        ServerInstanceDescriptor instance;        instance._cpp_template = "nodeTemplate";        instance.parameterValues["index"] = "1";        nodeApp.nodes["localnode"].serverInstances.push_back(instance);        instance.parameterValues["index"] = "2";        nodeApp.nodes["localnode"].serverInstances.push_back(instance);        try        {            admin->addApplication(nodeApp);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        admin->startServer("node-1");        admin->startServer("node-2");        //        // We need to wait because the node might not be fully started        // here (the node adapter isn't indirect, so we can't use the        // wait-for-activation feature here.)        //        int retry = 0;        while(retry < 20)        {            try            {                if(admin->pingNode("node-1") && admin->pingNode("node-2"))                {                    break;                }            }            catch(const NodeNotExistException&)            {            }            IceUtil::ThreadControl::sleep(IceUtil::Time::milliSeconds(500));            ++retry;        }        test(admin->pingNode("node-1"));        test(admin->pingNode("node-2"));        ApplicationDescriptor testApp;        testApp.name = "TestApp";        server = new ServerDescriptor();        server->id = "Server";        server->exe = properties->getProperty("TestDir") + "/server";        server->pwd = ".";        adapter.name = "Server";        adapter.id = "ServerAdapter";        adapter.registerProcess = true;        adapter.serverLifetime = true;        server->adapters.push_back(adapter);        addProperty(server, "Server.Endpoints", "default");        testApp.nodes["node-1"].servers.push_back(server);        try        {            admin->addApplication(testApp);        }        catch(const DeploymentException& ex)        {            cerr << ex.reason << endl;            test(false);        }                try        {            admin->startServer("Server");            test(admin->getServerState("Server") == Active);        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }                ApplicationUpdateDescriptor update;        update.name = "TestApp";                NodeUpdateDescriptor nodeUpdate;        nodeUpdate.name = "node-1";        nodeUpdate.removeServers.push_back("Server");        update.nodes.push_back(nodeUpdate);        nodeUpdate.name = "node-2";        nodeUpdate.servers.push_back(server);        nodeUpdate.removeServers.clear();        update.nodes.push_back(nodeUpdate);        try        {            admin->updateApplication(update);           }        catch(const DeploymentException& ex)        {            cerr << ex.reason << endl;            test(false);        }        test(admin->getServerInfo("Server").node == "node-2" && admin->getServerState("Server") == Inactive);        admin->startServer("Server");        test(admin->getServerState("Server") == Active);        IceUtil::ThreadControl::sleep(IceUtil::Time::seconds(1));        update = ApplicationUpdateDescriptor();        update.name = "TestApp";        nodeUpdate = NodeUpdateDescriptor();        nodeUpdate.name = "node-2";        nodeUpdate.removeServers.push_back("Server");        update.nodes.push_back(nodeUpdate);        nodeUpdate = NodeUpdateDescriptor();        nodeUpdate.name = "unknownNode";        nodeUpdate.servers.push_back(server);        update.nodes.push_back(nodeUpdate);        try        {            admin->updateApplication(update);        }        catch(const DeploymentException& ex)        {            cerr << ex.reason << endl;            test(false);        }        try        {            admin->getServerState("Server");            test(false);        }        catch(const NodeUnreachableException&)        {        }        try        {            admin->removeApplication("TestApp");        }        catch(const DeploymentException& ex)        {            cerr << ex.reason << endl;            test(false);        }        admin->stopServer("node-1");        admin->stopServer("node-2");        try        {            admin->removeApplication("NodeApp");        }        catch(const Ice::Exception& ex)        {            cerr << ex << endl;            test(false);        }        cout << "ok" << endl;    }    keepAlive->destroy();    keepAlive->getThreadControl().join();    keepAlive = 0;    session->destroy();}

⌨️ 快捷键说明

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