CoreValidation: Added batch build script for IAR examples.
diff --git a/CMSIS/Utilities/buildutils/iarcmd.py b/CMSIS/Utilities/buildutils/iarcmd.py
new file mode 100644
index 0000000..dabf58f
--- /dev/null
+++ b/CMSIS/Utilities/buildutils/iarcmd.py
@@ -0,0 +1,29 @@
+#! python
+
+from buildcmd import BuildCmd
+from string import maketrans
+from datetime import datetime
+import mmap
+
+class IarCmd(BuildCmd):
+
+ def __init__(self, project, config):
+ BuildCmd.__init__(self)
+ self._project = project
+ self._config = config
+ self._log = "iar_{0}.log".format(datetime.now().strftime("%Y%m%d%H%M%S"))
+
+ def getCommand(self):
+ return "iarbuild.exe"
+
+ def getArguments(self):
+ return [ self._project, "-build", self._config ]
+
+ def isSuccess(self):
+ return self._result <= 1
+
+ def getLog(self):
+ try:
+ return open(self._log, "r")
+ except:
+ return None
diff --git a/CMSIS/Utilities/buildutils/testresult.py b/CMSIS/Utilities/buildutils/testresult.py
index 6e24d6d..98646a3 100644
--- a/CMSIS/Utilities/buildutils/testresult.py
+++ b/CMSIS/Utilities/buildutils/testresult.py
@@ -24,17 +24,28 @@
self._extractXml(log, self._xml)
self._xml.seek(0)
- report = ElementTree.parse(self._xml).getroot()
- summary = report[0].findall('summary')[0]
- self._tests = summary.find('tcnt').text
- self._executed = summary.find('exec').text
- self._passed = summary.find('pass').text
- self._failed = summary.find('fail').text
+ try:
+ report = ElementTree.parse(self._xml).getroot()
+ summary = report[0].findall('summary')[0]
+ self._tests = summary.find('tcnt').text
+ self._executed = summary.find('exec').text
+ self._passed = summary.find('pass').text
+ self._failed = summary.find('fail').text
+ self._avail = True
+ except ElementTree.ParseError as e:
+ self._avail = False
+ self._except = e
def saveXml(self, filename):
with open(filename, "w") as file:
self._xml.seek(0)
shutil.copyfileobj(self._xml, file)
+ def isAvailable(self):
+ return self._avail
+
def getSummary(self):
- return self._tests, self._executed, self._passed, self._failed
\ No newline at end of file
+ if self._avail:
+ return self._tests, self._executed, self._passed, self._failed
+ else:
+ raise self._except
\ No newline at end of file