def test(demos, versions=None, log_file=None, parse=True): sys.stdin = nostdin() if demos == "selec": demos = DIR1 if demos == "hom": demos = DIR2 if demos == "all97": demos = DIR3 if demos == "all": demos = DIR4 if log_file is None: hostname = platform.node() if '.' in hostname: hostname = hostname.split('.')[0] log_file = hostname + '_log' if versions is None: versions = ['07p'] log_files = [] log = {} err = {} runner = {} for version in versions: if len(log_file) != 0: log_files.append(log_file + version) log[version] = open(log_file + version, "w") err[version] = open(log_file + version + "errors", "w") else: log[version] = None err[version] = None runner[version] = AUTOInteractiveConsole( AUTOclui.exportFunctions(log[version], err[version])) autofiles = [] for d in demos: print("Doing " + d) for version in versions: print("Version " + version) auto_dir = os.path.join(os.environ["AUTO_DIR"], "..", version) demo_dir = os.path.join(auto_dir, "demos", d) autofiles = [] if os.path.exists(os.path.join(demo_dir, "%s.auto" % d)): autofiles = ["%s.auto" % d] else: autofiles = [ dirname for dirname in os.listdir(demo_dir) if dirname[-5:] == '.auto' ] autofiles.sort() if len(autofiles) > 0: oldcwd = os.getcwd() tmpdir = os.path.join(oldcwd, 'tmp') try: shutil.rmtree(tmpdir) except OSError: pass try: os.mkdir(tmpdir) except OSError: pass os.chdir(tmpdir) AUTOclui.copydemo(d) log[version].write("Demo %s is started\n" % d) for autofile in autofiles: os.chdir(tmpdir) runner[version].auto(autofile) os.chdir(oldcwd) log[version].write("Demo %s is done\n" % d) else: runDemo.runDemo(d, verbose="yes", log=log[version], err=err[version], auto_dir=auto_dir) if len(autofiles) > 0: try: shutil.rmtree(tmpdir) except OSError: pass if len(log_file) != 0: for version in versions: runner[version].close() err[version].close() log[version].close() if parse: parse_test.parse(log_files, demos=demos)