From 6af1b3f9b55e95bfee051d73bdbb2257875d97bc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Mon, 30 Oct 2023 00:16:53 +0100 Subject: Add tests for module introspection. --- tests/unit/module-introspection/module-uses.scm | 68 +++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 tests/unit/module-introspection/module-uses.scm (limited to 'tests/unit/module-introspection/module-uses.scm') diff --git a/tests/unit/module-introspection/module-uses.scm b/tests/unit/module-introspection/module-uses.scm new file mode 100644 index 00000000..f460f9dc --- /dev/null +++ b/tests/unit/module-introspection/module-uses.scm @@ -0,0 +1,68 @@ +(define-module (test module-introspection module-uses) + :use-module (srfi srfi-1) + :use-module (srfi srfi-64) + :use-module (srfi srfi-64 test-error) + :use-module (srfi srfi-71) + :use-module (srfi srfi-88) + :use-module ((hnh util) :select (sort*)) + :use-module (hnh module-introspection module-uses)) + + +(test-equal "Basic example" + '(((srfi srfi-1) hide: () autoload: #f) + ((not-a-real-module) select: (x) hide: () autoload: #f)) + (module-uses* + '((define-module (test-module) + :use-module (srfi srfi-1)) + + (@ (not-a-real-module) x)))) + +(test-equal "Multiple imports of same module" + '(((xdg basedir) hide: () autoload: #f) + ((xdg basedir) select: (config-home) hide: () autoload: #f)) + (module-uses* + '((use-modules + ((xdg basedir))) + (@ (xdg basedir) config-home)))) + +(test-equal "Multiple imports of same thing + alternative keyword" + '(((xdg basedir) hide: () prefix: xdg- autoload: #f) + ((xdg basedir) select: (config-home) hide: () autoload: #f)) + (module-uses* + '((define-module (test) + ;; Prefix written as keyword, to test that normalization + :use-module ((xdg basedir) #:prefix xdg-)) + (@ (xdg basedir) config-home)))) + +(test-equal "Autoload + import private" + '(((mod-1) select: (x) hide: () autoload: #t) + ((mod-2) select: (z) hide: () autoload: #f)) + (module-uses* + '((define-module (test) + :autoload (mod-1) (x)) + (@@ (mod-2) z)))) + +(test-equal ":version on define-module, along with \"weird\" symbols" + '(((tt) select: (y) hide: () version: (0 1) autoload: #f)) + (module-uses* + '((define-module (test) + :version (1 1) + :use-module ((tt) :select (y) :version (0 1)))))) + +(test-error 'wrong-type-arg + (module-uses* + '((use-modules x)))) + +(test-error 'wrong-type-arg + (module-uses* + '((use-modules (x :select (y)))))) + +(test-error 'wrong-type-arg + (module-uses* + '((use-modules ((x) (y)))))) + +(test-error 'wrong-type-arg + (module-uses* + '((use-modules ((x) 1 (y)))))) + +'((hnh module-introspection module-uses)) -- cgit v1.2.3