summaryrefslogtreecommitdiffstats
path: root/tests/019/load-search.tl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/019/load-search.tl')
-rw-r--r--tests/019/load-search.tl69
1 files changed, 69 insertions, 0 deletions
diff --git a/tests/019/load-search.tl b/tests/019/load-search.tl
new file mode 100644
index 00000000..3ba29790
--- /dev/null
+++ b/tests/019/load-search.tl
@@ -0,0 +1,69 @@
+(load "../common")
+
+(defvarl cur (dir-name *load-path*))
+
+(defun txr (. args)
+ (command-get-string `@{txr-exe-path} @{args " "}`))
+
+(defun lod (x)
+ (with-out-string-stream (*stdout*)
+ (load x)))
+
+(mtest
+ (txr `@cur/data/a`) "a\n"
+ (txr `@cur/data/a.txr`) "a.txr\n"
+ (txr `@cur/data/a.tl`) "a.tl\n"
+ (txr `@cur/data/a.tlo`) "a.tlo\n")
+
+(mtest
+ (txr `@cur/data/b`) "b.txr\n"
+ (txr `@cur/data/b.txr`) "b.txr\n"
+ (txr `@cur/data/b.tl`) "b.tl\n"
+ (txr `@cur/data/b.tlo`) "b.tlo\n")
+
+(mtest
+ (txr `@cur/data/c`) "c.txr\n"
+ (txr `@cur/data/c.txr`) "c.txr\n"
+ (txr `@cur/data/c.tl`) "c.tl\n")
+
+(let ((*stderr* *stdnull*))
+ (mtest
+ (txr "--lisp" `@cur/data/a`) ""
+ (txr "--compiled" `@cur/data/a`) ""))
+
+(mtest
+ (txr "--lisp" `@cur/data/b`) "b.tlo\n"
+ (txr "--compiled" `@cur/data/b`) "b.tlo\n")
+
+(mtest
+ (txr "--lisp" `@cur/data/c`) "c.tl\n"
+ (txr "--compiled" `@cur/data/c`) "c.tl\n")
+
+(mtest
+ (length *load-search-dirs*) 1
+ (base-name (car *load-search-dirs*)) "lib")
+
+(set *load-search-dirs* (list `@cur/data`))
+
+(mtest
+ (lod "a") :error
+ (lod "a.tl") "a.tl\n"
+ (lod "c") "c.tl\n")
+
+(push `@cur/nonexistent` *load-search-dirs*)
+
+(mtest
+ (lod "a") :error
+ (lod "a.tl") "a.tl\n"
+ (lod "c") "c.tl\n")
+
+
+(unless (or (meq (os-symbol) :cygwin :cygnal)
+ (zerop (geteuid)))
+ (push `@cur/unreadable` *load-search-dirs*)
+ (push-after-load (rmdir `@cur/unreadable`))
+ (ensure-dir `@cur/unreadable` 0)
+ (mtest
+ (lod "a") :error
+ (lod "a.tl") :error
+ (lod "c") :error))