| ############################################################################ | |
| # Copyright (C) SchedMD LLC. | |
| ############################################################################ | |
| import pytest | |
| import atf | |
| # import re | |
| # Setup | |
| @pytest.fixture(scope="module", autouse=True) | |
| def setup(): | |
| atf.require_auto_config("wants to add custom generic resources") | |
| atf.require_config_parameter("GresTypes", "r1") | |
| atf.require_nodes(1, [("Gres", "r1:1")]) | |
| atf.require_slurm_running() | |
| def test_job_array_with_gres(): | |
| """Test creating job array with gres requested""" | |
| output_pattern = f"{atf.module_tmp_path}/%A-%a.out" | |
| job_id = atf.submit_job_sbatch( | |
| f"--array=1-2 --gres=r1:1 --wrap='echo DONE' \ | |
| --output={output_pattern}" | |
| ) | |
| output_file_1 = f"{atf.module_tmp_path}/{job_id}-1.out" | |
| output_file_2 = f"{atf.module_tmp_path}/{job_id}-2.out" | |
| atf.wait_for_job_state(job_id, "DONE", timeout=15, fatal=True) | |
| with open(output_file_1, "r") as f: | |
| output = f.read() | |
| assert "DONE" in output, "Expect job to finish" | |
| with open(output_file_2, "r") as f: | |
| output = f.read() | |
| assert "DONE" in output, "Expect job to finish" | |
| assert atf.is_slurmctld_running() |