Skip to content

Commit

Permalink
Tests for slurm prepare method
Browse files Browse the repository at this point in the history
  • Loading branch information
jimboid committed Nov 16, 2016
1 parent a1c1947 commit c782597
Show file tree
Hide file tree
Showing 8 changed files with 296 additions and 1 deletion.
4 changes: 3 additions & 1 deletion Longbow/schedulers/slurm.py
Expand Up @@ -133,7 +133,9 @@ def prepare(job):

for item in scripts:

jobfile.write(item.strip() + "\n\n")
jobfile.write(item.strip() + "\n")

jobfile.write("\n")

# Load up modules if required.
if job["modules"] is not "":
Expand Down
10 changes: 10 additions & 0 deletions Tests/standards/slurmsubfile_testcase1.txt
@@ -0,0 +1,10 @@
#!/bin/bash --login
#SBATCH -J testjob
#SBATCH -p debug
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -t 24:00:00

module load amber

mpirun pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out
16 changes: 16 additions & 0 deletions Tests/standards/slurmsubfile_testcase2.txt
@@ -0,0 +1,16 @@
#!/bin/bash --login
#SBATCH -J testjob
#SBATCH -p debug
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -t 24:00:00

module load amber

basedir = `pwd`
for i in {1..5};
do
cd $basedir/rep$i/
mpirun pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out
done
wait
11 changes: 11 additions & 0 deletions Tests/standards/slurmsubfile_testcase3.txt
@@ -0,0 +1,11 @@
#!/bin/bash --login
#SBATCH -J testjob
#SBATCH -p debug
#SBATCH -A accno1234
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -t 24:00:00

module load amber

mpirun pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out
11 changes: 11 additions & 0 deletions Tests/standards/slurmsubfile_testcase4.txt
@@ -0,0 +1,11 @@
#!/bin/bash --login
#SBATCH -J testjob
#SBATCH -p debug
#SBATCH -P accno1234
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -t 24:00:00

module load amber

mpirun pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out
12 changes: 12 additions & 0 deletions Tests/standards/slurmsubfile_testcase5.txt
@@ -0,0 +1,12 @@
#!/bin/bash --login
#SBATCH -J testjob
#SBATCH -p debug
#SBATCH --mail-type=bn
#SBATCH --mail-user=test.email@server.com
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -t 24:00:00

module load amber

mpirun pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out
13 changes: 13 additions & 0 deletions Tests/standards/slurmsubfile_testcase6.txt
@@ -0,0 +1,13 @@
#!/bin/bash --login
#SBATCH -J testjob
#SBATCH -p debug
#SBATCH -n 24
#SBATCH -N 1
#SBATCH -t 24:00:00

ls /dir
cd /dir

module load amber

mpirun pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out
220 changes: 220 additions & 0 deletions Tests/unit/schedulers_slurm/test_slurm_prepare.py
Expand Up @@ -26,3 +26,223 @@
import Longbow.schedulers.slurm as slurm


def test_prepare_case1():

"""
Simple test
"""

job = {
"account": "",
"cluster": "",
"cores": "24",
"corespernode": "24",
"executableargs": "pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out",
"handler": "mpirun",
"email-address": "",
"email-flags": "",
"jobname": "testjob",
"localworkdir": "/tmp",
"maxtime": "24:00",
"memory": "",
"modules": "amber",
"queue": "debug",
"replicates": "1",
"scripts": "",
"sge-peflag": "mpi",
"sge-peoverride": "false",
"upload-include": "file1, file2"
}

slurm.prepare(job)

assert job["subfile"] == "submit.slurm"
assert job["upload-include"] == "file1, file2, submit.slurm"
assert open("/tmp/submit.slurm", "rb").read() == open(
os.path.join(
os.getcwd(),
"Tests/standards/slurmsubfile_testcase1.txt"), "rb").read()


def test_prepare_case2():

"""
Test replicates
"""

