summary refs log tree commit diff
path: root/tests/ccwl.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ccwl.scm')
-rw-r--r--tests/ccwl.scm17
1 files changed, 16 insertions, 1 deletions
diff --git a/tests/ccwl.scm b/tests/ccwl.scm
index 9e73c50..f0e2911 100644
--- a/tests/ccwl.scm
+++ b/tests/ccwl.scm
@@ -17,7 +17,9 @@
 ;;; along with ccwl.  If not, see <https://www.gnu.org/licenses/>.
 
 (use-modules (rnrs exceptions)
+             (srfi srfi-1)
              (srfi srfi-64)
+             (srfi srfi-71)
              (ccwl ccwl)
              (ccwl conditions))
 
@@ -30,6 +32,12 @@
 (define make-array-type
   (@@ (ccwl ccwl) make-array-type))
 
+(define key
+  (@@ (ccwl ccwl) key))
+
+(define collect-steps
+  (@@ (ccwl ccwl) collect-steps))
+
 (define-syntax construct-type-syntax-wrapper
   (lambda (x)
     (syntax-case x ()
@@ -133,7 +141,7 @@
            #:outputs (printed-message #:type stdout)))
 
 (test-equal "rename should work even on the final output of a workflow"
-  (list 'out1 'printed-message)
+  (list 'printed-message 'out1)
   (map output-id
        (workflow-outputs
         (workflow ((message1 #:type string)
@@ -315,4 +323,11 @@
    '(command #:inputs (messages #:type (array string))
              #:run "echo" (array messages #:separator foo))))
 
+(test-assert "tee must deduplicate global workflow input keys"
+  (let ((keys steps (collect-steps #'(tee (print #:message message)
+                                          (identity))
+                                   (list (key 'message)))))
+    (= (length (delete-duplicates keys eq?))
+       (length keys))))
+
 (test-end "ccwl")