| ############################################################################ | |
| # Copyright (C) SchedMD LLC. | |
| ############################################################################ | |
| import re | |
| import pytest | |
| import atf | |
| # Setup | |
| @pytest.fixture(scope="module", autouse=True) | |
| def setup(): | |
| atf.require_config_parameter_excludes("LaunchParameters", "test_exec") | |
| atf.require_slurm_running() | |
| def test_running_non_existent_job(): | |
| """Test of running non-existent job, confirm timely termination.""" | |
| # Submit a slurm job that will execute bogus job name | |
| output_error = atf.run_command_error( | |
| "srun -t1 /bad/bad/bad", timeout=120, xfail=True | |
| ) | |
| no_file = re.findall(r"No such file", output_error) | |
| unable_to_run = re.findall(r"Unable to run executable", output_error) | |
| time_limit = re.findall(r"time limit exceeded", output_error) | |
| terminated = re.findall(r"Terminated", output_error) | |
| assert len(time_limit) <= 0, "srun time limit exceeded" | |
| assert len(terminated) <= 0, "srun did not terminate properly" | |
| assert ( | |
| len(no_file) > 0 or len(unable_to_run) > 0 | |
| ), "Unexpected output from bad job name" |