| ############################################################################ |
| # Copyright (C) SchedMD LLC. |
| ############################################################################ |
| import atf |
| import pytest |
| |
| # 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() |