blob: c07b04d0c624fc4573bcb0043c2560a6fd596076 [file] [log] [blame]
############################################################################
# Copyright (C) SchedMD LLC.
############################################################################
import atf
import pytest
import re
# Setup
@pytest.fixture(scope="module", autouse=True)
def setup():
atf.require_slurm_running()
def test_kill_on_bad_exit():
"""Test of srun's --kill-on-bad-exit option."""
error_text = r"SHOULD_NOT_BE_HERE"
python_script = atf.module_tmp_path / "python_script.py"
py_file = open(python_script, "w")
num_tasks = 10
# python script that exits on one of the tasks of the job
# if any task gets past the sleep then the test fails
py_file.write(
f"""import sys
import time
import os
proc_id = os.environ['SLURM_PROCID']
if proc_id == '{num_tasks - 2}':
sys.exit(2)
time.sleep(15)
print('{error_text}')"""
)
py_file.close()
output = atf.run_job_output(
f"--kill-on-bad-exit -n{num_tasks} -O python3 {python_script}", xfail=True
)
assert (
re.search(error_text, output) is None
), "--kill-on-bad-exit failed to kill all tasks on a bad exit"