TESTS="basic"

function test_basic() {
read -r -d '' arc_test_configuration <<EOF
[lrms]
slurm_bin_path=$(pwd)/bin
EOF

read -r -d '' test_jobs <<'EOF'
333333333 INLRMS
222222222 CANCELING
555555555 OTHER
444444444 INLRMS
111111111 INLRMS
EOF

read -r -d '' test_input_diag_list <<'EOF'
nodename=test_basic;WallTime=1234s;UserTime=1235s;KernelTime=1236s;AverageTotalMemory=3264kB;AverageResidentMemory=6432kB;#LRMSStartTime=\([0-9][0-9]*Z\);#LRMSEndTime=\([0-9][0-9]*Z\);exitcode=0
nodename=test_basic;WallTime=1234s;UserTime=1235s;KernelTime=1236s;AverageTotalMemory=3264kB;AverageResidentMemory=6432kB;#LRMSStartTime=\([0-9][0-9]*Z\);#LRMSEndTime=\([0-9][0-9]*Z\);exitcode=1
#
#
nodename=test_basic;WallTime=1234s;UserTime=1235s;KernelTime=1236s;AverageTotalMemory=3264kB;AverageResidentMemory=6432kB;#LRMSStartTime=\([0-9][0-9]*Z\);#LRMSEndTime=\([0-9][0-9]*Z\);exitcode=1
EOF


simulate_cmds="squeue scontrol"
read -r -d '' simulator_output <<'EOF'
rargs="/squeue -a -h -o %i:%T -t all -j \\(\\(1\\|2\\|3\\|4\\)\\{9\\},\\)\\{3\\}\\(1\\|2\\|3\\|4\\)\\{9\\}/"
output=<<<ENDOUTPUT
333333333:COMPLETED
222222222:CANCELLED
444444444:RUNNING
111111111:TIMEOUT
ENDOUTPUT

args="scontrol -o show job 111111111"
output="JobId=111111111 Name=test_basic UserId=basic(500) GroupId=basic(500) Priority=12345 Account=(null) QOS=(null) JobState=CANCELLED Reason=None Dependency=(null) Requeue=0 Restarts=0 BatchFlag=1 ExitCode=0:0 RunTime=00:05:00 TimeLimit=04:00:00 TimeMin=N/A SubmitTime=2014-03-17T14:30:04 EligibleTime=2014-03-17T14:30:04 StartTime=2014-03-17T14:34:04 EndTime=2014-03-17T14:37:04 PreemptTime=None SuspendTime=None SecsPreSuspend=0 Partition=basic AllocNode:Sid=basic:11597 ReqNodeList=(null) ExcNodeList=(null) NodeList=test_basic BatchHost=test_basic NumNodes=1 NumCPUs=1 CPUs/Task=1 ReqS:C:T=*:*:* MinCPUsNode=1 MinMemoryCPU=1000M MinTmpDiskNode=0 Features=(null) Gres=(null) Reservation=(null) Shared=OK Contiguous=0 Licenses=(null) Network=(null)"
args="scontrol -o show job 222222222"
output="JobId=222222222 Name=test_basic UserId=basic(500) GroupId=basic(500) Priority=12345 Account=(null) QOS=(null) JobState=CANCELLED Reason=None Dependency=(null) Requeue=0 Restarts=0 BatchFlag=1 ExitCode=0:0 RunTime=00:05:00 TimeLimit=04:00:00 TimeMin=N/A SubmitTime=2014-03-17T14:30:04 EligibleTime=2014-03-17T14:30:04 StartTime=2014-03-17T14:34:04 EndTime=2014-03-17T14:37:04 PreemptTime=None SuspendTime=None SecsPreSuspend=0 Partition=basic AllocNode:Sid=basic:11597 ReqNodeList=(null) ExcNodeList=(null) NodeList=test_basic BatchHost=test_basic NumNodes=1 NumCPUs=1 CPUs/Task=1 ReqS:C:T=*:*:* MinCPUsNode=1 MinMemoryCPU=1000M MinTmpDiskNode=0 Features=(null) Gres=(null) Reservation=(null) Shared=OK Contiguous=0 Licenses=(null) Network=(null)"
args="scontrol -o show job 333333333"
output="JobId=333333333 Name=test_basic UserId=basic(500) GroupId=basic(500) Priority=12345 Account=(null) QOS=(null) JobState=COMPLETED Reason=None Dependency=(null) Requeue=0 Restarts=0 BatchFlag=1 ExitCode=0:0 RunTime=00:05:00 TimeLimit=04:00:00 TimeMin=N/A SubmitTime=2014-03-17T14:30:04 EligibleTime=2014-03-17T14:30:04 StartTime=2014-03-17T14:30:04 EndTime=2014-03-17T14:35:04 PreemptTime=None SuspendTime=None SecsPreSuspend=0 Partition=basic AllocNode:Sid=basic:11597 ReqNodeList=(null) ExcNodeList=(null) NodeList=test_basic BatchHost=test_basic NumNodes=1 NumCPUs=1 CPUs/Task=1 ReqS:C:T=*:*:* MinCPUsNode=1 MinMemoryCPU=1000M MinTmpDiskNode=0 Features=(null) Gres=(null) Reservation=(null) Shared=OK Contiguous=0 Licenses=(null) Network=(null)"
EOF


# SLURM scan script kicks a cancelled job twice.
read -r -d '' expected_kicked_jobs <<'EOF'
333333333
222222222
222222222
111111111
EOF

read -r -d '' expected_exit_codes <<'EOF'
333333333;0
222222222;15
111111111;0
EOF

read -r -d '' expected_diags <<'EOF'
111111111;nodename=test_basic;WallTime=180s;UserTime=1235s;KernelTime=1236s;AverageTotalMemory=3264kB;AverageResidentMemory=6432kB;exitcode=1;Processors=1;LRMSStartTime=20140317143404Z;LRMSEndTime=20140317143704Z
222222222;nodename=test_basic;WallTime=180s;UserTime=1235s;KernelTime=1236s;AverageTotalMemory=3264kB;AverageResidentMemory=6432kB;exitcode=1;Processors=1;LRMSStartTime=20140317143404Z;LRMSEndTime=20140317143704Z
333333333;nodename=test_basic;WallTime=300s;UserTime=1235s;KernelTime=1236s;AverageTotalMemory=3264kB;AverageResidentMemory=6432kB;exitcode=0;Processors=1;LRMSStartTime=20140317143004Z;LRMSEndTime=20140317143504Z
EOF
}
