Skip to content

Commit 92fe4df

Browse files
authored
Merge pull request #156 from wangnuannuan/jingru-test-sync_bsp
scripts: ignore overflow error
2 parents 0830b0b + f41f318 commit 92fe4df

File tree

2 files changed

+31
-24
lines changed

2 files changed

+31
-24
lines changed

example/examples.yaml

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
# core should format as <platform_name>_<platform_version>_<core_name>
1919
# extra_args: <list of extra Make arguments>
2020
# extra arguments to pass to Make when building or running the example
21+
# ignore_overflowed_error: <True|False>
22+
# if true, test result will be marked as skipped when example fails
23+
# because of overflow
2124
#
2225
examples:
2326
example.baremetal.arc_feature.udma:
@@ -69,17 +72,15 @@ examples:
6972
build_only: true
7073
platform_exclude: nsim
7174
example.baremetal.openthread.cli:
75+
ignore_overflowed_error: true
7276
tags: bootloader
7377
build_only: true
7478
platform_allow: emsk iotdk
75-
core_exlude:
76-
- emsk_23_arcem9d
7779
example.baremetal.openthread.ncp:
80+
ignore_overflowed_error: true
7881
tags: bootloader
7982
build_only: true
8083
platform_allow: emsk iotdk
81-
core_exlude:
82-
- emsk_23_arcem9d
8384
example.baremetal.secureshield.secret_normal:
8485
skip: true
8586
tags: mpu secureshield
@@ -120,14 +121,15 @@ examples:
120121
tags: blinky
121122
build_only: true
122123
example.freertos.iot.coap.coap_server:
124+
ignore_overflowed_error: true
123125
build_only: true
124126
platform_exclude: nsim
125127
example.freertos.iot.lwm2m.lwm2m_client:
128+
ignore_overflowed_error: true
126129
build_only: true
127130
platform_exclude: nsim
128-
core_exlude:
129-
- emsk_23_arcem9d
130131
example.freertos.iot.lwm2m.lwm2m_server:
132+
ignore_overflowed_error: true
131133
build_only: true
132134
platform_exclude: nsim
133135
example.freertos.kernel:
@@ -138,26 +140,26 @@ examples:
138140
platform_allow:
139141
emsk: 23
140142
example.freertos.net.httpserver:
143+
ignore_overflowed_error: true
141144
build_only: true
142145
platform_exclude: nsim
143146
example.freertos.net.ntshell:
147+
ignore_overflowed_error: true
144148
build_only: true
145149
platform_exclude: nsim
146-
core_exlude:
147-
- emsk_23_arcem9d
148150
example.freertos.sec.mbedtls.dtls.client:
151+
ignore_overflowed_error: true
149152
build_only: true
150153
platform_exclude: iotdk nsim hsdk
151154
example.freertos.sec.mbedtls.dtls.server:
155+
ignore_overflowed_error: true
152156
build_only: true
153157
platform_exclude: iotdk nsim hsdk
154158
example.freertos.sec.mbedtls.ssl.client2:
159+
ignore_overflowed_error: true
155160
build_only: true
156161
platform_exclude: iotdk nsim hsdk
157-
core_exlude:
158-
- emsk_23_arcem9d
159162
example.freertos.sec.mbedtls.ssl.server2:
163+
ignore_overflowed_error: true
160164
build_only: true
161165
platform_exclude: iotdk nsim hsdk
162-
core_exlude:
163-
- emsk_23_arcem9d

scripts/test.py

Lines changed: 17 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)