forked from It4innovations/hyperqueue
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_native.py
More file actions
79 lines (67 loc) · 2.25 KB
/
test_native.py
File metadata and controls
79 lines (67 loc) · 2.25 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
"""
Contains test that actually connect to an external instance of PBS or Slurm.
"""
from ..conftest import HqEnv
from ..utils.wait import (
wait_for_job_state,
wait_for_worker_state,
)
from .conftest import PBS_TIMEOUT, SLURM_TIMEOUT, pbs_test, slurm_test
from .utils import (
add_queue,
prepare_tasks,
)
@pbs_test
def test_external_pbs_submit_single_worker(cluster_hq_env: HqEnv, pbs_credentials: str):
cluster_hq_env.start_server()
prepare_tasks(cluster_hq_env, count=10)
add_queue(
cluster_hq_env,
manager="pbs",
additional_args=pbs_credentials,
time_limit="5m",
dry_run=True,
)
wait_for_worker_state(cluster_hq_env, 1, "RUNNING", timeout_s=PBS_TIMEOUT)
wait_for_job_state(cluster_hq_env, 1, "FINISHED")
@pbs_test
def test_external_pbs_submit_multiple_workers(cluster_hq_env: HqEnv, pbs_credentials: str):
cluster_hq_env.start_server()
prepare_tasks(cluster_hq_env, count=100)
add_queue(
cluster_hq_env,
manager="pbs",
additional_args=pbs_credentials,
time_limit="5m",
dry_run=True,
max_workers_per_alloc=2,
)
wait_for_worker_state(cluster_hq_env, [1, 2], "RUNNING", timeout_s=PBS_TIMEOUT)
wait_for_job_state(cluster_hq_env, 1, "FINISHED")
@slurm_test
def test_external_slurm_submit_single_worker(cluster_hq_env: HqEnv, slurm_credentials: str):
cluster_hq_env.start_server()
prepare_tasks(cluster_hq_env, count=10)
add_queue(
cluster_hq_env,
manager="slurm",
additional_args=slurm_credentials,
time_limit="5m",
dry_run=True,
)
wait_for_worker_state(cluster_hq_env, 1, "RUNNING", timeout_s=SLURM_TIMEOUT)
wait_for_job_state(cluster_hq_env, 1, "FINISHED")
@slurm_test
def test_external_slurm_submit_multiple_workers(cluster_hq_env: HqEnv, slurm_credentials: str):
cluster_hq_env.start_server()
prepare_tasks(cluster_hq_env, count=100)
add_queue(
cluster_hq_env,
manager="slurm",
additional_args=slurm_credentials,
time_limit="5m",
dry_run=True,
max_workers_per_alloc=2,
)
wait_for_worker_state(cluster_hq_env, [1, 2], "RUNNING", timeout_s=SLURM_TIMEOUT)
wait_for_job_state(cluster_hq_env, 1, "FINISHED")