about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorArun Isaac2025-11-17 00:32:07 +0000
committerArun Isaac2025-11-17 00:32:07 +0000
commit5f19178c35f27a3a35b037b9f20cf337c0e427ce (patch)
treed7cfdbc14bef6740e25886d83686010b9bef193f /tests
parent37e2ef98e4a68e1e37cc059a601674fc826a1c50 (diff)
downloadravanan-5f19178c35f27a3a35b037b9f20cf337c0e427ce.tar.gz
ravanan-5f19178c35f27a3a35b037b9f20cf337c0e427ce.tar.lz
ravanan-5f19178c35f27a3a35b037b9f20cf337c0e427ce.zip
tests: Update propnet tests to latest API.
Diffstat (limited to 'tests')
-rw-r--r--tests/propnet.scm41
1 files changed, 26 insertions, 15 deletions
diff --git a/tests/propnet.scm b/tests/propnet.scm
index 182eb30..1f48d61 100644
--- a/tests/propnet.scm
+++ b/tests/propnet.scm
@@ -1,5 +1,5 @@
 ;;; ravanan --- High-reproducibility CWL runner powered by Guix
-;;; Copyright © 2024 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2024–2025 Arun Isaac <arunisaac@systemreboot.net>
 ;;;
 ;;; This file is part of ravanan.
 ;;;
@@ -23,19 +23,30 @@
 
 (test-equal "Trigger propagator with no inputs"
   '((out . #t))
-  (run-propnet (propnet (list (propagator "const"
-                                          (const '((out . #t)))
-                                          '()
-                                          '()
-                                          '((out . out))))
-                        (@@ (ravanan workflow) value=?)
-                        (@@ (ravanan workflow) merge-values)
-                        (scheduler (lambda (proc _)
-                                     proc)
-                                   (const 'completed)
-                                   0
-                                   (lambda (proc)
-                                     (proc))))
-               '()))
+  (run-with-state
+    (let loop ((mstate (schedule-propnet
+                        (propnet (list (propagator "const"
+                                                   (const '((out . #t)))
+                                                   '()
+                                                   '()
+                                                   '((out . out))))
+                                 (@@ (ravanan workflow) value=?)
+                                 (@@ (ravanan workflow) merge-values)
+                                 (scheduler (lambda (proc inputs scheduler)
+                                              (state-return proc))
+                                            (lambda (state)
+                                              (state-return (state+status state
+                                                                          'completed)))
+                                            (lambda (proc)
+                                              (state-return (proc)))))
+                        '())))
+      ;; Poll.
+      (state-let* ((state mstate)
+                   (state+status (poll-propnet state)))
+        (if (eq? (state+status-status state+status)
+                 'pending)
+            (loop (state-return (state+status-state state+status)))
+            ;; Capture outputs.
+            (capture-propnet-output (state+status-state state+status)))))))
 
 (test-end "propnet")