def printPass(self): print('\t' + Colors.Green('[PASS]'))
def printSkip(self): print('\t' + Colors.Green('[SKIP]'))
def printSkip(self, name): print('%s:\r\n\t%s' % (Colors.Cyan(name), Colors.Green('[SKIP]')))
def printPass(self, name): print('%s:\r\n\t%s' % (Colors.Cyan(name), Colors.Green('[PASS]')))
def __init__(self): # adding the current path to sys.path for test import puspused sys.path.append(os.getcwd()) configFilePath = './%s' % RLTest_CONFIG_FILE_NAME if os.path.exists(configFilePath): args = [ '%s%s' % (RLTest_CONFIG_FILE_PREFIX, RLTest_CONFIG_FILE_NAME) ] + sys.argv[1:] else: args = sys.argv[1:] self.args = parser.parse_args(args=args) if self.args.version: print(Colors.Green('RLTest version {}'.format(__version__))) sys.exit(0) if self.args.interactive_debugger: if self.args.env != 'oss' and not ( self.args.env == 'oss-cluster' and Defaults.num_shards == 1) and self.args.env != 'enterprise': print( Colors.Bred( 'interactive debugger can only be used on non cluster env' )) sys.exit(1) if self.args.use_valgrind: print( Colors.Bred( 'can not use valgrind with interactive debugger')) sys.exit(1) if self.args.use_slaves: print( Colors.Bred( 'can not use slaves with interactive debugger')) sys.exit(1) self.args.no_output_catch = True self.args.stop_on_failure = True if self.args.download_enterprise_binaries: br = binaryrepo.BinaryRepository() br.download_binaries() if self.args.clear_logs: if os.path.exists(self.args.log_dir): try: shutil.rmtree(self.args.log_dir) except Exception as e: print(e, file=sys.stderr) debugger = None if self.args.debugger: if self.args.env.endswith('existing-env'): print(Colors.Bred('can not use debug with existing-env')) sys.exit(1) debuggers.set_interactive_debugger(self.args.debugger) self.args.interactive_debugger = True if self.args.use_valgrind: if self.args.env.endswith('existing-env'): print(Colors.Bred('can not use valgrind with existing-env')) sys.exit(1) if self.args.vg_options is None: self.args.vg_options = os.getenv( 'VG_OPTIONS', '--leak-check=full --errors-for-leak-kinds=definite') vg_debugger = debuggers.Valgrind( options=self.args.vg_options, suppressions=self.args.vg_suppressions, fail_on_errors=not (self.args.vg_no_fail_on_errors), leakcheck=not (self.args.vg_no_leakcheck)) if self.args.vg_no_leakcheck: vg_debugger.leakcheck = False if self.args.no_output_catch or self.args.vg_verbose: vg_debugger.verbose = True debugger = vg_debugger elif self.args.interactive_debugger: debugger = debuggers.default_interactive_debugger if self.args.env.endswith('existing-env'): # when running on existing env we always reuse it self.args.env_reuse = True # unless None, they must match in length if self.args.module_args: len_module_args = len(self.args.module_args) modules = self.args.module if type(modules) == list: if (len(modules) != len_module_args): print( Colors.Bred( 'Using `--module` multiple time implies that you specify the `--module-args` in the the same number' )) sys.exit(1) Defaults.module = fix_modules(self.args.module) Defaults.module_args = fix_modulesArgs(Defaults.module, self.args.module_args) Defaults.env = self.args.env Defaults.binary = self.args.oss_redis_path Defaults.verbose = self.args.verbose Defaults.logdir = self.args.log_dir Defaults.use_slaves = self.args.use_slaves Defaults.num_shards = self.args.shards_count Defaults.shards_ports = self.args.shards_ports.split( ',') if self.args.shards_ports is not None else None Defaults.cluster_address = self.args.cluster_address Defaults.cluster_credentials = self.args.cluster_credentials Defaults.internal_password = self.args.internal_password Defaults.proxy_binary = self.args.proxy_binary_path Defaults.re_binary = self.args.enterprise_redis_path Defaults.re_libdir = self.args.enterprise_lib_path Defaults.use_aof = self.args.use_aof Defaults.debug_pause = self.args.debug Defaults.debug_print = self.args.debug_print Defaults.no_capture_output = self.args.no_output_catch Defaults.debugger = debugger Defaults.exit_on_failure = self.args.exit_on_failure Defaults.external_addr = self.args.existing_env_addr Defaults.use_unix = self.args.unix Defaults.randomize_ports = self.args.randomize_ports Defaults.use_TLS = self.args.tls Defaults.tls_cert_file = self.args.tls_cert_file Defaults.tls_key_file = self.args.tls_key_file Defaults.tls_ca_cert_file = self.args.tls_ca_cert_file Defaults.tls_passphrase = self.args.tls_passphrase Defaults.oss_password = self.args.oss_password Defaults.cluster_node_timeout = self.args.cluster_node_timeout if Defaults.use_unix and Defaults.use_slaves: raise Exception('Cannot use unix sockets with slaves') self.tests = [] self.testsFailed = [] self.currEnv = None self.loader = TestLoader() if self.args.test: self.loader.load_spec(self.args.test) else: self.loader.scan_dir(os.getcwd()) if self.args.collect_only: self.loader.print_tests() sys.exit(0) if self.args.use_valgrind or self.args.check_exitcode: self.require_clean_exit = True else: self.require_clean_exit = False self.parallelism = self.args.parallelism