_('Optional: products to configure. This option can be'
' passed several time to configure several products.'))
+CHECK_PROPERTY = "has_unit_tests"
+
def get_products_list(options, cfg, logger):
'''method that gives the product list with their informations from
configuration regarding the passed options.
'''
res = 0
for p_name_info in products_infos:
- __, p_info = p_name_info
- if ("build_dir" not in "build_dir" or
- not src.product.product_compiles(p_info)):
- continue
res_prod = check_product(p_name_info, config, logger)
if res_prod != 0:
res += 1
logger.write(header, 3)
logger.write("\n", 4, False)
logger.flush()
+
+ # Verify if the command has to be launched or not
+ ignored = False
+ if not src.get_property_in_product_cfg(p_info, CHECK_PROPERTY):
+ msg = _("The product %s is defined as not having tests. "
+ "product ignored." % p_name)
+ logger.write("%s\n" % msg, 4)
+ ignored = True
+ if "build_dir" not in p_info:
+ msg = _("No build_dir key defined in "
+ "the config file of %s: product ignored." % p_name)
+ logger.write("%s\n" % msg, 4)
+ ignored = True
+ if not src.product.product_compiles(p_info):
+ msg = _("The product %s is defined as not compiling. "
+ "product ignored." % p_name)
+ logger.write("%s\n" % msg, 4)
+ ignored = True
+
+ # Get the command to execute for script products
+ cmd_found = True
+ if src.product.product_has_script(p_info):
+ command = src.get_cfg_param(p_info, "test_build", "Not found")
+ if command == "Not found":
+ cmd_found = False
+ msg = _('WARNING: The product %s is defined as having tests. But it'
+ ' is compiled using a script and the key "test_build" is '
+ 'not defined in the definition of %s' % p_name)
+ logger.write("%s\n" % msg, 4)
+
+ if ignored or not cmd_found:
+ log_step(logger, header, "ignored")
+ logger.write("==== %(name)s %(IGNORED)s\n" %
+ { "name" : p_name ,
+ "IGNORED" : src.printcolors.printcInfo("IGNORED")},
+ 4)
+ logger.write("\n", 3, False)
+ logger.flush()
+ if not cmd_found:
+ return 1
+ return 0
# Instantiate the class that manages all the construction commands
# like cmake, check, make install, make test, environment management, etc...
res_prepare = builder.prepare()
log_res_step(logger, res_prepare)
- # Execute buildconfigure, configure if the product is autotools
- # Execute ccheck if the product is ccheck
len_end_line = 20
+ # Launch the check
log_step(logger, header, "CHECK")
res = builder.check()
log_res_step(logger, res)
##
# Runs 'make_check'.
- def check(self):
+ def check(self, command=""):
if src.architecture.is_windows():
- command = 'msbuild RUN_TESTS.vcxproj'
+ cmd = 'msbuild RUN_TESTS.vcxproj'
else :
if self.product_info.build_source=="autotools" :
- command = 'make check'
+ cmd = 'make check'
else:
- command = 'make test'
-
- self.log_command(command)
+ cmd = 'make test'
+
+ if command:
+ cmd = command
+
+ self.log_command(cmd)
- res = subprocess.call(command,
+ res = subprocess.call(cmd,
shell=True,
cwd=str(self.build_dir),
env=self.launch_environ.environ.environ,
##
# Performs a default build for this module.
- def do_default_build(self, build_conf_options="", configure_options="", show_warning=True):
+ def do_default_build(self,
+ build_conf_options="",
+ configure_options="",
+ show_warning=True):
use_autotools = False
if 'use_autotools' in self.product_info:
uc = self.product_info.use_autotools