############################################################################
# Copyright (C) SchedMD LLC.
############################################################################
import re

import pytest

import atf


# setup
@pytest.fixture(scope="module", autouse=True)
def setup():
    atf.require_slurm_running()


def test_parallel_launch_srun():
    """Test parallel launch of srun (e.g. "srun srun id")"""

    mult = 4
    task_cnt = 4
    node_cnt = 1 - 4
    output = atf.run_job_output(
        f"-N{node_cnt} -n{task_cnt} -O -t1 --overlap srun -l -n{mult} -O --overlap id"
    )
    match = re.findall(r"\d+: uid=", output)
    assert (
        len(match) == mult * task_cnt
    ), f"Failed to get output from all tasks. Got {len(match)} outputs expected {task_cnt * mult}"
