@@ -368,12 +368,10 @@ def get_configs(self, example):
368368 cmd .append ("BOARD=%s" % (self .name ))
369369 cmd .extend (["-C" , example , "-pn" ])
370370 try :
371- output = subprocess .check_output (cmd , stderr = subprocess .STDOUT )
372- if output :
373- self ._extract_mk_vars (output )
371+ output = subprocess .check_output (cmd , stderr = subprocess .STDOUT )
374372 except subprocess .CalledProcessError as ex :
375- logger . error ( "Fail to run command {}" . format ( cmd ))
376- sys . exit ( ex . output . decode ( "utf-8" ) )
373+ output = ex . output
374+ self . _extract_mk_vars ( output )
377375
378376 def _parse_core_props (self , version , core , tcf ):
379377 configs = dict ()
@@ -458,6 +456,7 @@ def __init__(self, testcase_root, workdir, name):
458456 self .timeout = 300
459457 self .cases = []
460458 self .tags = list ()
459+ self .ignore_overflowed_error = False
461460 self .skip = False
462461 self .extra_args = None
463462
@@ -966,13 +965,11 @@ def build(self, **kwargs):
966965 env = os .environ .copy ()
967966
968967 p = subprocess .Popen (cmd , cwd = self .build_dir , env = env , ** kwargs )
969- out , err = p .communicate ()
968+ out , errs = p .communicate ()
970969 if out :
971970 with open (os .path .join (self .build_dir , self .log ), "a" ) as log :
972971 log .write (out .decode ())
973- if p .returncode :
974- log .write (err .decode ())
975- logger .debug (err .decode ())
972+ log .write (errs .decode ())
976973 results = {}
977974 msg = "build status: %s version %s core %s %s %s" % (
978975 self .platform .name ,
@@ -987,8 +984,15 @@ def build(self, **kwargs):
987984 if not out :
988985 return None
989986 else :
990- self .instance .status = "error"
991- self .instance .reason = "Build failure"
987+ res = re .findall ("region `(REGION_ICCM|REGION_DCCM)' overflowed by" , errs .decode ())
988+ if res and self .instance .testcase .ignore_overflowed_error :
989+ logger .debug ("Test skipped due to {} Overflow" .format (res [0 ]))
990+ self .instance .status = "skipped"
991+ self .instance .reason = "{} overflow" .format (res [0 ])
992+ else :
993+ logger .debug (errs .decode ())
994+ self .instance .status = "error"
995+ self .instance .reason = "Build failure"
992996
993997 results = {
994998 "returncode" : p .returncode ,
@@ -1137,6 +1141,7 @@ def add_testcases(self, testcase_filter=[]):
11371141 tc .extra_args = tc_filter .get ("extra_args" , [])
11381142 tc_platform_exclude = tc_filter .get ("platform_exclude" , None )
11391143 tc .build_only = tc_filter .get ("build_only" , False )
1144+ tc .ignore_overflowed_error = tc_filter .get ("ignore_overflowed_error" , False )
11401145 if isinstance (tc_platform_exclude , str ):
11411146 tc .platform_exclude = [Platform (name ) for name in tc_platform_exclude .split ()]
11421147 if isinstance (tc_platform_exclude , dict ):
@@ -1154,7 +1159,7 @@ def add_testcases(self, testcase_filter=[]):
11541159 versions_allow = str (versions ).split ()
11551160 for version in versions_allow :
11561161 tc .platform_allow .append (Platform (name , version = version ))
1157- tc .source_dir = dirpath
1162+ tc .source_dir = dirpath . replace ( os . path . sep , '/' )
11581163 tc .cases .append (tc .id )
11591164 self .testcases [tc .name ] = tc
11601165 except Exception as e :
0 commit comments