summaryrefslogtreecommitdiff
path: root/rtemstoolkit/macros.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2017-10-24 21:35:21 +1100
committerChris Johns <chrisj@rtems.org>2017-10-24 22:21:35 +1100
commitbf58911519afb7ce2117dedadf3d76da436b2361 (patch)
treeaac7608d8153bc72e60164bd2183b8e625dc8730 /rtemstoolkit/macros.py
parent52513610668b02c2c3991c75946aa3ed2995e206 (diff)
tester: Refactor to use INI format files for BSP configurations.
- Add support for user condfigurations files with the --user-config. - Add support for a $HOME/.rtemstesterrc for a user configuration. Closes #3204.
Diffstat (limited to 'rtemstoolkit/macros.py')
-rw-r--r--rtemstoolkit/macros.py37
1 files changed, 23 insertions, 14 deletions
diff --git a/rtemstoolkit/macros.py b/rtemstoolkit/macros.py
index 31f5a7e..ed8cd96 100644
--- a/rtemstoolkit/macros.py
+++ b/rtemstoolkit/macros.py
@@ -134,18 +134,19 @@ class macros:
for f in self.files:
text += '> %s%s' % (f, os.linesep)
for map in self.macros:
- if map in self.read_maps:
- if self.read_map_locked:
- rm = 'R'
- else:
- rm = 'r'
- else:
- rm = '-'
+ rm = '-'
+ for rmap in self.read_maps:
+ if rmap[4:] == '___%s' % (map):
+ if self.read_map_locked:
+ rm = 'R[%s]' % (rmap[:4])
+ else:
+ rm = 'r[%s]' % (rmap[:4])
+ break
if map == self.write_map:
wm = 'w'
else:
wm = '-'
- text += '[%s] %s%s%s' % (map, rm, wm, os.linesep)
+ text += '[%s] %s,%s%s' % (map, wm, rm, os.linesep)
for k in sorted(self.macros[map].keys()):
d = self.macros[map][k]
text += " %s:%s '%s'%s '%s'%s" % \
@@ -250,7 +251,7 @@ class macros:
return self.macros.keys()
def get_read_maps(self):
- return [rm[5:] for rm in self.read_maps]
+ return [rm[7:] for rm in self.read_maps]
def key_filter(self, key):
if key.startswith('%{') and key[-1] is '}':
@@ -493,7 +494,7 @@ class macros:
if not self.read_map_locked:
if _map in self.macros:
if _map not in self.get_read_maps():
- rm = '%04d_%s' % (len(self.read_maps), _map)
+ rm = '%04d___%s' % (len(self.read_maps), _map)
self.read_maps = sorted(self.read_maps + [rm])
return True
return False
@@ -502,17 +503,25 @@ class macros:
if not self.read_map_locked:
if _map in self.get_read_maps():
for i in range(0, len(self.read_maps)):
- if '%04d_%s' % (i, _map) == self.read_maps[i]:
+ if '%04d___%s' % (i, _map) == self.read_maps[i]:
self.read_maps.pop(i)
return True
return False
- def set_write_map(self, map):
- if map in self.macros:
- self.write_map = map
+ def set_write_map(self, _map, add = False):
+ if _map in self.macros:
+ self.write_map = _map
+ return True
+ elif add:
+ self.write_map = _map
+ self.macros[_map] = {}
return True
return False
+ def unset_write_map(self):
+ self.write_map = 'global'
+ return True
+
def lock_read_map(self):
self.read_map_locked = True