def runTestSuite(self, node_test_suite, portal_url, log=None): config = self.testnode.config parameter_list = [] run_test_suite_path_list = glob.glob("%s/*/bin/runTestSuite" % self.slapos_controler.instance_root) if not len(run_test_suite_path_list): raise ValueError("No runTestSuite provided in installed partitions.") run_test_suite_path = run_test_suite_path_list[0] run_test_suite_revision = node_test_suite.revision # Deal with Shebang size limitation invocation_list = self.testnode._dealShebang(run_test_suite_path) invocation_list.extend( [ run_test_suite_path, "--test_suite", node_test_suite.test_suite, "--revision", node_test_suite.revision, "--test_suite_title", node_test_suite.test_suite_title, "--node_quantity", config["node_quantity"], "--master_url", portal_url, ] ) firefox_bin_list = glob.glob("%s/soft/*/parts/firefox/firefox-slapos" % config["slapos_directory"]) if len(firefox_bin_list): parameter_list.append("--firefox_bin") xvfb_bin_list = glob.glob("%s/soft/*/parts/xserver/bin/Xvfb" % config["slapos_directory"]) if len(xvfb_bin_list): parameter_list.append("--xvfb_bin") supported_paramater_set = self.testnode.process_manager.getSupportedParameterSet( run_test_suite_path, parameter_list ) if "--firefox_bin" in supported_paramater_set: invocation_list.extend(["--firefox_bin", firefox_bin_list[0]]) if "--xvfb_bin" in supported_paramater_set: invocation_list.extend(["--xvfb_bin", xvfb_bin_list[0]]) # TODO : include testnode correction ( b111682f14890bf ) if hasattr(node_test_suite, "additional_bt5_repository_id"): additional_bt5_path = os.path.join( node_test_suite.working_directory, node_test_suite.additional_bt5_repository_id ) invocation_list.extend(["--bt5_path", additional_bt5_path]) # From this point, test runner becomes responsible for updating test # result. We only do cleanup if the test runner itself is not able # to run. SlapOSControler.createFolder(node_test_suite.test_suite_directory, clean=True) self.testnode.process_manager.spawn( *invocation_list, cwd=node_test_suite.test_suite_directory, log_prefix="runTestSuite", get_output=False )
def runTestSuite(self, node_test_suite, portal_url, log=None): config = self.testnode.config parameter_list = [] slapos_controler = self._getSlapOSControler( self.testnode.working_directory) run_test_suite_path_list = sorted(glob.glob("%s/*/bin/runTestSuite" % \ slapos_controler.instance_root)) if not len(run_test_suite_path_list): raise ValueError( 'No runTestSuite provided in installed partitions.') run_test_suite_path = run_test_suite_path_list[0] run_test_suite_revision = node_test_suite.revision # Deal with Shebang size limitation invocation_list = dealShebang(run_test_suite_path) invocation_list.extend([ run_test_suite_path, '--test_suite', node_test_suite.test_suite, '--revision', node_test_suite.revision, '--test_suite_title', node_test_suite.test_suite_title, '--node_quantity', config['node_quantity'], '--master_url', portal_url ]) firefox_bin_list = glob.glob("%s/soft/*/parts/firefox/firefox-slapos" % \ config["slapos_directory"]) if len(firefox_bin_list): parameter_list.append('--firefox_bin') xvfb_bin_list = glob.glob("%s/soft/*/parts/xserver/bin/Xvfb" % \ config["slapos_directory"]) if len(xvfb_bin_list): parameter_list.append('--xvfb_bin') supported_paramater_set = self.testnode.process_manager.getSupportedParameterSet( run_test_suite_path, parameter_list) if '--firefox_bin' in supported_paramater_set: invocation_list.extend(["--firefox_bin", firefox_bin_list[0]]) if '--xvfb_bin' in supported_paramater_set: invocation_list.extend(["--xvfb_bin", xvfb_bin_list[0]]) # TODO : include testnode correction ( b111682f14890bf ) if hasattr(node_test_suite, 'additional_bt5_repository_id'): additional_bt5_path = os.path.join( node_test_suite.working_directory, node_test_suite.additional_bt5_repository_id) invocation_list.extend(["--bt5_path", additional_bt5_path]) # From this point, test runner becomes responsible for updating test # result. We only do cleanup if the test runner itself is not able # to run. SlapOSControler.createFolder(node_test_suite.test_suite_directory, clean=True) self.testnode.process_manager.spawn( *invocation_list, cwd=node_test_suite.test_suite_directory, log_prefix='runTestSuite', get_output=False)
def _checkData(self): if getattr(self, "working_directory", None) is not None: if not (self.working_directory.endswith(os.path.sep + self.reference)): self.working_directory = os.path.join(self.working_directory, self.reference) SlapOSControler.createFolder(self.working_directory) self.test_suite_directory = os.path.join(self.working_directory, "test_suite") self.custom_profile_path = os.path.join(self.working_directory, "software.cfg") if getattr(self, "vcs_repository_list", None) is not None: for vcs_repository in self.vcs_repository_list: buildout_section_id = vcs_repository.get("buildout_section_id", None) repository_id = buildout_section_id or vcs_repository.get("url").split("/")[-1].split(".")[0] repository_path = os.path.join(self.working_directory, repository_id) vcs_repository["repository_id"] = repository_id vcs_repository["repository_path"] = repository_path
def runTestSuite(self, node_test_suite, portal_url, log=None): config = self.testnode.config slapos_controler = self._getSlapOSControler(self.testnode.working_directory) run_test_suite_path_list = sorted(glob.glob("%s/*/bin/runTestSuite" % \ slapos_controler.instance_root)) if not len(run_test_suite_path_list): raise ValueError('No runTestSuite provided in installed partitions.') run_test_suite_path = run_test_suite_path_list[0] # Deal with Shebang size limitation invocation_list = dealShebang(run_test_suite_path) invocation_list += (run_test_suite_path, '--master_url', portal_url, '--revision', node_test_suite.revision, '--test_suite', node_test_suite.test_suite, '--test_suite_title', node_test_suite.test_suite_title) supported_parameter_set = set(self.testnode.process_manager .getSupportedParameterList(run_test_suite_path)) parts = os.path.dirname(os.path.dirname(run_test_suite_path)) parts += '/software_release/parts/' for option in ( ('--firefox_bin', parts + 'firefox/firefox-slapos'), ('--frontend_url', config['frontend_url']), ('--node_quantity', config['node_quantity']), ('--xvfb_bin', parts + 'xserver/bin/Xvfb'), ): if option[0] in supported_parameter_set: invocation_list += option # TODO : include testnode correction ( b111682f14890bf ) if hasattr(node_test_suite,'additional_bt5_repository_id'): additional_bt5_path = os.path.join( node_test_suite.working_directory, node_test_suite.additional_bt5_repository_id) invocation_list.extend(["--bt5_path", additional_bt5_path]) # From this point, test runner becomes responsible for updating test # result. We only do cleanup if the test runner itself is not able # to run. SlapOSControler.createFolder(node_test_suite.test_suite_directory, clean=True) self.testnode.process_manager.spawn(*invocation_list, cwd=node_test_suite.test_suite_directory, log_prefix='runTestSuite', get_output=False)
def runTestSuite(self, node_test_suite, portal_url): config = self.config parameter_list = [] run_test_suite_path_list = glob.glob("%s/*/bin/runTestSuite" % \ self.slapos_controler.instance_root) if not len(run_test_suite_path_list): raise ValueError('No runTestSuite provided in installed partitions.') run_test_suite_path = run_test_suite_path_list[0] run_test_suite_revision = node_test_suite.revision # Deal with Shebang size limitation invocation_list = self._dealShebang(run_test_suite_path) invocation_list.extend([run_test_suite_path, '--test_suite', node_test_suite.test_suite, '--revision', node_test_suite.revision, '--test_suite_title', node_test_suite.test_suite_title, '--node_quantity', config['node_quantity'], '--master_url', portal_url]) firefox_bin_list = glob.glob("%s/soft/*/parts/firefox/firefox-slapos" % \ config["slapos_directory"]) if len(firefox_bin_list): parameter_list.append('--firefox_bin') xvfb_bin_list = glob.glob("%s/soft/*/parts/xserver/bin/Xvfb" % \ config["slapos_directory"]) if len(xvfb_bin_list): parameter_list.append('--xvfb_bin') supported_paramater_set = self.process_manager.getSupportedParameterSet( run_test_suite_path, parameter_list) if '--firefox_bin' in supported_paramater_set: invocation_list.extend(["--firefox_bin", firefox_bin_list[0]]) if '--xvfb_bin' in supported_paramater_set: invocation_list.extend(["--xvfb_bin", xvfb_bin_list[0]]) bt5_path_list = config.get("bt5_path") if bt5_path_list not in ('', None,): invocation_list.extend(["--bt5_path", bt5_path_list]) # From this point, test runner becomes responsible for updating test # result. We only do cleanup if the test runner itself is not able # to run. SlapOSControler.createFolder(node_test_suite.test_suite_directory, clean=True) self.process_manager.spawn(*invocation_list, cwd=node_test_suite.test_suite_directory, log_prefix='runTestSuite', get_output=False)
def _checkData(self): if getattr(self, "working_directory", None) is not None: if not (self.working_directory.endswith(os.path.sep + self.reference)): self.working_directory = os.path.join(self.working_directory, self.reference) SlapOSControler.createFolder(self.working_directory) self.test_suite_directory = os.path.join(self.working_directory, "test_suite") self.custom_profile_path = os.path.join(self.working_directory, 'software.cfg') if getattr(self, "vcs_repository_list", None) is not None: for vcs_repository in self.vcs_repository_list: buildout_section_id = vcs_repository.get( 'buildout_section_id', None) repository_id = buildout_section_id or \ vcs_repository.get('url').split('/')[-1].split('.')[0] repository_path = os.path.join(self.working_directory, repository_id) vcs_repository['repository_id'] = repository_id vcs_repository['repository_path'] = repository_path