Skip to content

Commit 2a12d26

Browse files
committed
add tests
1 parent 4803f38 commit 2a12d26

File tree

7 files changed

+121
-4
lines changed

7 files changed

+121
-4
lines changed

.travis.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,20 @@
1-
language: julia
2-
julia:
3-
- 1.4
1+
dist: bionic
2+
3+
services:
4+
- docker
5+
6+
before_install:
7+
- docker version
8+
- docker-compose version
9+
- docker build -t slurm-cluster-julia -f ci/Dockerfile .
10+
- docker-compose -f ci/docker-compose.yml up -d
11+
- docker ps
12+
13+
before_script:
14+
- docker exec -it slurmctld pwd
15+
- docker exec -it slurmctld ls -l
16+
- docker exec -it slurmctld srun -n 4 hostname
17+
18+
script:
19+
- docker exec -it slurmctld julia -e 'using Pkg; Pkg.build(verbose=true)'
20+
- docker exec -it slurmctld julia -e 'using Pkg; Pkg.test()'

Manifest.toml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,23 @@
11
# This file is machine-generated - editing it directly is not advised
22

3+
[[Base64]]
4+
uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f"
5+
36
[[Distributed]]
47
deps = ["Random", "Serialization", "Sockets"]
58
uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b"
69

10+
[[InteractiveUtils]]
11+
deps = ["Markdown"]
12+
uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240"
13+
14+
[[Logging]]
15+
uuid = "56ddb016-857b-54e1-b83d-db4d58db5568"
16+
17+
[[Markdown]]
18+
deps = ["Base64"]
19+
uuid = "d6f4376e-aef5-505a-96c1-9c027394607a"
20+
721
[[Random]]
822
deps = ["Serialization"]
923
uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c"
@@ -13,3 +27,7 @@ uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b"
1327

1428
[[Sockets]]
1529
uuid = "6462fe0b-24de-5631-8697-dd941f90decc"
30+
31+
[[Test]]
32+
deps = ["Distributed", "InteractiveUtils", "Logging", "Random"]
33+
uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

Project.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,4 @@ version = "0.1.0"
55

66
[deps]
77
Distributed = "8ba89e20-285c-5b6f-9357-94700520ee1b"
8+
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"

ci/Dockerfile

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
FROM jkleinh/slurm-cluster as base
2+
MAINTAINER Joseph Kleinhenz <[email protected]>
3+
4+
RUN mkdir -p /home/docker/.local/opt/julia \
5+
&& cd /home/docker/.local/opt/julia \
6+
&& curl -L https://julialang-s3.julialang.org/bin/linux/x64/1.4/julia-1.4.1-linux-x86_64.tar.gz | tar xz --strip 1
7+
8+
ENV PATH="/home/docker/.local/opt/julia/bin:${PATH}"
9+
10+
COPY --chown=docker . SlurmClusterManager
11+
ENV JULIA_PROJECT="/home/docker/SlurmClusterManager"
12+
13+
CMD /bin/bash -l

ci/docker-compose.yml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
version: "3.3"
2+
3+
services:
4+
slurmctld:
5+
image: slurm-cluster-julia
6+
command: ["slurmctld"]
7+
container_name: slurmctld
8+
hostname: slurmctld
9+
volumes:
10+
- slurm_jobdir:/home/docker
11+
- var_log_slurm:/var/log/slurm
12+
expose:
13+
- "6817"
14+
15+
c1:
16+
image: slurm-cluster-julia
17+
command: ["slurmd"]
18+
hostname: c1
19+
container_name: c1
20+
volumes:
21+
- slurm_jobdir:/home/docker
22+
- var_log_slurm:/var/log/slurm
23+
expose:
24+
- "6818"
25+
depends_on:
26+
- "slurmctld"
27+
28+
c2:
29+
image: slurm-cluster-julia
30+
command: ["slurmd"]
31+
hostname: c2
32+
container_name: c2
33+
volumes:
34+
- slurm_jobdir:/home/docker
35+
- var_log_slurm:/var/log/slurm
36+
expose:
37+
- "6818"
38+
depends_on:
39+
- "slurmctld"
40+
41+
volumes:
42+
slurm_jobdir:
43+
var_log_slurm:

test/runtests.jl

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,23 @@
11
#!/usr/bin/env julia
22

3-
using SlurmClusterManager
3+
using Distributed, Test, SlurmClusterManager
4+
5+
# test that slurm is available
6+
@test !(Sys.which("sinfo") === nothing)
7+
8+
# submit job
9+
jobid = read(`sbatch --export=ALL --parsable -n 4 -o test.out script.jl`, String)
10+
println("jobid = $jobid")
11+
12+
# wait for job to complete
13+
status = timedwait(60.0, pollint=1.0) do
14+
state = read(`sacct -j $jobid --format=state --noheader`, String)
15+
state == "" && return false
16+
state = first(split(state)) # don't care about jobsteps
17+
println("jobstate = $state")
18+
return state == "COMPLETED" || state == "FAILED"
19+
end
20+
@test status == :ok
21+
22+
output = readlines("test.out")
23+
println(output)

test/script.jl

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
#!/usr/bin/env julia
2+
3+
using Distributed, SlurmClusterManager
4+
addprocs(SlurmManager())
5+
@everywhere println("hello from $(myid()):$(gethostname())")

0 commit comments

Comments
 (0)