From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by dpdk.org (Postfix) with ESMTP id 7E1CC1B1A5 for ; Mon, 8 Jan 2018 10:56:26 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga006.fm.intel.com ([10.253.24.20]) by orsmga104.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 08 Jan 2018 01:56:26 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,330,1511856000"; d="scan'208";a="193209973" Received: from dpdk-test38.sh.intel.com ([10.67.119.87]) by fmsmga006.fm.intel.com with ESMTP; 08 Jan 2018 01:56:25 -0800 From: Marvin Liu To: dts@dpdk.org Cc: Marvin Liu Date: Sun, 7 Jan 2018 21:49:19 -0500 Message-Id: <1515379769-11553-7-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1515379769-11553-1-git-send-email-yong.liu@intel.com> References: <1515379769-11553-1-git-send-email-yong.liu@intel.com> Subject: [dts] [PATCH v1 06/16] framework/dts: support multiple VMs module X-BeenThere: dts@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: test suite reviews and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 08 Jan 2018 09:56:27 -0000 1. Added required external library system path 2. Initialized global parallel lock structure 3. Init DUTs and tester with index argument Signed-off-by: Marvin Liu diff --git a/framework/dts.py b/framework/dts.py index 581d282..0b2240c 100644 --- a/framework/dts.py +++ b/framework/dts.py @@ -58,7 +58,7 @@ import logger import debugger from config import CrbsConf from checkCase import CheckCase -from utils import get_subclasses, copy_instance_attr +from utils import get_subclasses, copy_instance_attr, create_parallel_locks import sys reload(sys) sys.setdefaultencoding('UTF8') @@ -211,7 +211,7 @@ def dts_run_commands(crb, dts_commands): raise VerifyFailure("Command execution failed") -def get_project_obj(project_name, super_class, crbInst, serializer): +def get_project_obj(project_name, super_class, crbInst, serializer, dut_id): """ Load project module and return crb instance. """ @@ -221,12 +221,12 @@ def get_project_obj(project_name, super_class, crbInst, serializer): project_module = __import__(PROJECT_MODULE_PREFIX + project_name) for project_subclassname, project_subclass in get_subclasses(project_module, super_class): - project_obj = project_subclass(crbInst, serializer) + project_obj = project_subclass(crbInst, serializer, dut_id) if project_obj is None: - project_obj = super_class(crbInst, serializer) + project_obj = super_class(crbInst, serializer, dut_id) except Exception as e: log_handler.info("LOAD PROJECT MODULE INFO: " + str(e)) - project_obj = super_class(crbInst, serializer) + project_obj = super_class(crbInst, serializer, dut_id) return project_obj @@ -280,13 +280,15 @@ def dts_crbs_init(crbInsts, skip_setup, read_cache, project, base_dir, serialize testInst = copy.copy(crbInsts[0]) testInst['My IP'] = crbInsts[0]['tester IP'] - tester = get_project_obj(project, Tester, testInst, serializer) + tester = get_project_obj(project, Tester, testInst, serializer, dut_id=0) + dut_id = 0 for crbInst in crbInsts: dutInst = copy.copy(crbInst) dutInst['My IP'] = crbInst['IP'] - dutobj = get_project_obj(project, Dut, dutInst, serializer) + dutobj = get_project_obj(project, Dut, dutInst, serializer, dut_id=dut_id) duts.append(dutobj) + dut_id += 1 dts_log_execution(duts, tester, log_handler) @@ -298,7 +300,7 @@ def dts_crbs_init(crbInsts, skip_setup, read_cache, project, base_dir, serialize nic = settings.load_global_setting(settings.HOST_NIC_SETTING) for dutobj in duts: dutobj.tester = tester - dutobj.set_virttype(virttype) + dutobj.setup_virtenv(virttype) dutobj.set_speedup_options(read_cache, skip_setup) dutobj.set_directory(base_dir) # save execution nic setting @@ -463,6 +465,11 @@ def run_all(config_file, pkgName, git, patch, skip_setup, if not os.path.exists(output_dir): os.mkdir(output_dir) + # add external library + exec_file = os.path.realpath(__file__) + extra_libs_path = exec_file.replace('framework/dts.py', '') + 'extra_libs' + sys.path.insert(1, extra_libs_path) + # add python module search path sys.path.append(suite_dir) @@ -537,6 +544,9 @@ def run_all(config_file, pkgName, git, patch, skip_setup, result.dut = duts[0] + # init global lock + create_parallel_locks(len(duts)) + # init dut, tester crb duts, tester = dts_crbs_init(crbInsts, skip_setup, read_cache, project, base_dir, serializer, virttype) tester.set_re_run(re_run) -- 1.9.3