diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-10-30 00:16:53 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2023-11-06 00:46:26 +0100 |
commit | 6af1b3f9b55e95bfee051d73bdbb2257875d97bc (patch) | |
tree | e3ce3411227955d92bf71bc3d80f9eadf68d5dfa /tests/unit/module-introspection/module-uses.scm | |
parent | Rename test. (diff) | |
download | calp-6af1b3f9b55e95bfee051d73bdbb2257875d97bc.tar.gz calp-6af1b3f9b55e95bfee051d73bdbb2257875d97bc.tar.xz |
Add tests for module introspection.
Diffstat (limited to 'tests/unit/module-introspection/module-uses.scm')
-rw-r--r-- | tests/unit/module-introspection/module-uses.scm | 68 |
1 files changed, 68 insertions, 0 deletions
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)) |