def test_cancel_on_failure_detect_by_submitter(cleanup): # HpcSubmitter handles the cancellation because the blocked job will be in the 2nd batch. cmd = f"{SUBMIT_JOBS} {CONFIG_FILE} --output={OUTPUT} -n2 -b2" ret = run_command(cmd) assert ret == 0 ret = run_command(f"{WAIT} --output={OUTPUT} -p 0.01") assert ret == 0 summary = ResultsSummary(OUTPUT) assert len(summary.get_successful_results()) == 1 assert len(summary.get_failed_results()) == 1 assert len(summary.get_canceled_results()) == 6 results = summary.get_results_by_type() assert len(results["successful"]) == 1 assert len(results["failed"]) == 1 assert len(results["canceled"]) == 6
def test_cancel_on_failure_detect_by_runner(cleanup): # JobRunner handles the cancellation in JobQueue because the blocked job is in the batch # along with the blocking job. cmd = f"{SUBMIT_JOBS} {CONFIG_FILE} --output={OUTPUT} -n2 -b8" ret = run_command(cmd) assert ret == 0 ret = run_command(f"{WAIT} --output={OUTPUT} -p 0.01") assert ret == 0 summary = ResultsSummary(OUTPUT) assert len(summary.get_successful_results()) == 1 assert len(summary.get_failed_results()) == 1 assert len(summary.get_canceled_results()) == 6 results = summary.get_results_by_type() assert len(results["successful"]) == 1 assert len(results["failed"]) == 1 assert len(results["canceled"]) == 6