Example #1
0
def process_result(index, _input_data, output_data):
    """
    This is a callback function that Processes the result of a test.
    @ In, index, int, Index into functions list.
    @ In, _input_data, ignored, the input data passed to the function
    @ In, output_data, Tester.TestResult the output data passed to the function
    @ Out, None
  """
    group = output_data.group
    process_test_name = test_name_list[index]
    if group == Tester.group_success:
        results["pass"] += 1
        for postreq in function_postreq.get(process_test_name, []):
            if postreq in name_to_id:
                job_id = name_to_id[postreq]
                print("Enabling", postreq, job_id)
                run_pool.enable_job(job_id)
        okaycolor = Colors.okay
    elif group == Tester.group_skip:
        results["skipped"] += 1
        print(output_data.message)
        okaycolor = Colors.skip
    else:
        results["fail"] += 1
        failed_list.append(
            Tester.get_group_name(group) + " " + process_test_name)
        print("Output of'" + process_test_name + "':")
        print(output_data.output)
        print(output_data.message)
        okaycolor = Colors.fail
    number_done = sum(results.values())
    if results["fail"] > 0:
        done = "{0}F{1}".format(number_done, results["fail"])
    else:
        done = number_done
    print(' '.join([
        "({done}/{togo})", "{statcolor}{status:7s}{normcolor}"
        "({timecolor}{time}{normcolor})"
        "{namecolor}{test}{normcolor}"
    ]).format(done=done,
              togo=len(function_list),
              statcolor=okaycolor,
              normcolor=Colors.norm,
              namecolor=Colors.name,
              timecolor=Colors.time,
              status=Tester.get_group_name(group),
              time=sec_format(output_data.runtime),
              test=process_test_name))
Example #2
0
def process_result(index, _input_data, output_data):
  """
    This is a callback function that Processes the result of a test.
    @ In, index, int, Index into functions list.
    @ In, _input_data, ignored, the input data passed to the function
    @ In, output_data, Tester.TestResult the output data passed to the function
    @ Out, None
  """
  group = output_data.group
  process_test_name = test_name_list[index]
  # TODO add feature to turn coloring on and off
  norm_color = '\033[0m'  #reset color
  skip_color = '\033[90m' #dark grey
  fail_color = '\033[91m' #red
  pass_color = '\033[92m' #green
  name_color = '\033[93m' #yellow
  if group == Tester.group_success:
    results["pass"] += 1
    for postreq in function_postreq.get(process_test_name, []):
      if postreq in name_to_id:
        job_id = name_to_id[postreq]
        print("Enabling", postreq, job_id)
        run_pool.enable_job(job_id)
    okaycolor = pass_color
  elif group == Tester.group_skip:
    results["skipped"] += 1
    print(output_data.message)
    okaycolor = skip_color
  else:
    results["fail"] += 1
    failed_list.append(Tester.get_group_name(group)+" "+process_test_name)
    print("Output of'"+process_test_name+"':")
    print(output_data.output)
    print(output_data.message)
    okaycolor = fail_color
  number_done = sum(results.values())
  print("({done}/{togo}) {statcolor}{status:7s}{normcolor} ({time}) {namecolor}{test}{normcolor}"
        .format(done=number_done,
                togo=len(function_list),
                statcolor=okaycolor,
                normcolor=norm_color,
                namecolor=name_color,
                status=Tester.get_group_name(group),
                time=sec_format(output_data.runtime),
                test=process_test_name))
Example #3
0
    failed_list = []

    output_list = run_pool.process_results(process_result)
    run_pool.wait()

    if results["fail"] > 0:
        print("{}FAILED:".format(Colors.fail))
    for path in failed_list:
        print(path)
    print(Colors.norm)

    with open("test_report.csv", "w") as csv_report:
        csv_report.write(",".join(["name", "passed", "group", "time"]) + "\n")
        for result, test_name in zip(output_list, test_name_list):
            if result is not None:
                group_name = Tester.get_group_name(result.group)
                out_line = ",".join([
                    test_name,
                    str(result.group == Tester.group_success), group_name,
                    str(result.runtime)
                ])
            else:
                out_line = ",".join(
                    [test_name, str(False), "NO_PREREQ",
                     str(0.0)])
            csv_report.write(out_line + "\n")
        csv_report.close()

    print("PASSED: {}{}{}".format(Colors.okay, results["pass"], Colors.norm))
    print("SKIPPED: {}{}{}".format(Colors.skip, results["skipped"],
                                   Colors.norm))