summaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorArun Isaac2025-01-26 11:53:53 +0000
committerArun Isaac2025-01-26 11:56:50 +0000
commitcdb781e4e89f4d2909b5b07f93c39450e6c1f319 (patch)
tree56110ec08882ffff83646eb3b7cc0fd15f46e310 /tests
parent46252b0457bfccc6394c3c521f48185869f741a9 (diff)
downloadravanan-cdb781e4e89f4d2909b5b07f93c39450e6c1f319.tar.gz
ravanan-cdb781e4e89f4d2909b5b07f93c39450e6c1f319.tar.lz
ravanan-cdb781e4e89f4d2909b5b07f93c39450e6c1f319.zip
slurm-api: Handle all slurm job state codes.
* ravanan/slurm-api.scm: Import assertion-violation from (rnrs base). (slurm-state-codes->job-state): New function. (job-state): Use slurm-state-codes->job-state. * tests/slurm-api.scm: New file.
Diffstat (limited to 'tests')
-rw-r--r--tests/slurm-api.scm48
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/slurm-api.scm b/tests/slurm-api.scm
new file mode 100644
index 0000000..347c5c3
--- /dev/null
+++ b/tests/slurm-api.scm
@@ -0,0 +1,48 @@
+;;; ravanan --- High-reproducibility CWL runner powered by Guix
+;;; Copyright © 2025 Arun Isaac <arunisaac@systemreboot.net>
+;;;
+;;; This file is part of ravanan.
+;;;
+;;; ravanan is free software: you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation, either version 3 of the License, or
+;;; (at your option) any later version.
+;;;
+;;; ravanan is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with ravanan. If not, see <https://www.gnu.org/licenses/>.
+
+(use-modules (srfi srfi-64)
+ (ravanan slurm-api))
+
+(define slurm-state-codes->job-state
+ (@@ (ravanan slurm-api)
+ slurm-state-codes->job-state))
+
+(test-begin "slurm-api")
+
+(test-equal "Handle PENDING job state"
+ 'pending
+ (slurm-state-codes->job-state #("PENDING")))
+
+(test-equal "Handle RUNNING job state"
+ 'pending
+ (slurm-state-codes->job-state #("RUNNING")))
+
+(test-equal "Handle FAILED job state"
+ 'failed
+ (slurm-state-codes->job-state #("FAILED")))
+
+(test-equal "Handle COMPLETED job state"
+ 'completed
+ (slurm-state-codes->job-state #("COMPLETED")))
+
+(test-equal "Handle COMPLETED job state with additional COMPLETING flag"
+ 'pending
+ (slurm-state-codes->job-state #("COMPLETED" "COMPLETING")))
+
+(test-end "slurm-api")