summaryrefslogtreecommitdiffstats
path: root/tester/rt/check.py
diff options
context:
space:
mode:
Diffstat (limited to 'tester/rt/check.py')
-rwxr-xr-xtester/rt/check.py42
1 files changed, 28 insertions, 14 deletions
diff --git a/tester/rt/check.py b/tester/rt/check.py
index 4746422..6c158ce 100755
--- a/tester/rt/check.py
+++ b/tester/rt/check.py
@@ -201,7 +201,7 @@ class configuration:
return []
return sorted(set([a.strip() for a in items.split(',')]))
- def load(self, name):
+ def load(self, name, variation):
if not path.exists(name):
raise error.general('config: cannot read configuration: %s' % (name))
self.name = name
@@ -241,9 +241,17 @@ class configuration:
builds = {}
builds['default'] = self._get_item('builds', 'default').split()
builds['variations'] = self._comma_list('builds', 'variations')
+ if variation is None:
+ variation = builds['default']
+ builds['variation'] = variation
+ builds['base'] = self._get_item('builds', 'standard').split()
+ builds['variations'] = self._comma_list('builds', variation)
builds['var_options'] = {}
for v in builds['variations']:
- builds['var_options'][v] = self._get_item('builds', v).split()
+ if v == 'base':
+ builds['var_options'][v] = self._get_item('builds', v).split()
+ else:
+ builds['var_options'][v] = []
self.builds = builds
def variations(self):
@@ -278,8 +286,8 @@ class configuration:
def bspopts(self, arch, bsp):
return self.archs[arch][bsp]['bspopts']
- def defaults(self):
- return self.builds['default']
+ def base(self):
+ return self.builds['base']
def variant_options(self, variant):
if variant in self.builds['var_options']:
@@ -370,7 +378,7 @@ class build:
def _build_set(self, variations):
build_set = { }
- bs = self.config.defaults()
+ bs = self.config.base()
for var in variations:
build_set[var] = bs + self.config.variant_options(var)
return build_set
@@ -455,9 +463,9 @@ class build:
if self.options['stop-on-error']:
raise error.general('Building %s failed' % (bs))
files = self._count_files(arch, bsp, bs)
- log.notice('%s: %s: warnings:%d exes:%d objs:%s libs:%d' % \
- (result, bs, warnings.get(),
- files['exes'], files['objs'], files['libs']))
+ log.notice('%s: %s: warnings:%d exes:%d objs:%s libs:%d' % \
+ (result, bs, warnings.get(),
+ files['exes'], files['objs'], files['libs']))
log.notice(' %s' % (self._error_str()))
self.results.add(result[0] == '+', arch, bsp, config_cmd, warnings.get())
finally:
@@ -548,12 +556,17 @@ def run_args(args):
argsp.add_argument('--rtems', help = 'The RTEMS source tree.', type = str)
argsp.add_argument('--build-path', help = 'Path to build in.', type = str)
argsp.add_argument('--log', help = 'Log file.', type = str)
- argsp.add_argument('--stop-on-error', help = 'Stop on an error.', action = 'store_true')
- argsp.add_argument('--no-clean', help = 'Do not clean the build output.', action = 'store_true')
- argsp.add_argument('--profiles', help = 'Build the listed profiles.', type = str, default = 'tier-1')
+ argsp.add_argument('--stop-on-error', help = 'Stop on an error.',
+ action = 'store_true')
+ argsp.add_argument('--no-clean', help = 'Do not clean the build output.',
+ action = 'store_true')
+ argsp.add_argument('--profiles', help = 'Build the listed profiles.',
+ type = str, default = 'tier-1')
+ argsp.add_argument('--build', help = 'Build variation.', type = str)
argsp.add_argument('--arch', help = 'Build the specific architecture.', type = str)
argsp.add_argument('--bsp', help = 'Build the specific BSP.', type = str)
- argsp.add_argument('--dry-run', help = 'Do not run the actual builds.', action = 'store_true')
+ argsp.add_argument('--dry-run', help = 'Do not run the actual builds.',
+ action = 'store_true')
opts = argsp.parse_args(args[1:])
if opts.log is not None:
@@ -572,14 +585,15 @@ def run_args(args):
raise error.general('BSP provided but no architecture')
config = configuration()
- config.load(config_file)
+ config.load(config_file, opts.build)
options = { 'stop-on-error' : opts.stop_on_error,
'no-clean' : opts.no_clean,
'dry-run' : opts.dry_run,
'jobs' : 8 }
- b = build(config, rtems_version(), prefix, tools, path.shell(opts.rtems), build_dir, options)
+ b = build(config, rtems_version(), prefix, tools,
+ path.shell(opts.rtems), build_dir, options)
if opts.arch is not None:
if opts.bsp is not None:
b.build_arch_bsp(opts.arch, opts.bsp)