[libvirt] [test-API PATCH 1/2] casecfgcheck: ignore flags defined in testcase flag

When flag defined in testcase config file like as follows the casecfgcheck still trys to use flag 'clean' or 'sleep' as the key to get required_params, optional_params variables. so it reports 'KeyError' becuase no testcases named 'clean' or 'sleep' in case_params data format. The patch ignore the check for these flags. domain:start guestname fedora16 clean domain:shutdown guestname fedora16 sleep 6 domain:destroy guestname fedora16 --- casecfgcheck.py | 8 ++++++-- 1 files changed, 6 insertions(+), 2 deletions(-) diff --git a/casecfgcheck.py b/casecfgcheck.py index a88eb74..40d7c6e 100644 --- a/casecfgcheck.py +++ b/casecfgcheck.py @@ -33,14 +33,18 @@ class CaseCfgCheck(object): error_flag = 0 passed_testcase = [] for testcase in self.activity: - case_number += 1 if testcase in passed_testcase: continue testcase_name = testcase.keys()[0] - actual_params = testcase.values()[0] + if testcase_name == 'clean' or \ + testcase_name == 'sleep': + continue + actual_params = testcase.values()[0] required_params, optional_params = self.case_params[testcase_name] + + case_number += 1 ret = self._check_params(required_params, optional_params, actual_params) if ret: error_flag = 1 -- 1.7.7.5

we use the "re.match(".+:.+", tripped_casename)" only check testcase name line, such as domain:start, we don't want it to check flag. placing it just after flags checking is right place. --- parser.py | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/parser.py b/parser.py index 18f6ccd..e569d7f 100644 --- a/parser.py +++ b/parser.py @@ -327,8 +327,6 @@ class CaseFileParser(object): tripped_caselist = casestring.strip().split() tripped_casename = tripped_caselist[0] - if not re.match(".+:.+", tripped_casename): - raise exception.CaseConfigfileError("casename line format error!") if self.debug: self.debug_print("we begin to handle the case", @@ -416,6 +414,9 @@ class CaseFileParser(object): list.append(option_case) continue + if not re.match(".+:.+", tripped_casename): + raise exception.CaseConfigfileError("%s line format error!" % tripped_casename) + for caselist in list: newdict = {} newdict[tripped_casename] = {} -- 1.7.7.5

On 04/13/2012 09:56 AM, Guannan Ren wrote:
we use the "re.match(".+:.+", tripped_casename)" only check testcase name line, such as domain:start, we don't want it to check flag. placing it just after flags checking is right place. --- parser.py | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/parser.py b/parser.py index 18f6ccd..e569d7f 100644 --- a/parser.py +++ b/parser.py @@ -327,8 +327,6 @@ class CaseFileParser(object):
tripped_caselist = casestring.strip().split() tripped_casename = tripped_caselist[0] - if not re.match(".+:.+", tripped_casename): - raise exception.CaseConfigfileError("casename line format error!")
if self.debug: self.debug_print("we begin to handle the case", @@ -416,6 +414,9 @@ class CaseFileParser(object): list.append(option_case) continue
+ if not re.match(".+:.+", tripped_casename): + raise exception.CaseConfigfileError("%s line format error!" % tripped_casename) + for caselist in list: newdict = {} newdict[tripped_casename] = {}
I think both of these are fine, ACK series. Martin

On 04/13/2012 08:59 PM, Martin Kletzander wrote:
On 04/13/2012 09:56 AM, Guannan Ren wrote:
we use the "re.match(".+:.+", tripped_casename)" only check testcase name line, such as domain:start, we don't want it to check flag. placing it just after flags checking is right place. --- parser.py | 5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/parser.py b/parser.py index 18f6ccd..e569d7f 100644 --- a/parser.py +++ b/parser.py @@ -327,8 +327,6 @@ class CaseFileParser(object):
tripped_caselist = casestring.strip().split() tripped_casename = tripped_caselist[0] - if not re.match(".+:.+", tripped_casename): - raise exception.CaseConfigfileError("casename line format error!")
if self.debug: self.debug_print("we begin to handle the case", @@ -416,6 +414,9 @@ class CaseFileParser(object): list.append(option_case) continue
+ if not re.match(".+:.+", tripped_casename): + raise exception.CaseConfigfileError("%s line format error!" % tripped_casename) + for caselist in list: newdict = {} newdict[tripped_casename] = {}
I think both of these are fine, ACK series.
Martin
Thanks, pushed Guannan Ren
participants (2)
-
Guannan Ren
-
Martin Kletzander