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: