From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by dpdk.org (Postfix) with ESMTP id 98FBE1041 for ; Wed, 10 Jan 2018 07:02:31 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 09 Jan 2018 22:02:30 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,338,1511856000"; d="scan'208";a="165564078" Received: from dpdk-test38.sh.intel.com ([10.67.119.87]) by orsmga004.jf.intel.com with ESMTP; 09 Jan 2018 22:02:29 -0800 From: Marvin Liu To: dts@dpdk.org Cc: Marvin Liu Date: Tue, 9 Jan 2018 17:55:38 -0500 Message-Id: <1515538538-76050-1-git-send-email-yong.liu@intel.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1515356602-45882-1-git-send-email-yong.liu@intel.com> References: <1515356602-45882-1-git-send-email-yong.liu@intel.com> Subject: [dts] [PATCH v2] framework/config: utilize eval to parse configurations 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: Wed, 10 Jan 2018 06:02:32 -0000 Suite config will utilize python eval command to parse configurations. It will be easy to generate list or dictionary type of suite/case configuration. v2: by default paramater will taken as string, no need to use quotation marks Signed-off-by: Marvin Liu diff --git a/framework/config.py b/framework/config.py index 80f1dd3..f7f347a 100644 --- a/framework/config.py +++ b/framework/config.py @@ -44,7 +44,6 @@ PORTCONF = "%s/ports.cfg" % CONFIG_ROOT_PATH CRBCONF = "%s/crbs.cfg" % CONFIG_ROOT_PATH VIRTCONF = "%s/virt_global.cfg" % CONFIG_ROOT_PATH IXIACONF = "%s/ixia.cfg" % CONFIG_ROOT_PATH -SUITECONF_SAMPLE = "%s/suite_sample.cfg" % CONFIG_ROOT_PATH GLOBALCONF = "%s/global_suite.cfg" % CONFIG_ROOT_PATH @@ -142,23 +141,7 @@ class SuiteConf(UserConf): conf = dict(case_confs) for key, data_string in conf.items(): - if data_string.startswith("value_int:"): - value = data_string[len("value_int:"):] - case_cfg[key] = int(value) - elif data_string.startswith("value_hex:"): - value = data_string[len("value_hex:"):] - case_cfg[key] = int(value, 16) - elif data_string.startswith("list_int:"): - value = data_string[len("list_int:"):] - datas = value.split(',') - int_list = map(lambda x: int(x), datas) - case_cfg[key] = int_list - elif data_string.startswith("list_str:"): - value = data_string[len("list_str:"):] - str_list = value.split(',') - case_cfg[key] = str_list - else: - case_cfg[key] = data_string + case_cfg[key] = eval(data_string) return case_cfg @@ -422,6 +405,6 @@ if __name__ == '__main__': print ixiaconf.load_ixia_config() # example for suite configure file - suiteconf = SuiteConf(SUITECONF_SAMPLE) + suiteconf = SuiteConf("suite_sample") print suiteconf.load_case_config("case1") print suiteconf.load_case_config("case2") -- 1.9.3