def startIceGridNode(testdir): iceGrid = os.path.join(TestUtil.getCppBinDir(), "icegridnode") dataDir = os.path.join(testdir, "db", "node") if not os.path.exists(dataDir): os.mkdir(dataDir) else: cleanDbDir(dataDir) # # Create property overrides from command line options. # overrideOptions = '"' for opt in TestUtil.getCommandLine( "", TestUtil.DriverConfig("server")).split(): opt = opt.replace("--", "") if opt.find("=") == -1: opt += "=1" overrideOptions += opt + " " overrideOptions += ' Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"' print "starting icegrid node...", command = r' --nowarn ' + nodeOptions + getDefaultLocatorProperty() + \ r' --IceGrid.Node.Data=' + dataDir + \ r' --IceGrid.Node.Name=localnode' + \ r' --IceGrid.Node.PropertiesOverride=' + overrideOptions driverConfig = TestUtil.DriverConfig("server") driverConfig.lang = "cpp" proc = TestUtil.startServer(iceGrid, command, driverConfig, adapter='node') print "ok" return proc
def iceGridClientServerTest(additionalClientOptions, additionalServerOptions): testdir = os.getcwd() server = TestUtil.getDefaultServerFile() client = TestUtil.getDefaultClientFile() if TestUtil.getDefaultMapping() != "java": server = os.path.join(testdir, server) client = os.path.join(testdir, client) if TestUtil.getDefaultMapping() == "java": os.environ['CLASSPATH'] = os.path.join( os.getcwd(), "classes") + os.pathsep + os.environ.get( "CLASSPATH", "") clientOptions = getDefaultLocatorProperty() + ' ' + additionalClientOptions serverOptions = getDefaultLocatorProperty() + ' ' + additionalServerOptions registryProcs = startIceGridRegistry(testdir, True) print "starting server...", serverProc = TestUtil.startServer(server, serverOptions, TestUtil.DriverConfig("server")) print "ok" print "starting client...", clientProc = TestUtil.startClient(client, clientOptions, TestUtil.DriverConfig("client")) print "ok" clientProc.waitTestSuccess() serverProc.waitTestSuccess() shutdownIceGridRegistry(registryProcs)
def iceGridAdmin(cmd, ignoreFailure = False): iceGridAdmin = TestUtil.getIceGridAdmin() user = r"admin1" if cmd == "registry shutdown": user = r"shutdown" command = getDefaultLocatorProperty() + r" --IceGridAdmin.Username="******" --IceGridAdmin.Password=test1 " + \ r' -e "' + cmd + '"' if TestUtil.appverifier: TestUtil.setAppVerifierSettings([TestUtil.getIceGridAdmin()]) driverConfig = TestUtil.DriverConfig("client") driverConfig.lang = "cpp" proc = TestUtil.startClient(iceGridAdmin, command, driverConfig) status = proc.wait() if TestUtil.appverifier: TestUtil.appVerifierAfterTestEnd([TestUtil.getIceGridAdmin()]) if not ignoreFailure and status: print(proc.buf) sys.exit(1) return proc.buf
def iceGridNodePropertiesOverride(): # # Create property overrides from command line options. # overrideOptions = '' for opt in shlex.split( TestUtil.getCommandLineProperties("", TestUtil.DriverConfig("server"), "")): opt = opt.strip().replace("--", "") index = opt.find("=") if index == -1: overrideOptions += ("%s=1 ") % opt else: key = opt[0:index] value = opt[index + 1:] if (value.find(' ') == -1): overrideOptions += ("%s=%s ") % (key, value) else: # # NOTE: We need 2 backslash before the quote to run the # C# test/IceGrid/simple test with SSL. # overrideOptions += ("%s=\\\"%s\\\" ") % ( key, value.replace('"', '\\\\\\"')) return overrideOptions
def startIceGridNode(testdir): iceGrid = TestUtil.getIceGridNode() dataDir = os.path.join(testdir, "db", "node") if not os.path.exists(dataDir): os.mkdir(dataDir) else: cleanDbDir(dataDir) overrideOptions = '" ' + iceGridNodePropertiesOverride() overrideOptions += ' Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"' sys.stdout.write("starting icegrid node... ") sys.stdout.flush() command = r' --nowarn ' + nodeOptions + getDefaultLocatorProperty() + \ r' --IceGrid.Node.Data="' + dataDir + '"' \ r' --IceGrid.Node.Name=localnode' + \ r' --IceGrid.Node.PropertiesOverride=' + overrideOptions driverConfig = TestUtil.DriverConfig("server") driverConfig.lang = "cpp" proc = TestUtil.startServer(iceGrid, command, driverConfig, adapter='node1') print("ok") return proc
def iceGridTest(application, additionalOptions = "", applicationOptions = ""): testdir = os.getcwd() if not TestUtil.isWin32() and os.getuid() == 0: print print("*** can't run test as root ***") print return if TestUtil.getDefaultMapping() == "java": os.environ['CLASSPATH'] = os.path.join(os.getcwd(), "classes") + os.pathsep + os.environ.get("CLASSPATH", "") client = TestUtil.getDefaultClientFile() if TestUtil.getDefaultMapping() != "java": client = os.path.join(testdir, client) clientOptions = ' ' + getDefaultLocatorProperty() + ' ' + additionalOptions targets = [] if TestUtil.appverifier: targets = [client, TestUtil.getIceGridNode(), TestUtil.getIceGridRegistry()] TestUtil.setAppVerifierSettings(targets) registryProcs = startIceGridRegistry(testdir) iceGridNodeProc = startIceGridNode(testdir) if application != "": sys.stdout.write("adding application... ") sys.stdout.flush() iceGridAdmin("application add -n '" + os.path.join(testdir, application) + "' " + \ "test.dir='" + testdir + "' ice.bindir='" + TestUtil.getCppBinDir() + "' " + applicationOptions) print("ok") sys.stdout.write("starting client... ") sys.stdout.flush() clientProc = TestUtil.startClient(client, clientOptions, TestUtil.DriverConfig("client"), startReader = False) print("ok") clientProc.startReader() clientProc.waitTestSuccess() if application != "": sys.stdout.write("remove application... ") sys.stdout.flush() iceGridAdmin("application remove Test") print("ok") sys.stdout.write("shutting down icegrid node... ") sys.stdout.flush() iceGridAdmin("node shutdown localnode") print("ok") shutdownIceGridRegistry(registryProcs) iceGridNodeProc.waitTestSuccess() if TestUtil.appverifier: TestUtil.appVerifierAfterTestEnd(targets)
def iceGridClientServerTest(additionalClientOptions, additionalServerOptions): testdir = os.getcwd() server = TestUtil.getDefaultServerFile() client = TestUtil.getDefaultClientFile() if TestUtil.getDefaultMapping() != "java": server = os.path.join(testdir, server) client = os.path.join(testdir, client) if TestUtil.getDefaultMapping() == "java": os.environ['CLASSPATH'] = os.path.join(os.getcwd(), "classes") + os.pathsep + os.environ.get("CLASSPATH", "") targets = [] if TestUtil.appverifier: targets = [client, server, TestUtil.getIceGridRegistry()] TestUtil.setAppVerifierSettings(targets) clientOptions = getDefaultLocatorProperty() + ' ' + additionalClientOptions serverOptions = getDefaultLocatorProperty() + ' ' + additionalServerOptions registryProcs = startIceGridRegistry(testdir, True) sys.stdout.write("starting server... ") sys.stdout.flush() serverProc= TestUtil.startServer(server, serverOptions, TestUtil.DriverConfig("server")) print("ok") sys.stdout.write("starting client... ") sys.stdout.flush() clientProc = TestUtil.startClient(client, clientOptions, TestUtil.DriverConfig("client")) print("ok") clientProc.waitTestSuccess() serverProc.waitTestSuccess() shutdownIceGridRegistry(registryProcs) if TestUtil.appverifier: TestUtil.appVerifierAfterTestEnd(targets)
def iceGridTest(application, additionalOptions="", applicationOptions=""): testdir = os.getcwd() if not TestUtil.isWin32() and os.getuid() == 0: print print "*** can't run test as root ***" print return if TestUtil.getDefaultMapping() == "java": os.environ['CLASSPATH'] = os.path.join( os.getcwd(), "classes") + os.pathsep + os.environ.get( "CLASSPATH", "") client = TestUtil.getDefaultClientFile() if TestUtil.getDefaultMapping() != "java": client = os.path.join(testdir, client) clientOptions = ' ' + getDefaultLocatorProperty() + ' ' + additionalOptions registryProcs = startIceGridRegistry(testdir) iceGridNodeProc = startIceGridNode(testdir) if application != "": print "adding application...", iceGridAdmin('application add -n ' + os.path.join(testdir, application) + ' ' + \ '"test.dir=' + testdir + '" "ice.bindir=' + TestUtil.getCppBinDir() + '" ' + applicationOptions) print "ok" print "starting client...", clientProc = TestUtil.startClient(client, clientOptions, TestUtil.DriverConfig("client")) print "ok" clientProc.waitTestSuccess() if application != "": print "remove application...", iceGridAdmin("application remove Test") print "ok" print "shutting down icegrid node...", iceGridAdmin("node shutdown localnode") print "ok" shutdownIceGridRegistry(registryProcs) iceGridNodeProc.waitTestSuccess()
def iceGridAdmin(cmd, ignoreFailure=False): iceGridAdmin = os.path.join(TestUtil.getCppBinDir(), "icegridadmin") user = r"admin1" if cmd == "registry shutdown": user = r"shutdown" command = getDefaultLocatorProperty() + r" --IceGridAdmin.Username="******" --IceGridAdmin.Password=test1 " + \ r' -e "' + cmd + '"' driverConfig = TestUtil.DriverConfig("client") driverConfig.lang = "cpp" proc = TestUtil.startClient(iceGridAdmin, command, driverConfig) status = proc.wait() if not ignoreFailure and status: print proc.buf sys.exit(1) return proc.buf
def runIceGridRegistry(): iceGrid = TestUtil.getIceGridRegistry() command = ' --nowarn ' + IceGridAdmin.registryOptions dataDir = os.path.join(testdir, "db", "registry") if not os.path.exists(dataDir): os.mkdir(dataDir) cmd = command + ' ' + \ r' --Ice.ProgramName=registry' + \ r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(IceGridAdmin.iceGridPort) + '" ' + \ r' --IceGrid.Registry.LMDB.MapSize=1 --IceGrid.Registry.LMDB.Path="' + dataDir + '"' driverConfig = TestUtil.DriverConfig("server") driverConfig.lang = "cpp" cmd = TestUtil.getCommandLine(iceGrid, driverConfig) + ' ' + cmd proc = TestUtil.spawn(cmd) return proc
def startIceGridRegistry(testdir, dynamicRegistration=False): iceGrid = TestUtil.getIceGridRegistry() command = ' --nowarn ' + registryOptions if dynamicRegistration: command += r' --IceGrid.Registry.DynamicRegistration' procs = [] i = 0 while i < (nreplicas + 1): if i == 0: name = "registry" else: name = "replica-" + str(i) dataDir = os.path.join(testdir, "db", name) if not os.path.exists(dataDir): os.mkdir(dataDir) else: cleanDbDir(dataDir) sys.stdout.write("starting icegrid " + name + "... ") sys.stdout.flush() cmd = command + ' ' + \ r' --Ice.ProgramName=' + name + \ r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(iceGridPort + i) + '" ' + \ r' --IceGrid.Registry.LMDB.MapSize=1 --IceGrid.Registry.LMDB.Path="' + dataDir + '" ' if i > 0: cmd += r' --IceGrid.Registry.ReplicaName=' + name + ' ' + getDefaultLocatorProperty( ) driverConfig = TestUtil.DriverConfig("server") driverConfig.lang = "cpp" proc = TestUtil.startServer(iceGrid, cmd, driverConfig, count=5) procs.append(proc) print("ok") i = i + 1 return procs
def startIceGridRegistry(testdir, dynamicRegistration=False): iceGrid = os.path.join(TestUtil.getCppBinDir(), "icegridregistry") command = ' --nowarn ' + registryOptions if dynamicRegistration: command += r' --IceGrid.Registry.DynamicRegistration' procs = [] i = 0 while i < (nreplicas + 1): if i == 0: name = "registry" else: name = "replica-" + str(i) dataDir = os.path.join(testdir, "db", name) if not os.path.exists(dataDir): os.mkdir(dataDir) else: cleanDbDir(dataDir) print "starting icegrid " + name + "...", cmd = command + \ r' --Ice.ProgramName=' + name + \ r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(iceGridPort + i) + ' -t 30000" ' + \ r' --IceGrid.Registry.Data=' + dataDir if i > 0: cmd += r' --IceGrid.Registry.ReplicaName=' + name + ' ' + getDefaultLocatorProperty( ) driverConfig = TestUtil.DriverConfig("server") driverConfig.lang = "cpp" proc = TestUtil.startServer(iceGrid, cmd, driverConfig, count=4) procs.append(proc) print "ok" i = i + 1 return procs
def runIceGridRegistry(): iceGrid = "" if TestUtil.isVC90(): iceGrid = os.path.join(TestUtil.getServiceDir(), "icegridregistry") else: iceGrid = os.path.join(TestUtil.getCppBinDir(), "icegridregistry") command = ' --nowarn ' + IceGridAdmin.registryOptions dataDir = os.path.join(testdir, "db", "registry") if not os.path.exists(dataDir): os.mkdir(dataDir) cmd = command + ' ' + TestUtil.getQtSqlOptions('IceGrid') + \ r' --Ice.ProgramName=registry' + \ r' --IceGrid.Registry.Client.Endpoints="default -p ' + str(IceGridAdmin.iceGridPort) + '" ' + \ r' --IceGrid.Registry.Data="' + dataDir + '"' driverConfig = TestUtil.DriverConfig("server") driverConfig.lang = "cpp" cmd = TestUtil.getCommandLine(iceGrid, driverConfig) + ' ' + cmd proc = TestUtil.spawn(cmd) return proc
if not len(categoryFilter) == 0: routerConfig.write("Glacier2.Filter.Category.Accept=%s\n" % categoryFilter) if not len(idFilter) == 0: routerConfig.write("Glacier2.Filter.Identity.Accept=%s\n" % idFilter) if not len(adapterFilter) == 0: routerConfig.write("Glacier2.Filter.AdapterId.Accept=%s\n" % adapterFilter) routerConfig.close() # # We need to override the test driver defaults for the Ice.Default.Host if # it is set to loopback. # routerDriver = TestUtil.DriverConfig("server") if routerDriver.host == None: routerDriver.host = "" routerDriver.overrides = commonServerOptions + routerArgs starterProc = TestUtil.startServer(router, config=routerDriver, count=2) pingProgress() if TestUtil.protocol != "ssl": serverConfig = open(os.path.join(os.getcwd(), "server.cfg"), "w") serverOptions = ' --Ice.Config="' + os.path.join( os.getcwd(), "server.cfg") + '" ' serverConfig.write("BackendAdapter.Endpoints=tcp -p 12010\n") serverConfig.close() else: serverOptions = ""
sys.stdout.flush() serverProc = TestUtil.startServer(server) print("ok") args = ' --Ice.Warn.Dispatch=0' + \ ' --Glacier2.AddConnectionContext=1' + \ ' --Glacier2.Client.Endpoints="tcp -h 127.0.0.1 -p 12347:ssl -h 127.0.0.1 -p 12348"' + \ ' --Glacier2.Server.Endpoints="tcp -h 127.0.0.1"' \ ' --Ice.Admin.Endpoints="tcp -h 127.0.0.1 -p 12349"' + \ ' --Ice.Admin.InstanceName=Glacier2' + \ ' --Glacier2.SessionManager="sessionmanager:tcp -h 127.0.0.1 -p 12350"' + \ ' --Glacier2.PermissionsVerifier="verifier:tcp -h 127.0.0.1 -p 12350"' + \ ' --Glacier2.SSLSessionManager="sslsessionmanager:tcp -h 127.0.0.1 -p 12350"' + \ ' --Glacier2.SSLPermissionsVerifier="sslverifier:tcp -h 127.0.0.1 -p 12350"' routerCfg = TestUtil.DriverConfig("server") routerCfg.protocol = "ssl" sys.stdout.write("starting router... ") sys.stdout.flush() starterProc = TestUtil.startServer(router, args, routerCfg, count = 2) print("ok") clientCfg = TestUtil.DriverConfig("client") clientCfg.protocol = "ssl" sys.stdout.write("starting client... ") sys.stdout.flush() clientProc = TestUtil.startClient(client, "", clientCfg, startReader = False) print("ok") clientProc.startReader()
path = [os.path.join(head, p) for p in path] path = [ os.path.abspath(p) for p in path if os.path.exists(os.path.join(p, "scripts", "TestUtil.py")) ] if len(path) == 0: raise RuntimeError("can't find toplevel directory!") sys.path.append(os.path.join(path[0], "scripts")) import TestUtil, IceGridAdmin name = os.path.join("IceGrid", "noRestartUpdate") node1Dir = os.path.join(os.getcwd(), "db", "node-1") if not os.path.exists(node1Dir): os.mkdir(node1Dir) else: IceGridAdmin.cleanDbDir(node1Dir) node2Dir = os.path.join(os.getcwd(), "db", "node-2") if not os.path.exists(node2Dir): os.mkdir(node2Dir) else: IceGridAdmin.cleanDbDir(node2Dir) nodeOverrideOptions = '--IceBinDir="%s" --TestDir="%s" --NodePropertiesOverride="%s Ice.ServerIdleTime=0 Ice.PrintProcessId=0 Ice.PrintAdapterReady=0"' % ( TestUtil.getCppBinDir("cpp"), os.getcwd(), TestUtil.getCommandLine("", TestUtil.DriverConfig("server")).replace( "--", "")) IceGridAdmin.iceGridTest("", nodeOverrideOptions)
sys.exit(0) name = os.path.join("IceGrid", "session") node1Dir = os.path.join(os.getcwd(), "db", "node-1") if not os.path.exists(node1Dir): os.mkdir(node1Dir) else: IceGridAdmin.cleanDbDir(node1Dir) print("Running test with default encoding...") verifier = os.path.join(os.getcwd(), TestUtil.getTestExecutable("verifier")) sys.stdout.write("starting admin permissions verifier... ") verifierProc = TestUtil.startServer(verifier, config=TestUtil.DriverConfig("server")) print("ok") IceGridAdmin.registryOptions += \ r' --Ice.Warn.Dispatch=0' + \ r' --IceGrid.Registry.DynamicRegistration' + \ r' --IceGrid.Registry.SessionFilters' + \ r' --IceGrid.Registry.AdminSessionFilters' + \ r' --IceGrid.Registry.PermissionsVerifier="ClientPermissionsVerifier"' + \ r' --IceGrid.Registry.AdminPermissionsVerifier="AdminPermissionsVerifier:tcp -p 12002"'+ \ r' --IceGrid.Registry.SSLPermissionsVerifier="SSLPermissionsVerifier"' + \ r' --IceGrid.Registry.AdminSSLPermissionsVerifier="SSLPermissionsVerifier"' bindir = TestUtil.getCppBinDir() testdir = os.getcwd() serverdir = TestUtil.getTestDirectory("server")
sys.path.append(os.path.join(path[0], "scripts")) import TestUtil router = os.path.join(TestUtil.getCppBinDir(), "glacier2router") # # Generate the crypt passwords file # TestUtil.hashPasswords(os.path.join(os.getcwd(), "passwords"), {"userid": "abc123"}) args = ' --Ice.Warn.Dispatch=0' + \ ' --Ice.Warn.Connections=0' + \ ' --Glacier2.SessionTimeout="30"' + \ ' --Glacier2.Client.Endpoints="default -p 12347"' + \ ' --Glacier2.Server.Endpoints="default"' \ ' --Ice.Admin.Endpoints="default -p 12348"' + \ ' --Ice.Admin.InstanceName=Glacier2' + \ ' --Glacier2.CryptPasswords="' + os.path.join(os.getcwd(), "passwords") + '"' sys.stdout.write("starting router... ") sys.stdout.flush() routerConfig = TestUtil.DriverConfig("server") routerConfig.lang = "cpp" starterProc = TestUtil.startServer(router, args, count=2, config=routerConfig) print("ok") TestUtil.clientServerTest(additionalClientOptions=" --shutdown") starterProc.waitTestSuccess()
sys.stdout.write("*** can't run test as root ***\n") sys.stdout.write("\n") sys.exit(0) name = os.path.join("IceGrid", "session") node1Dir = os.path.join(os.getcwd(), "db", "node-1") if not os.path.exists(node1Dir): os.mkdir(node1Dir) else: IceGridAdmin.cleanDbDir(node1Dir) print("Running test with default encoding...") sys.stdout.write("starting admin permissions verifier... ") verifierProc = TestUtil.startServer(os.path.join(os.getcwd(), "verifier"), config=TestUtil.DriverConfig("server")) print("ok") IceGridAdmin.registryOptions += \ r' --Ice.Warn.Dispatch=0' + \ r' --IceGrid.Registry.DynamicRegistration' + \ r' --IceGrid.Registry.SessionFilters' + \ r' --IceGrid.Registry.AdminSessionFilters' + \ r' --IceGrid.Registry.PermissionsVerifier="ClientPermissionsVerifier"' + \ r' --IceGrid.Registry.AdminPermissionsVerifier="AdminPermissionsVerifier:tcp -p 12002"'+ \ r' --IceGrid.Registry.SSLPermissionsVerifier="SSLPermissionsVerifier"' + \ r' --IceGrid.Registry.AdminSSLPermissionsVerifier="SSLPermissionsVerifier"' IceGridAdmin.iceGridTest("application.xml", '--IceBinDir="%s" --TestDir="%s"' % (TestUtil.getCppBinDir(), os.getcwd()), 'properties-override=\'%s\'' % IceGridAdmin.iceGridNodePropertiesOverride())