194 logging.basicConfig(stream=sys.stdout,
195 format=
'%(levelname)-8s %(message)s',
196 level=logging.DEBUG
if args.verbose
else logging.INFO)
198 topdir =
'runTrigART'
199 statusfile =
'results/{:s}-status.json'.
format(topdir)
202 if args.rerun_failed
or args.summary:
203 status_data = json.load(
open(os.path.join(topdir,statusfile)))
204 all_test_results = status_data[topdir]
210 if args.rerun_failed:
215 logging.info(
"The following %d tests will be executed: ", len(scripts))
216 for filename
in scripts:
217 logging.info(
" %s", os.path.basename(filename))
219 if len(scripts) > 5*args.maxJobs:
220 if args.maxJobs == 1:
221 logging.warning(
"You are running %d tests in sequence. This may take "
222 "a long time, consider using -j N option.", len(scripts))
224 logging.warning(
"You are running %d tests with %d parallel jobs. "
225 "This may take a long time.", len(scripts), args.maxJobs)
234 for script_path
in scripts:
235 target =
'test/' + os.path.basename(script_path)
236 os.symlink(script_path, target)
240 'export ATLAS_LOCAL_ROOT_BASE="${ATLAS_LOCAL_ROOT_BASE:-/cvmfs/atlas.cern.ch/repo/ATLASLocalRootBase}"',
241 'source "${ATLAS_LOCAL_ROOT_BASE}"/user/atlasLocalSetup.sh --quiet',
243 art_cmd =
'art.py run --run-all-tests --max-jobs={:d} {:s} . results'.
format(args.maxJobs,
'-v' if args.verbose
else '-q')
244 commands.append(art_cmd)
245 cmd =
' && '.
join(commands)
246 logging.info(
"Executing ART command: %s", art_cmd)
247 subprocess.call(cmd, shell=
True)
248 logging.info(
"ART finished, analysing the results\n")
251 if not os.path.isfile(statusfile):
252 logging.error(
"ART status.json file is missing - likely the ART runner failed!")
254 with open(statusfile,
'r')
as f:
255 status_data = json.load(f)
256 all_test_results = status_data[topdir]
257 if len(all_test_results) != len(scripts):
258 logging.warning(
"Selected %d tests but ART executed only %d. Please check why some tests did not run!")
262 if len(failed_tests) > 0: