def runExample(self, lang, extra, types): print "RoundTrip - runExample ..." if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: print "In runExample for " + self.expath + ": " + self.name + ": " + lang currPath = os.getcwd() try: super(roundtrip, self).setExampleResultDir(lang, extra) if lang == "java": pubName = "Saj_RoundTrip_Pong.jar" subName = "Saj_RoundTrip_Ping.jar" elif lang == "java5": pubName = "pong/java5_pong.jar" subName = "ping/java5_ping.jar" else: pubName = "pong" subName = "ping" with open('examples.json') as data_file: data = json.load(data_file) sub_conds_file = data[self.expath][ self.name]["log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][ self.name]["log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: super(roundtrip, self).setLogPathAndLogs(lang, extra) pubLog = os.path.join(self.pPath, 'publisher.log') subLog = os.path.join(self.pPath, 'subscriber.log') pubexe = os.path.join(self.pPath, pubName) + exSfx if os.path.isfile(pubexe): pubThread = ExeThread(self.classpath, pubLog, lang, pubexe, "", self.example_timeout * 2) else: msg = "MissingExecutable: " + pubexe subexe = os.path.join(self.pPath, subName) + exSfx if os.path.isfile(pubexe): subThread = ExeThread(self.classpath, subLog, lang, subexe, self.sub_params, self.example_timeout) else: msg = "MissingExecutable: " + subexe quitexe = os.path.join(self.pPath, subName) + exSfx if os.path.isfile(pubexe): quitThread = ExeThread(self.classpath, subLog, lang, quitexe, self.quit_params, self.example_timeout) else: msg = "MissingExecutable: " + quitexe os.chdir(self.pPath) if msg == "NONE": self.startOSPL() print "Starting pubThread for ", pubexe pubThread.start() print "Starting subThread for ", subexe subThread.start() subThread.join(self.example_timeout) print "Starting quitThread for ", quitexe quitThread.start() pubThread.join(self.example_timeout) quitThread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: super(roundtrip, self).copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" #pdb.set_trace() self.checkResults(subLog, sub_conds) self.checkResults(pubLog, pub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str( sys.exc_info()[0]) if msg != "NONE": result = "FAIL" try: self.writeResult(result, self.expath + self.name, lang, msg) except Exception as ex: print "Exception writing result", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up", str(ex) except Exception as ex: print "Unexpected exception ", str(ex) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print("C# not supported on " + self.host.name) else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: currPath = os.getcwd() print("In runExample for " + self.expath + ": " + self.name + ": " + lang) try: super(lifecycle, self).setExampleResultDir(lang, extra) with open('examples.json') as data_file: data = json.load(data_file) pubName = data[self.expath][ self.name]["executables"][lang]["pubName"] subName = data[self.expath][ self.name]["executables"][lang]["subName"] sub_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: super(lifecycle, self).setLogPathAndLogs(lang, extra) pub1Log = os.path.join(self.pPath, 'publisher1.log') pub2Log = os.path.join(self.pPath, 'publisher2.log') pub3Log = os.path.join(self.pPath, 'publisher3.log') sub1Log = os.path.join(self.pPath, 'subscriber1.log') sub2Log = os.path.join(self.pPath, 'subscriber2.log') sub3Log = os.path.join(self.pPath, 'subscriber3.log') os.chdir(self.pPath) pubexe = os.path.join(self.pPath, pubName) + exSfx if os.path.isfile(pubexe): pub1Thread = ExeThread( self.classpath, pub1Log, lang, pubexe, self.pub1_params, self.example_timeout * 2) else: msg = "MissingExecutable: " + pubexe subexe = os.path.join(self.pPath, subName) + exSfx if os.path.isfile(subexe): sub1Thread = ExeThread(self.classpath, sub1Log, lang, subexe, self.sub_params, self.example_timeout) else: msg = "MissingExecutable: " + subexe if msg == "NONE": self.startOSPL() print("Starting sub1Thread for ", subexe) sub1Thread.start() print("Starting pub1Thread for ", pubexe) pub1Thread.start() pub1Thread.join(self.example_timeout) sub1Thread.join(self.example_timeout) except Exception as ex: msg = "Exception running " + str(ex) self.stopOSPL() if msg == "NONE": pub2Thread = ExeThread(self.classpath, pub2Log, lang, pubexe, self.pub2_params, self.example_timeout * 2) sub2Thread = ExeThread(self.classpath, sub2Log, lang, subexe, self.sub_params, self.example_timeout) self.startOSPL() print("Starting sub2Thread for ", subexe) sub2Thread.start() print("Starting pub2Thread for ", pubexe) pub2Thread.start() pub2Thread.join(self.example_timeout) sub2Thread.join(self.example_timeout) self.stopOSPL() pub3Thread = ExeThread(self.classpath, pub3Log, lang, pubexe, self.pub3_params, self.example_timeout * 2) sub3Thread = ExeThread(self.classpath, sub3Log, lang, subexe, self.sub_params, self.example_timeout) self.startOSPL() print("Starting sub3Thread for ", subexe) sub3Thread.start() print("Starting pub3Thread for ", pubexe) pub3Thread.start() pub3Thread.join(self.example_timeout) sub3Thread.join(self.example_timeout) self.stopOSPL() if msg == "NONE": try: super(lifecycle, self).copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" self.checkResults(sub1Log, sub_conds) self.checkResults(sub2Log, sub_conds) self.checkResults(sub3Log, sub_conds) self.checkResults(pub1Log, pub_conds) self.checkResults(pub2Log, pub_conds) self.checkResults(pub3Log, pub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception as ex: msg = "Exception checking logs " + str(ex) if msg != "NONE": result = "FAIL" try: self.writeResult(result, self.expath + self.name, lang, msg) except Exception as ex: print("Exception checking logs ", str(ex)) if self.host.isWindows(): time.sleep(5) try: self.cleanUp() except Exception as ex: print("Exception cleaning up ", str(ex)) except Exception as ex: print("Unexpected exception ", str(ex)) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print("C# not supported on " + self.host.name) else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: print("In runExample for " + self.expath + ": " + self.name + ": " + lang + ":" + extra) currPath = os.getcwd() try: super(tutorial, self).setExampleResultDir(lang, extra) with open('examples.json') as data_file: data = json.load(data_file) msgBoardName = data[self.expath][ self.name]["executables"][lang]["msgBoardName"] chatterName = data[self.expath][ self.name]["executables"][lang]["chatterName"] userLoadName = data[self.expath][ self.name]["executables"][lang]["userLoadName"] msgboard_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["msgboard_conds"] chatter_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["chatter_conds"] msgboard_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', msgboard_conds_file) chatter_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', chatter_conds_file) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: self.setLogPathAndLogs(lang, extra) msgBoardLog = os.path.join(self.pPath, 'msgBoard.log') chatterLog = os.path.join(self.pPath, 'chatter.log') userLoadLog = os.path.join(self.pPath, 'userLoad.log') if extra == "corba" and lang == "java": ospljar = os.path.join(os.environ['OSPL_HOME'], "jar", "dcpscj.jar") classes = os.path.join(os.environ['OSPL_HOME'], "examples", self.expath, self.name, lang, extra, "classes") self.classpath = ospljar + os.pathsep + classes runLang = "cj" else: runLang = lang with open('examples.json') as data_file: data = json.load(data_file) if extra == "corba": exes = "corba_executables" else: exes = "executables" msgBoardName = data[self.expath][ self.name][exes][lang]["msgBoardName"] chatterName = data[self.expath][ self.name][exes][lang]["chatterName"] userLoadName = data[self.expath][ self.name][exes][lang]["userLoadName"] if msgBoardName != "": if self.classpath == "" and runLang is not "cj": msgBoardExe = os.path.join( self.pPath, msgBoardName) + exSfx if not os.path.isfile(msgBoardExe): msg = "MissingExecutable: " + msgBoardExe else: msgBoardExe = msgBoardName if userLoadName != "": if self.classpath == "" and runLang is not "cj": userLoadExe = os.path.join( self.pPath, userLoadName) + exSfx if not os.path.isfile(userLoadExe): msg = "MissingExecutable: " + userLoadExe else: userLoadExe = userLoadName if chatterName != "": if self.classpath == "" and runLang is not "cj": chatterExe = os.path.join( self.pPath, chatterName) + exSfx chatterquitExe = os.path.join( self.pPath, chatterName) + exSfx if not os.path.isfile(chatterExe): msg = "MissingExecutable: " + chatterExe else: chatterExe = chatterName chatterquitExe = chatterName if msg == "NONE": msgBoardThread = ExeThread( self.classpath, msgBoardLog, runLang, msgBoardExe, self.msgboard_params, self.example_timeout * 2) userLoadThread = ExeThread( self.classpath, userLoadLog, runLang, userLoadExe, "", self.example_timeout * 2) chatterThread = ExeThread( self.classpath, chatterLog, runLang, chatterExe, self.chatter_params, self.example_timeout) quitThread = ExeThread(self.classpath, chatterLog, runLang, chatterquitExe, self.quit_params, self.example_timeout) os.chdir(self.pPath) self.startOSPL() msgBoardThread.start() #Allow time for the message board to get started... time.sleep(5) userLoadThread.start() chatterThread.start() chatterThread.join(self.example_timeout) quitThread.start() msgBoardThread.join(self.example_timeout) userLoadThread.join(self.example_timeout) quitThread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print("Exception stopping OpenSplice ", str(ex)) if msg == "NONE": try: super(tutorial, self).copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" self.checkResults(msgBoardLog, msgboard_conds) self.checkResults(chatterLog, chatter_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str( sys.exc_info()[0]) if msg != "NONE": result = "FAIL" resultLang = lang if extra == "corba": if lang == "cpp": resultLang = "ccpp" elif lang == "java": resultLang = "cj" try: self.writeResult(result, self.expath + self.name, resultLang, msg) except Exception as ex: print("Exception writing result", str(ex)) try: self.cleanUp() except Exception as ex: print("Exception cleaning up", str(ex)) except Exception as ex: print("Unexpected exception ", str(ex)) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): print "RoundTrip - runExample ..." if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: print "In runExample for " + self.expath + ": " + self.name + ": " + lang currPath = os.getcwd() try: super(roundtrip, self).setExampleResultDir(lang, extra) if lang == "java": pubName = "Saj_RoundTrip_Pong.jar" subName = "Saj_RoundTrip_Ping.jar" elif lang == "java5": pubName = "pong/java5_pong.jar" subName = "ping/java5_ping.jar" else: pubName = "pong" subName = "ping" with open ('examples.json') as data_file: data = json.load(data_file) sub_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: super(roundtrip, self).setLogPathAndLogs(lang, extra) pubLog = os.path.join(self.pPath, 'publisher.log') subLog = os.path.join(self.pPath, 'subscriber.log') pubexe = os.path.join(self.pPath, pubName) + exSfx if os.path.isfile (pubexe): pubThread = ExeThread(self.classpath, pubLog, lang, pubexe, "", self.example_timeout * 2) else: msg = "MissingExecutable: " + pubexe subexe = os.path.join(self.pPath, subName) + exSfx if os.path.isfile (pubexe): subThread = ExeThread(self.classpath, subLog, lang, subexe, self.sub_params, self.example_timeout) else: msg = "MissingExecutable: " + subexe quitexe = os.path.join(self.pPath, subName) + exSfx if os.path.isfile (pubexe): quitThread = ExeThread(self.classpath, subLog, lang, quitexe, self.quit_params, self.example_timeout) else: msg = "MissingExecutable: " + quitexe os.chdir(self.pPath) if msg == "NONE": self.startOSPL() print "Starting pubThread for ", pubexe pubThread.start() print "Starting subThread for ", subexe subThread.start() subThread.join(self.example_timeout) print "Starting quitThread for ", quitexe quitThread.start() pubThread.join(self.example_timeout) quitThread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: super(roundtrip, self).copyLogs() if os.path.isfile (self.ospl_error_log): msg = "ospl-error.log found" #pdb.set_trace() self.checkResults(subLog, sub_conds) self.checkResults(pubLog, pub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str(sys.exc_info()[0]) if msg != "NONE": result = "FAIL" try: self.writeResult (result, self.expath + self.name, lang, msg) except Exception as ex: print "Exception writing result", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up", str(ex) except Exception as ex: print "Unexpected exception ", str(ex) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: currPath = os.getcwd() print "In runExample for " + self.expath + ": " + self.name + ": " + lang try: super(lifecycle, self).setExampleResultDir(lang, extra) with open ('examples.json') as data_file: data = json.load(data_file) pubName = data[self.expath][self.name]["executables"][lang]["pubName"] subName = data[self.expath][self.name]["executables"][lang]["subName"] sub_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: super(lifecycle, self).setLogPathAndLogs(lang, extra) pub1Log = os.path.join(self.pPath, 'publisher1.log') pub2Log = os.path.join(self.pPath, 'publisher2.log') pub3Log = os.path.join(self.pPath, 'publisher3.log') sub1Log = os.path.join(self.pPath, 'subscriber1.log') sub2Log = os.path.join(self.pPath, 'subscriber2.log') sub3Log = os.path.join(self.pPath, 'subscriber3.log') os.chdir(self.pPath) pubexe = os.path.join(self.pPath, pubName) + exSfx if os.path.isfile (pubexe): pub1Thread = ExeThread(self.classpath, pub1Log, lang, pubexe, self.pub1_params, self.example_timeout * 2) else: msg = "MissingExecutable: " + pubexe subexe = os.path.join(self.pPath, subName) + exSfx if os.path.isfile (subexe): sub1Thread = ExeThread(self.classpath, sub1Log, lang, subexe, self.sub_params, self.example_timeout) else: msg = "MissingExecutable: " + subexe if msg == "NONE": self.startOSPL() print "Starting sub1Thread for ", subexe sub1Thread.start() print "Starting pub1Thread for ", pubexe pub1Thread.start() pub1Thread.join(self.example_timeout) sub1Thread.join(self.example_timeout) except Exception as ex: msg = "Exception running " + str(ex) self.stopOSPL() if msg == "NONE": pub2Thread = ExeThread(self.classpath, pub2Log, lang, pubexe, self.pub2_params, self.example_timeout * 2) sub2Thread = ExeThread(self.classpath, sub2Log, lang, subexe, self.sub_params, self.example_timeout) self.startOSPL() print "Starting sub2Thread for ", subexe sub2Thread.start() print "Starting pub2Thread for ", pubexe pub2Thread.start() pub2Thread.join(self.example_timeout) sub2Thread.join(self.example_timeout) self.stopOSPL() pub3Thread = ExeThread(self.classpath, pub3Log, lang, pubexe, self.pub3_params, self.example_timeout * 2) sub3Thread = ExeThread(self.classpath, sub3Log, lang, subexe, self.sub_params, self.example_timeout) self.startOSPL() print "Starting sub3Thread for ", subexe sub3Thread.start() print "Starting pub3Thread for ", pubexe pub3Thread.start() pub3Thread.join(self.example_timeout) sub3Thread.join(self.example_timeout) self.stopOSPL() if msg == "NONE": try: super(lifecycle, self).copyLogs() if os.path.isfile (self.ospl_error_log): msg = "ospl-error.log found" self.checkResults(sub1Log, sub_conds) self.checkResults(sub2Log, sub_conds) self.checkResults(sub3Log, sub_conds) self.checkResults(pub1Log, pub_conds) self.checkResults(pub2Log, pub_conds) self.checkResults(pub3Log, pub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception as ex: msg = "Exception checking logs " + str(ex) if msg != "NONE": result = "FAIL" try: self.writeResult (result, self.expath + self.name, lang, msg) except Exception as ex: print "Exception checking logs ", str(ex) if self.host.isWindows(): time.sleep(5) try: self.cleanUp() except Exception as ex: print "Exception cleaning up ", str(ex) except Exception as ex: print "Unexpected exception ", str(ex) finally: os.chdir(currPath)
def runExample(self): print "In runExample for " + self.expath + ": " + self.name currPath = os.getcwd() try: self.exdir = "servicesdbmsconnectSQLCPPODBC" exSfx = "" if self.host.isWindows(): exSfx = ".exe" os.putenv("ODBC_LIB_NAME", "odbc32") else: os.putenv("ODBC_LIB_NAME", "odbc") msg = "NONE" result = "PASS" dsn = self.odbcMsgBoard_params[0] os.putenv("MY_DSN", dsn); os.environ["MY_DSN"]= dsn; os.putenv("OSPL_URI", self.uri) os.environ["OSPL_URI"] = self.uri try: self.convertConfig() self.setLogPathAndLogs("", "") odbcMsgBoardLog = os.path.join(self.pPath, 'odbcMsgBoard.log') odbcChatter1Log = os.path.join(self.pPath, 'odbcChatter1.log') odbcChatter2Log = os.path.join(self.pPath, 'odbcChatter2.log') odbcChatterQuitLog = os.path.join(self.pPath, 'odbcChatterQuit.log') cppMsgBoardLog = os.path.join(self.pPath, 'cppMsgBoard.log') cppChatter1Log = os.path.join(self.pPath, 'cppChatter1.log') cppChatter2Log = os.path.join(self.pPath, 'cppChatter2.log') cppChatterQuitLog = os.path.join(self.pPath, 'cppChatterQuit.log') with open ('examples.json') as data_file: data = json.load(data_file) odbcMsgBoardName = data[self.expath][self.name]["executables"]["odbc"]["msgBoardName"] odbcChatterName = data[self.expath][self.name]["executables"]["odbc"]["chatterName"] cppMsgBoardName = data[self.expath][self.name]["executables"]["cpp"]["msgBoardName"] cppChatterName = data[self.expath][self.name]["executables"]["cpp"]["chatterName"] odbcmsgboard_conds_file = data[self.expath][self.name]["log_conditions_file"]["odbcmsgboard_conds"] cppmsgboard_conds_file = data[self.expath][self.name]["log_conditions_file"]["msgboard_conds"] odbcchatter_conds_file = data[self.expath][self.name]["log_conditions_file"]["odbcchatter_conds"] chatter_conds_file = data[self.expath][self.name]["log_conditions_file"]["chatter_conds"] odbcmsgboard_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', odbcmsgboard_conds_file) odbcchatter_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', odbcchatter_conds_file) cppmsgboard_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', cppmsgboard_conds_file) cppchatter_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', chatter_conds_file) if odbcMsgBoardName != "": if self.classpath == "": odbcMsgBoardExe = os.path.join(self.pPath, odbcMsgBoardName) + exSfx if not os.path.isfile (odbcMsgBoardExe): msg = "MissingExecutable: " + odbcMsgBoardExe else: odbcMsgBoardExe = odbcMsgBoardName if odbcChatterName != "": if self.classpath == "": odbcChatterNameExe = os.path.join(self.pPath, odbcChatterName) + exSfx if not os.path.isfile (odbcChatterNameExe): msg = "MissingExecutable: " + odbcChatterNameExe else: odbcChatterNameExe = odbcChatterName cppPath = os.path.join(os.environ['OSPL_HOME'], 'examples', "dcps", "Tutorial", "cpp", "standalone") if cppMsgBoardName != "": if self.classpath == "": cppMsgBoardExe = os.path.join(cppPath, cppMsgBoardName) + exSfx if not os.path.isfile (cppMsgBoardExe): msg = "MissingExecutable: " + cppMsgBoardExe else: cppMsgBoardExe = cppMsgBoardName if cppChatterName != "": if self.classpath == "": cppChatterNameExe = os.path.join(cppPath, cppChatterName) + exSfx if not os.path.isfile (cppChatterNameExe): msg = "MissingExecutable: " + cppChatterNameExe else: cppChatterNameExe = cppChatterName if msg == "NONE": odbcMsgBoard_Thread = ExeThread(self.classpath, odbcMsgBoardLog, "", odbcMsgBoardExe, self.odbcMsgBoard_params, self.example_timeout * 2) odbcChatter1_Thread = ExeThread(self.classpath, odbcChatter1Log, "", odbcChatterNameExe, self.odbcChatter1_params, self.example_timeout) odbcChatter2_Thread = ExeThread(self.classpath, odbcChatter2Log, "", odbcChatterNameExe, self.odbcChatter2_params, self.example_timeout) cppMsgBoard_Thread = ExeThread(self.classpath, cppMsgBoardLog, "", cppMsgBoardExe, "", self.example_timeout * 2) cppChatter1_Thread = ExeThread(self.classpath, cppChatter1Log, "", cppChatterNameExe, self.cppChatter1_params, self.example_timeout) cppChatter2_Thread = ExeThread(self.classpath, cppChatter2Log, "", cppChatterNameExe, self.cppChatter2_params, self.example_timeout) odbcChatterQuit_Thread = ExeThread(self.classpath, odbcChatterQuitLog, "", odbcChatterNameExe, self.odbcChatterQuit_params, self.example_timeout) cppChatterQuit_Thread = ExeThread(self.classpath, cppChatterQuitLog, "", cppChatterNameExe, self.cppChatterQuit_params, self.example_timeout) os.chdir(self.pPath) self.startOSPL() cppMsgBoard_Thread.start() odbcMsgBoard_Thread.start() time.sleep(5) odbcChatter1_Thread.start() odbcChatter2_Thread.start() cppChatter1_Thread.start() cppChatter2_Thread.start() odbcChatter1_Thread.join(self.example_timeout) odbcChatter2_Thread.join(self.example_timeout) cppChatter1_Thread.join(self.example_timeout) cppChatter2_Thread.join(self.example_timeout) time.sleep(10) odbcChatterQuit_Thread.start() cppChatterQuit_Thread.start() odbcChatterQuit_Thread.join(self.example_timeout) cppChatterQuit_Thread.join(self.example_timeout) cppMsgBoard_Thread.join(self.example_timeout) odbcMsgBoard_Thread.join(self.example_timeout) except Exception as ex: msg = "Exception running ", str(ex) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: #Allow time for all messages to be written to log time.sleep (15) super(dbmsconnect, self).copyLogs() if os.path.isfile (self.ospl_error_log): msg = "ospl-error.log found" print "checking odbcMsgBoardLog with odbcmsgboard_conds", odbcMsgBoardLog, odbcmsgboard_conds self.checkResults(odbcMsgBoardLog, odbcmsgboard_conds) print "checking odbcChatter1Log with odbcchatter_conds", odbcChatter1Log, odbcchatter_conds self.checkResults(odbcChatter1Log, odbcchatter_conds) print "checking odbcChatter2Log with odbcchatter_conds", odbcChatter2Log, odbcchatter_conds self.checkResults(odbcChatter2Log, odbcchatter_conds) self.checkResults(cppMsgBoardLog, cppmsgboard_conds) self.checkResults(cppChatter1Log, cppchatter_conds) self.checkResults(cppChatter2Log, cppchatter_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str(sys.exc_info()[0]) logdir = os.path.join(os.environ['LOGDIR'], "examples", "run_" + os.environ['EXRUNTYPE'], self.exdir) dbmsconnLog = os.path.join(self.pPath, 'dbmsconnect.log') print "dbmsconnect.log is ", dbmsconnLog copy(dbmsconnLog, logdir) if msg != "NONE": result = "FAIL" try: self.writeResult (result, self.exdir, "", msg) except Exception as ex: print "Exception writing result", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up", str(ex) except Exception as ex: print "Unexpected exception ", str(ex) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: print "In runExample for " + self.expath + ": " + self.name + ": " + lang + ":" + extra currPath = os.getcwd() try: super(tutorial, self).setExampleResultDir(lang, extra) with open ('examples.json') as data_file: data = json.load(data_file) msgBoardName = data[self.expath][self.name]["executables"][lang]["msgBoardName"] chatterName = data[self.expath][self.name]["executables"][lang]["chatterName"] userLoadName = data[self.expath][self.name]["executables"][lang]["userLoadName"] msgboard_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["msgboard_conds"] chatter_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["chatter_conds"] msgboard_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', msgboard_conds_file) chatter_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', chatter_conds_file) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: self.setLogPathAndLogs(lang, extra) msgBoardLog = os.path.join(self.pPath, 'msgBoard.log') chatterLog = os.path.join(self.pPath, 'chatter.log') userLoadLog = os.path.join(self.pPath, 'userLoad.log') if extra == "corba" and lang == "java": ospljar = os.path.join(os.environ['OSPL_HOME'], "jar", "dcpscj.jar") classes = os.path.join(os.environ['OSPL_HOME'], "examples", self.expath, self.name, lang, extra, "classes") self.classpath = ospljar + os.pathsep + classes runLang = "cj" else: runLang = lang with open ('examples.json') as data_file: data = json.load(data_file) if extra == "corba": exes = "corba_executables" else: exes = "executables" msgBoardName = data[self.expath][self.name][exes][lang]["msgBoardName"] chatterName = data[self.expath][self.name][exes][lang]["chatterName"] userLoadName = data[self.expath][self.name][exes][lang]["userLoadName"] if msgBoardName != "": if self.classpath == "" and runLang is not "cj": msgBoardExe = os.path.join(self.pPath, msgBoardName) + exSfx if not os.path.isfile (msgBoardExe): msg = "MissingExecutable: " + msgBoardExe else: msgBoardExe = msgBoardName if userLoadName != "": if self.classpath == "" and runLang is not "cj": userLoadExe = os.path.join(self.pPath, userLoadName) + exSfx if not os.path.isfile (userLoadExe): msg = "MissingExecutable: " + userLoadExe else: userLoadExe = userLoadName if chatterName != "": if self.classpath == "" and runLang is not "cj": chatterExe = os.path.join(self.pPath, chatterName) + exSfx chatterquitExe = os.path.join(self.pPath, chatterName) + exSfx if not os.path.isfile (chatterExe): msg = "MissingExecutable: " + chatterExe else: chatterExe = chatterName chatterquitExe = chatterName if msg == "NONE": msgBoardThread = ExeThread(self.classpath, msgBoardLog, runLang, msgBoardExe, self.msgboard_params, self.example_timeout * 2) userLoadThread = ExeThread(self.classpath, userLoadLog, runLang, userLoadExe, "", self.example_timeout * 2) chatterThread = ExeThread(self.classpath, chatterLog, runLang, chatterExe, self.chatter_params, self.example_timeout) quitThread = ExeThread(self.classpath, chatterLog, runLang, chatterquitExe, self.quit_params, self.example_timeout) os.chdir(self.pPath) self.startOSPL() msgBoardThread.start() #Allow time for the message board to get started... time.sleep(5) userLoadThread.start() chatterThread.start() chatterThread.join(self.example_timeout) quitThread.start() msgBoardThread.join(self.example_timeout) userLoadThread.join(self.example_timeout) quitThread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: super(tutorial, self).copyLogs() if os.path.isfile (self.ospl_error_log): msg = "ospl-error.log found" self.checkResults(msgBoardLog, msgboard_conds) self.checkResults(chatterLog, chatter_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str(sys.exc_info()[0]) if msg != "NONE": result = "FAIL" resultLang = lang if extra == "corba": if lang == "cpp": resultLang = "ccpp" elif lang == "java": resultLang = "cj" try: self.writeResult (result, self.expath + self.name, resultLang, msg) except Exception as ex: print "Exception writing result", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up", str(ex) except Exception as ex: print "Unexpected exception ", str(ex) finally: os.chdir(currPath)
def runExample(self): print("In runExample for " + self.expath + ": " + self.name) currPath = os.getcwd() try: self.exdir = "servicesdbmsconnectSQLCPPODBC" exSfx = "" if self.host.isWindows(): exSfx = ".exe" os.putenv("ODBC_LIB_NAME", "odbc32") else: os.putenv("ODBC_LIB_NAME", "odbc") msg = "NONE" result = "PASS" os.putenv("OSPL_URI", self.uri) os.environ["OSPL_URI"] = self.uri try: self.setLogPathAndLogs("", "") odbcMsgBoardLog = os.path.join(self.pPath, 'odbcMsgBoard.log') odbcChatter1Log = os.path.join(self.pPath, 'odbcChatter1.log') odbcChatter2Log = os.path.join(self.pPath, 'odbcChatter2.log') odbcChatterQuitLog = os.path.join(self.pPath, 'odbcChatterQuit.log') cppMsgBoardLog = os.path.join(self.pPath, 'cppMsgBoard.log') cppChatter1Log = os.path.join(self.pPath, 'cppChatter1.log') cppChatter2Log = os.path.join(self.pPath, 'cppChatter2.log') cppChatterQuitLog = os.path.join(self.pPath, 'cppChatterQuit.log') with open('examples.json') as data_file: data = json.load(data_file) odbcMsgBoardName = data[self.expath][ self.name]["executables"]["odbc"]["msgBoardName"] odbcChatterName = data[self.expath][ self.name]["executables"]["odbc"]["chatterName"] cppMsgBoardName = data[self.expath][ self.name]["executables"]["cpp"]["msgBoardName"] cppChatterName = data[self.expath][ self.name]["executables"]["cpp"]["chatterName"] odbcmsgboard_conds_file = data[self.expath][ self.name]["log_conditions_file"]["odbcmsgboard_conds"] cppmsgboard_conds_file = data[self.expath][ self.name]["log_conditions_file"]["msgboard_conds"] odbcchatter_conds_file = data[self.expath][ self.name]["log_conditions_file"]["odbcchatter_conds"] chatter_conds_file = data[self.expath][ self.name]["log_conditions_file"]["chatter_conds"] odbcmsgboard_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', odbcmsgboard_conds_file) odbcchatter_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', odbcchatter_conds_file) cppmsgboard_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', cppmsgboard_conds_file) cppchatter_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', chatter_conds_file) if odbcMsgBoardName != "": if self.classpath == "": odbcMsgBoardExe = os.path.join( self.pPath, odbcMsgBoardName) + exSfx if not os.path.isfile(odbcMsgBoardExe): msg = "MissingExecutable: " + odbcMsgBoardExe else: odbcMsgBoardExe = odbcMsgBoardName if odbcChatterName != "": if self.classpath == "": odbcChatterNameExe = os.path.join( self.pPath, odbcChatterName) + exSfx if not os.path.isfile(odbcChatterNameExe): msg = "MissingExecutable: " + odbcChatterNameExe else: odbcChatterNameExe = odbcChatterName cppPath = os.path.join(os.environ['OSPL_HOME'], 'examples', "dcps", "Tutorial", "cpp", "standalone") if cppMsgBoardName != "": if self.classpath == "": cppMsgBoardExe = os.path.join(cppPath, cppMsgBoardName) + exSfx if not os.path.isfile(cppMsgBoardExe): msg = "MissingExecutable: " + cppMsgBoardExe else: cppMsgBoardExe = cppMsgBoardName if cppChatterName != "": if self.classpath == "": cppChatterNameExe = os.path.join( cppPath, cppChatterName) + exSfx if not os.path.isfile(cppChatterNameExe): msg = "MissingExecutable: " + cppChatterNameExe else: cppChatterNameExe = cppChatterName if msg == "NONE": odbcMsgBoard_Thread = ExeThread(self.classpath, odbcMsgBoardLog, "", odbcMsgBoardExe, self.odbcMsgBoard_params, self.example_timeout * 2) odbcChatter1_Thread = ExeThread(self.classpath, odbcChatter1Log, "", odbcChatterNameExe, self.odbcChatter1_params, self.example_timeout) odbcChatter2_Thread = ExeThread(self.classpath, odbcChatter2Log, "", odbcChatterNameExe, self.odbcChatter2_params, self.example_timeout) cppMsgBoard_Thread = ExeThread(self.classpath, cppMsgBoardLog, "", cppMsgBoardExe, "", self.example_timeout * 2) cppChatter1_Thread = ExeThread(self.classpath, cppChatter1Log, "", cppChatterNameExe, self.cppChatter1_params, self.example_timeout) cppChatter2_Thread = ExeThread(self.classpath, cppChatter2Log, "", cppChatterNameExe, self.cppChatter2_params, self.example_timeout) odbcChatterQuit_Thread = ExeThread( self.classpath, odbcChatterQuitLog, "", odbcChatterNameExe, self.odbcChatterQuit_params, self.example_timeout) cppChatterQuit_Thread = ExeThread( self.classpath, cppChatterQuitLog, "", cppChatterNameExe, self.cppChatterQuit_params, self.example_timeout) os.chdir(self.pPath) self.startOSPL() cppMsgBoard_Thread.start() odbcMsgBoard_Thread.start() time.sleep(5) odbcChatter1_Thread.start() odbcChatter2_Thread.start() cppChatter1_Thread.start() cppChatter2_Thread.start() odbcChatter1_Thread.join(self.example_timeout) odbcChatter2_Thread.join(self.example_timeout) cppChatter1_Thread.join(self.example_timeout) cppChatter2_Thread.join(self.example_timeout) time.sleep(10) odbcChatterQuit_Thread.start() cppChatterQuit_Thread.start() odbcChatterQuit_Thread.join(self.example_timeout) cppChatterQuit_Thread.join(self.example_timeout) cppMsgBoard_Thread.join(self.example_timeout) odbcMsgBoard_Thread.join(self.example_timeout) except Exception as ex: msg = "Exception running ", str(ex) try: self.stopOSPL() except Exception as ex: print("Exception stopping OpenSplice ", str(ex)) if msg == "NONE": try: #Allow time for all messages to be written to log time.sleep(15) super(dbmsconnect, self).copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" print("checking odbcMsgBoardLog with odbcmsgboard_conds", odbcMsgBoardLog, odbcmsgboard_conds) self.checkResults(odbcMsgBoardLog, odbcmsgboard_conds) print("checking odbcChatter1Log with odbcchatter_conds", odbcChatter1Log, odbcchatter_conds) self.checkResults(odbcChatter1Log, odbcchatter_conds) print("checking odbcChatter2Log with odbcchatter_conds", odbcChatter2Log, odbcchatter_conds) self.checkResults(odbcChatter2Log, odbcchatter_conds) self.checkResults(cppMsgBoardLog, cppmsgboard_conds) self.checkResults(cppChatter1Log, cppchatter_conds) self.checkResults(cppChatter2Log, cppchatter_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str(sys.exc_info()[0]) logdir = os.path.join(os.environ['LOGDIR'], "examples", "run_" + os.environ['EXRUNTYPE'], self.exdir) dbmsconnLog = os.path.join(self.pPath, 'dbmsconnect.log') print("dbmsconnect.log is ", dbmsconnLog) copy(dbmsconnLog, logdir) if msg != "NONE": result = "FAIL" try: self.writeResult(result, self.exdir, "", msg) except Exception as ex: print("Exception writing result", str(ex)) try: self.cleanUp() except Exception as ex: print("Exception cleaning up", str(ex)) except Exception as ex: print("Unexpected exception ", str(ex)) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: print "In runExample for " + self.expath + ": " + self.name + ": " + lang + ":" + extra currPath = os.getcwd() try: super(durability, self).setExampleResultDir(lang, extra) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" os.putenv("OSPL_URI", self.uri) os.environ["OSPL_URI"] = self.uri try: self.setLogPathAndLogs(lang, extra) pub1Log = os.path.join(self.pPath, 'publisher1.log') pub2Log = os.path.join(self.pPath, 'publisher2.log') pub3Log = os.path.join(self.pPath, 'publisher3.log') transSub1Log = os.path.join(self.pPath, 'trans_subscriber1.log') transSub2Log = os.path.join(self.pPath, 'trans_subscriber2.log') transSub3Log = os.path.join(self.pPath, 'trans_subscriber3.log') persSub1Log = os.path.join(self.pPath, 'pers_subscriber1.log') persSub2Log = os.path.join(self.pPath, 'pers_subscriber2.log') try: tmpDir = os.path.join(self.pPath, "tmp") if os.path.isdir(tmpDir): shutil.rmtree (tmpDir) except: print "Failed to remove", tmpDir with open ('examples.json') as data_file: data = json.load(data_file) pubName = data[self.expath][self.name]["executables"][lang]["pubName"] subName = data[self.expath][self.name]["executables"][lang]["subName"] sub_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][self.name]["log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) if pubName != "": if self.classpath == "": pubExe = os.path.join(self.pPath, pubName) + exSfx if not os.path.isfile (pubExe): msg = "MissingExecutable: " + pubExe else: pubExe = pubName if subName != "": if self.classpath == "": subExe = os.path.join(self.pPath, subName) + exSfx if not os.path.isfile (subExe): msg = "MissingExecutable: " + subExe else: pubExe = subName if msg == "NONE": transSub1_Thread = ExeThread(self.classpath, transSub1Log, lang, subExe, self.transSub_params, self.example_timeout * 2) transSub2_Thread = ExeThread(self.classpath, transSub2Log, lang, subExe, self.transSub_params, self.example_timeout * 2) transSub3_Thread = ExeThread(self.classpath, transSub3Log, lang, subExe, self.transSub_params, self.example_timeout * 2) persSub1_Thread = ExeThread(self.classpath, persSub1Log, lang, subExe, self.persSub_params, self.example_timeout * 2) persSub2_Thread = ExeThread(self.classpath, persSub2Log, lang, subExe, self.persSub_params, self.example_timeout * 2) pub1Thread = ExeThread(self.classpath, pub1Log, lang, pubExe, self.pub1_params, self.example_timeout * 2) pub2Thread = ExeThread(self.classpath, pub2Log, lang, pubExe, self.pub2_params, self.example_timeout * 2) pub3Thread = ExeThread(self.classpath, pub3Log, lang, pubExe, self.pub3_params, self.example_timeout * 2) os.chdir(self.pPath) self.startOSPL() transSub1_Thread.start() pub1Thread.start() pub1Thread.join(self.example_timeout) transSub1_Thread.join(self.example_timeout) self.stopOSPL() self.startOSPL() transSub2_Thread.start() pub2Thread.start() time.sleep(2) transSub3_Thread.start() pub2Thread.join(self.example_timeout) transSub2_Thread.join(self.example_timeout) transSub3_Thread.join(self.example_timeout) self.stopOSPL() self.startOSPL() persSub1_Thread.start() pub3Thread.start() pub3Thread.join(self.example_timeout) persSub1_Thread.join(self.example_timeout) self.stopOSPL() self.startOSPL() persSub2_Thread.start() persSub2_Thread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: time.sleep (5) super(durability, self).copyLogs() if os.path.isfile (self.ospl_error_log): msg = "ospl-error.log found" # the java versions of the Durability example do not write anything # to the publisher output log - so only check the publisher log if # the language is not a java language if not "java" in lang: self.checkResults(pub1Log, pub_conds) self.checkResults(pub2Log, pub_conds) self.checkResults(pub3Log, pub_conds) self.checkResults(transSub1Log, sub_conds) self.checkResults(transSub2Log, sub_conds) self.checkResults(transSub3Log, sub_conds) self.checkResults(persSub1Log, sub_conds) self.checkResults(persSub2Log, sub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str(sys.exc_info()[0]) if msg != "NONE": result = "FAIL" try: self.writeResult (result, self.expath + self.name, lang, msg) except Exception as ex: print "Exception writing result ", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up ", str(ex) except Exception as ex: print "Unexpected exception", str(ex) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: print "In runExample for " + self.expath + ": " + self.name + ": " + lang + ":" + extra currPath = os.getcwd() try: super(durability, self).setExampleResultDir(lang, extra) exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" os.putenv("OSPL_URI", self.uri) os.environ["OSPL_URI"] = self.uri try: self.setLogPathAndLogs(lang, extra) pub1Log = os.path.join(self.pPath, 'publisher1.log') pub2Log = os.path.join(self.pPath, 'publisher2.log') pub3Log = os.path.join(self.pPath, 'publisher3.log') transSub1Log = os.path.join( self.pPath, 'trans_subscriber1.log') transSub2Log = os.path.join( self.pPath, 'trans_subscriber2.log') transSub3Log = os.path.join( self.pPath, 'trans_subscriber3.log') persSub1Log = os.path.join(self.pPath, 'pers_subscriber1.log') persSub2Log = os.path.join(self.pPath, 'pers_subscriber2.log') try: tmpDir = os.path.join(self.pPath, "tmp") if os.path.isdir(tmpDir): shutil.rmtree(tmpDir) except: print "Failed to remove", tmpDir with open('examples.json') as data_file: data = json.load(data_file) pubName = data[self.expath][ self.name]["executables"][lang]["pubName"] subName = data[self.expath][ self.name]["executables"][lang]["subName"] sub_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) if pubName != "": if self.classpath == "": pubExe = os.path.join(self.pPath, pubName) + exSfx if not os.path.isfile(pubExe): msg = "MissingExecutable: " + pubExe else: pubExe = pubName if subName != "": if self.classpath == "": subExe = os.path.join(self.pPath, subName) + exSfx if not os.path.isfile(subExe): msg = "MissingExecutable: " + subExe else: pubExe = subName if msg == "NONE": transSub1_Thread = ExeThread( self.classpath, transSub1Log, lang, subExe, self.transSub_params, self.example_timeout * 2) transSub2_Thread = ExeThread( self.classpath, transSub2Log, lang, subExe, self.transSub_params, self.example_timeout * 2) transSub3_Thread = ExeThread( self.classpath, transSub3Log, lang, subExe, self.transSub_params, self.example_timeout * 2) persSub1_Thread = ExeThread( self.classpath, persSub1Log, lang, subExe, self.persSub_params, self.example_timeout * 2) persSub2_Thread = ExeThread( self.classpath, persSub2Log, lang, subExe, self.persSub_params, self.example_timeout * 2) pub1Thread = ExeThread( self.classpath, pub1Log, lang, pubExe, self.pub1_params, self.example_timeout * 2) pub2Thread = ExeThread( self.classpath, pub2Log, lang, pubExe, self.pub2_params, self.example_timeout * 2) pub3Thread = ExeThread( self.classpath, pub3Log, lang, pubExe, self.pub3_params, self.example_timeout * 2) os.chdir(self.pPath) self.startOSPL() transSub1_Thread.start() pub1Thread.start() pub1Thread.join(self.example_timeout) transSub1_Thread.join(self.example_timeout) self.stopOSPL() self.startOSPL() transSub2_Thread.start() pub2Thread.start() time.sleep(2) transSub3_Thread.start() pub2Thread.join(self.example_timeout) transSub2_Thread.join(self.example_timeout) transSub3_Thread.join(self.example_timeout) self.stopOSPL() self.startOSPL() persSub1_Thread.start() pub3Thread.start() pub3Thread.join(self.example_timeout) persSub1_Thread.join(self.example_timeout) self.stopOSPL() self.startOSPL() persSub2_Thread.start() persSub2_Thread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: time.sleep(5) super(durability, self).copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" # the java versions of the Durability example do not write anything # to the publisher output log - so only check the publisher log if # the language is not a java language if not "java" in lang: self.checkResults(pub1Log, pub_conds) self.checkResults(pub2Log, pub_conds) self.checkResults(pub3Log, pub_conds) self.checkResults(transSub1Log, sub_conds) self.checkResults(transSub2Log, sub_conds) self.checkResults(transSub3Log, sub_conds) self.checkResults(persSub1Log, sub_conds) self.checkResults(persSub2Log, sub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str( sys.exc_info()[0]) if msg != "NONE": result = "FAIL" try: self.writeResult(result, self.expath + self.name, lang, msg) except Exception as ex: print "Exception writing result ", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up ", str(ex) except Exception as ex: print "Unexpected exception", str(ex) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): print("runExample ", lang, extra, types) if lang == "cs" and not self.host.isWindows(): print("C# not supported on " + self.host.name) else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: currPath = os.getcwd() if lang == "cs": ping_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', 'ping_cs_conditions.yaml') else: ping_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', 'ping_conditions.yaml') pong_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', 'pong_conds.yaml') try: super(pingpong, self).setExampleResultDir(lang, extra) msg = "NONE" result = "PASS" exSfx = "" isJava = False if lang == "java" or lang == "java5": isJava = True if self.host.isWindows() and not isJava: exSfx = ".exe" try: self.setLogPathAndLogs(lang, extra) pingLog = os.path.join(self.pPath, 'ping.log') pongLog = os.path.join(self.pPath, 'pong.log') with open('examples.json') as data_file: data = json.load(data_file) os.chdir(self.pPath) if extra == "corba" and isJava: if lang == "java": runLang = "cj" corbaJar = "dcpscj.jar" else: runLang = "cj5" corbaJar = "dcpscj5.jar" ospljar = os.path.join(os.environ['OSPL_HOME'], "jar", corbaJar) classes = os.path.join(os.environ['OSPL_HOME'], "examples", self.expath, self.name, lang, extra, "classes") self.classpath = ospljar + os.pathsep + classes else: runLang = lang print("runLang is ", runLang) if extra == "corba": exes = "corba_executables" else: exes = "executables" pongName = data[self.expath][ self.name][exes][lang]["pubName"] pingName = data[self.expath][ self.name][exes][lang]["subName"] if pongName != "": if self.classpath == "" and not isJava: pongExe = os.path.join( self.pPath, pongName) + exSfx if not os.path.isfile(pongExe): msg = "MissingExecutable: " + pongExe else: pongExe = pongName if pingName != "": if self.classpath == "" and not isJava: pingExe = os.path.join( self.pPath, pingName) + exSfx if not os.path.isfile(pingExe): msg = "MissingExecutable: " + pingExe else: pingExe = pingName if msg == "NONE": self.startOSPL() print("Going to start pong thread") pongThread = ExeThread(self.classpath, pongLog, runLang, pongExe, self.partitions, self.pongTimeout) pongThread.start() except Exception as ex: msg = "Failure running PingPong: pong " + str(ex) if msg == "NONE": try: if types == "all": runTypes = self.types else: runTypes = types for t in runTypes: print("Running ping with", t) pingArgs = [ self.BLOCKSIZE, self.BLOCKCOUNT, t ] pingArgs.extend(self.partitions) pingThread = ExeThread( self.classpath, pingLog, runLang, pingExe, pingArgs, self.pingTimeout) pingThread.start() pingThread.join(self.pingTimeout) # Allow time for output to be written to log time.sleep(2) except Exception as ex: msg = "Failure running PingPong: ping " + str( ex) if msg == "NONE": try: pingQuitThread = ExeThread( self.classpath, pingLog, runLang, pingExe, self.pingQuitArgs, self.pingTimeout) pingQuitThread.start() pingQuitThread.join(self.pingTimeout) pongThread.join(self.pongTimeout) except: msg = "Failure running PingPong: ping quit " + str( sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print("Exception stopping OpenSplice ", str(ex)) try: self.copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" self.checkResults(pingLog, ping_conds) self.checkResults(pongLog, pong_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "Ignore excess messages" in reason: msg = "LogCheckFail: \"Ignore excess messages\" in run.log" elif "PING_min triggered, but no data available" in reason: msg = "LogCheckFail: \"PING_min triggered\" in run.log" elif "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception as ex: msg = "Exception: " + str(ex) if msg != "NONE": result = "FAIL" resultLang = lang if extra == "corba": if lang == "cpp": resultLang = "ccpp" elif lang == "java": resultLang = "cj" elif lang == "java5": resultLang = "cj5" try: print("WRiting result for ", self.name + " " + resultLang) self.writeResult(result, self.expath + self.name, resultLang, msg) except Exception as ex: print("Exception writing result", str(ex)) try: self.cleanUp() except Exception as ex: print("Exception cleaning up", str(ex)) except Exception as ex: print("Unexpected exception", str(ex)) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): print "runExample ", lang, extra, types if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: if extra == "all": self.runExampleAllExtra(lang, extra, types) else: currPath = os.getcwd() ping_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', 'ping_conditions.yaml') pong_conds = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'yaml', 'pong_conds.yaml') try: super(pingpong, self).setExampleResultDir(lang, extra) msg = "NONE" result = "PASS" exSfx = "" isJava = False if lang == "java" or lang == "java5": isJava = True if self.host.isWindows() and not isJava: exSfx = ".exe" try: self.setLogPathAndLogs(lang, extra) pingLog = os.path.join(self.pPath, 'ping.log') pongLog = os.path.join(self.pPath, 'pong.log') with open ('examples.json') as data_file: data = json.load(data_file) os.chdir(self.pPath) if extra == "corba" and isJava: if lang == "java": runLang = "cj" corbaJar = "dcpscj.jar" ospljar = os.path.join(os.environ['OSPL_HOME'], "jar", corbaJar) classes = os.path.join(os.environ['OSPL_HOME'], "examples", self.expath, self.name, lang, extra, "classes") self.classpath = ospljar + os.pathsep + classes else: runLang = lang print "runLang is ", runLang if extra == "corba": exes = "corba_executables" if lang == "java5": exes = "executables" else: exes = "executables" pongName = data[self.expath][self.name][exes][lang]["pubName"] pingName = data[self.expath][self.name][exes][lang]["subName"] if pongName != "": if self.classpath == "" and not isJava: pongExe = os.path.join(self.pPath, pongName) + exSfx if not os.path.isfile (pongExe): msg = "MissingExecutable: " + pongExe else: pongExe = pongName if pingName != "": if self.classpath == "" and not isJava: pingExe = os.path.join(self.pPath, pingName) + exSfx if not os.path.isfile (pingExe): msg = "MissingExecutable: " + pingExe else: pingExe = pingName if msg == "NONE": self.startOSPL() print "Going to start pong thread" pongThread = ExeThread(self.classpath, pongLog, runLang, pongExe, self.partitions, self.pongTimeout) pongThread.start() except Exception as ex: msg = "Failure running PingPong: pong " + str(ex) if msg == "NONE": try: if types == "all": runTypes = self.types else: runTypes = types for t in runTypes: print "Running ping with", t pingArgs = [self.BLOCKSIZE, self.BLOCKCOUNT, t] pingArgs.extend(self.partitions) pingThread = ExeThread(self.classpath, pingLog, runLang, pingExe, pingArgs, self.pingTimeout) pingThread.start() pingThread.join(self.pingTimeout) # Allow time for output to be written to log time.sleep(5) except Exception as ex: msg = "Failure running PingPong: ping " + str(ex) if msg == "NONE": try: pingQuitThread = ExeThread(self.classpath, pingLog, runLang, pingExe, self.pingQuitArgs, self.pingTimeout) pingQuitThread.start() pingQuitThread.join(self.pingTimeout) pongThread.join(self.pongTimeout) except: msg = "Failure running PingPong: ping quit " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) try: self.copyLogs() if os.path.isfile (self.ospl_error_log): msg = "ospl-error.log found" self.checkResults(pingLog, ping_conds) self.blockCheck (pingLog) self.checkResults(pongLog, pong_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: reason = str(lf) if "Ignore excess messages" in reason: msg = "LogCheckFail: \"Ignore excess messages\" in run.log" elif "PING_min triggered, but no data available" in reason: msg = "LogCheckFail: \"PING_min triggered\" in run.log" elif "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str (lf) except Exception as ex: msg = "Exception: " + str (ex) if msg != "NONE": result = "FAIL" resultLang = lang if extra == "corba": if lang == "cpp": resultLang = "ccpp" elif lang == "java": resultLang = "cj" try: print "WRiting result for ", self.name + " " + resultLang self.writeResult (result, self.expath + self.name, resultLang, msg) except Exception as ex: print "Exception writing result", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up", str(ex) except Exception as ex: print "Unexpected exception", str(ex) finally: os.chdir(currPath)
def runExample(self, lang, extra, types): if lang == "cs" and not self.host.isWindows(): print "C# not supported on " + self.host.name else: if lang == "all": self.runExampleAll(extra) else: currPath = os.getcwd() try: self.setExampleResultDir(lang, extra) with open('examples.json') as data_file: data = json.load(data_file) pubName = data[self.expath][ self.name]["executables"][lang]["pubName"] pubParams = data[self.expath][ self.name]["params"]["pub_params"] subName = data[self.expath][ self.name]["executables"][lang]["subName"] subParams = data[self.expath][ self.name]["params"]["sub_params"] sub2Name = data[self.expath][ self.name]["executables"][lang]["sub2Name"] sub2Params = data[self.expath][ self.name]["params"]["sub2_params"] exSfx = "" if self.host.isWindows() and not "java" in lang: exSfx = ".exe" msg = "NONE" result = "PASS" try: super(rmihelloworld, self).setLogPathAndLogs(lang, extra) pub1Log = os.path.join(self.pPath, 'publisher1.log') pub2Log = os.path.join(self.pPath, 'publisher2.log') sub1Log = os.path.join(self.pPath, 'subscriber1.log') sub2Log = os.path.join(self.pPath, 'subscriber2.log') sub_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["sub_conds"] pub_conds_file = data[self.expath][self.name][ "log_conditions_file"][lang]["pub_conds"] sub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', sub_conds_file) pub_conds = os.path.join( os.path.dirname(os.path.realpath(__file__)), 'yaml', pub_conds_file) os.chdir(self.pPath) if self.classpath == "": pubexe = os.path.join(self.pPath, pubName) + exSfx if not os.path.isfile(pubexe): msg = "MissingExecutable: " + pubexe else: pubexe = pubName pubThread = ExeThread(self.classpath, pub1Log, lang, pubexe, "", self.example_timeout) pub2Thread = ExeThread(self.classpath, pub2Log, lang, pubexe, "", self.example_timeout) if self.classpath == "": subexe = os.path.join(self.pPath, subName) + exSfx if not os.path.isfile(subexe): msg = "MissingExecutable: " + subexe sub2exe = os.path.join(self.pPath, sub2Name) + exSfx if not os.path.isfile(sub2exe): msg = "MissingExecutable: " + sub2exe else: subexe = subName sub2exe = sub2Name subThread = ExeThread(self.classpath, sub1Log, lang, subexe, "", self.example_timeout) sub2Thread = ExeThread(self.classpath, sub2Log, lang, sub2exe, "", self.example_timeout) self.startOSPL() pubThread.start() time.sleep(1) subThread.start() pubThread.join(self.example_timeout) subThread.join(self.example_timeout) pub2Thread.start() time.sleep(1) sub2Thread.start() pub2Thread.join(self.example_timeout) sub2Thread.join(self.example_timeout) except Exception: msg = "Exception running " + str(sys.exc_info()[0]) try: self.stopOSPL() except Exception as ex: print "Exception stopping OpenSplice ", str(ex) if msg == "NONE": try: super(rmihelloworld, self).copyLogs() if os.path.isfile(self.ospl_error_log): msg = "ospl-error.log found" #self.checkResults(sub1Log, sub_conds) #self.checkResults(sub2Log, sub_conds) #self.checkResults(pub1Log, pub_conds) #self.checkResults(pub2Log, pub_conds) self.checkOSPLInfoLog(self.ospl_info_log) except LogCheckFail as lf: if "OpenSpliceDDS Warnings" in reason: msg = "LogCheckFail: OpenSpliceDDS Warnings in ospl-info.log" else: msg = "LogCheckFail: " + str(lf) except Exception: msg = "Exception checking logs " + str( sys.exc_info()[0]) if msg != "NONE": result = "FAIL" try: self.writeResult(result, self.expath + self.name, lang, msg) except Exception as ex: print "Exception writing result", str(ex) try: self.cleanUp() except Exception as ex: print "Exception cleaning up", str(ex) except Exception as ex: print "Unexpected exception", str(ex) finally: os.chdir(currPath)