job = {
"account": "",
"cluster": "",
"cores": "24",
"corespernode": "24",
"executableargs": "pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out",
"handler": "mpirun",
"email-address": "",
"email-flags": "",
"jobname": "testjob",
"localworkdir": "/tmp",
"maxtime": "24:00",
"memory": "",
"modules": "amber",
"queue": "debug",
"replicates": "5",
"scripts": "",
"sge-peflag": "mpi",
"sge-peoverride": "false",
"upload-include": "file1, file2"
}

slurm.prepare(job)

assert open("/tmp/submit.slurm", "rb").read() == open(
os.path.join(
os.getcwd(),
"Tests/standards/slurmsubfile_testcase2.txt"), "rb").read()


def test_prepare_case3():

"""
Test account parameter
"""

job = {
"account": "accno1234",
"accountflag": "",
"cluster": "",
"cores": "24",
"corespernode": "24",
"executableargs": "pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out",
"handler": "mpirun",
"email-address": "",
"email-flags": "",
"jobname": "testjob",
"localworkdir": "/tmp",
"maxtime": "24:00",
"memory": "",
"modules": "amber",
"queue": "debug",
"replicates": "1",
"scripts": "",
"sge-peflag": "mpi",
"sge-peoverride": "false",
"upload-include": "file1, file2"
}

slurm.prepare(job)

assert open("/tmp/submit.slurm", "rb").read() == open(
os.path.join(
os.getcwd(),
"Tests/standards/slurmsubfile_testcase3.txt"), "rb").read()


def test_prepare_case4():

"""
Test account parameter
"""

job = {
"account": "accno1234",
"accountflag": "-P",
"cluster": "",
"cores": "24",
"corespernode": "24",
"executableargs": "pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out",
"handler": "mpirun",
"email-address": "",
"email-flags": "",
"jobname": "testjob",
"localworkdir": "/tmp",
"maxtime": "24:00",
"memory": "",
"modules": "amber",
"queue": "debug",
"replicates": "1",
"scripts": "",
"sge-peflag": "mpi",
"sge-peoverride": "false",
"upload-include": "file1, file2"
}

slurm.prepare(job)

assert open("/tmp/submit.slurm", "rb").read() == open(
os.path.join(
os.getcwd(),
"Tests/standards/slurmsubfile_testcase4.txt"), "rb").read()


def test_prepare_case5():

"""
Test email parameters
"""

job = {
"account": "",
"accountflag": "",
"cluster": "",
"cores": "24",
"corespernode": "24",
"executableargs": "pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out",
"handler": "mpirun",
"email-address": "test.email@server.com",
"email-flags": "bn",
"jobname": "testjob",
"localworkdir": "/tmp",
"maxtime": "24:00",
"memory": "",
"modules": "amber",
"queue": "debug",
"replicates": "1",
"scripts": "",
"sge-peflag": "mpi",
"sge-peoverride": "false",
"upload-include": "file1, file2"
}

slurm.prepare(job)

assert open("/tmp/submit.slurm", "rb").read() == open(
os.path.join(
os.getcwd(),
"Tests/standards/slurmsubfile_testcase5.txt"), "rb").read()


def test_prepare_case6():

"""
Test script parameters
"""

job = {
"account": "",
"accountflag": "",
"cluster": "",
"cores": "24",
"corespernode": "24",
"executableargs": "pmemd.MPI -O -i e.in -c e.min -p e.top -o e.out",
"handler": "mpirun",
"email-address": "",
"email-flags": "",
"jobname": "testjob",
"localworkdir": "/tmp",
"maxtime": "24:00",
"memory": "",
"modules": "amber",
"queue": "debug",
"replicates": "1",
"scripts": "ls /dir, cd /dir",
"sge-peflag": "mpi",
"sge-peoverride": "false",
"upload-include": "file1, file2"
}

slurm.prepare(job)

assert open("/tmp/submit.slurm", "rb").read() == open(
os.path.join(
os.getcwd(),
"Tests/standards/slurmsubfile_testcase6.txt"), "rb").read()

0 comments on commit c782597

Please sign in to comment.