;;;; dynamic-import-test.scm -*- Scheme -*- ;;;; Kon Lovett, Feb '22 (import test) (include "test-gloss.incl") (import (only (chicken format) format)) (test-begin "Dynamic Import") ;;; (import dynamic-import) (test-group "\"Catching\" Warnings" (define +warns+ '()) (dynamic-import-warning (lambda args (set! +warns+ (cons args +warns+)))) (define falses (tabulated-list-of #f)) (test-group "Low Level" (test #f (apply values (dynamic-importer '(foo) '(m1) falses))) (test '(23 32) (dynamic-importer '(foo bar) '(m1 m2) '(23 32))) (test #f (apply values (dynamic-importer '(bar) '(m1 srfi-1) falses))) (test 23 (apply values (dynamic-importer '(baz) '(m1 srfi-1) (tabulated-list-of 23)))) ) (test-group "Higher Level" (dynamic-import append-reverse! srfi-1 falses) (test-assert (procedure? append-reverse!)) (dynamic-import (delete-duplicates delete-duplicates!) (foo bar baz srfi-1) falses) (test-assert (procedure? delete-duplicates)) (test-assert (procedure? delete-duplicates!)) (dynamic-import foobar (m1 srfi-1) (default 23)) (test 23 foobar) ) ;(gloss "warnings" +warns+) (test "\"Caught\" warnings" 5 (length +warns+)) ) ;;; (test-end "Dynamic Import") (test-exit)