-
Notifications
You must be signed in to change notification settings - Fork 35
/
Copy pathtest-logical-pathname.script
61 lines (49 loc) · 2.5 KB
/
test-logical-pathname.script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
;;; -*- Lisp -*-
(defun wild (&rest keys)
(apply 'make-pathname :defaults (wilden *asdf-directory*) keys))
(setf (logical-pathname-translations "ASDF")
`(("**;*.asd.*" ,(wild :type "asd"))
("**;*.lisp.*" ,(wild :type "lisp"))
("**;*.*.*" ,(resolve-location
`(,*asdf-directory* "build/fasls" :implementation "logical-host-asdf")
:wilden t))))
(setf asdf/session:*asdf-session* nil)
(DBG :logical
(logical-pathname-translations "ASDF")
(translate-logical-pathname "ASDF:test;test-logical-pathname.asd")
(truename "ASDF:test;test-logical-pathname.asd")
(translate-logical-pathname "ASDF:test;test-logical-pathname.lisp")
(translate-logical-pathname "ASDF:test;test-logical-pathname.fasl"))
#+(or gcl xcl) (leave-test "This implementation doesn't do Logical pathnames well enough" 0)
(DBG "Test logical pathnames in central registry")
(clear-system :test-logical-pathname)
(setf *central-registry* '(#p"ASDF:test;"))
(assert (logical-pathname-p (first *central-registry*)))
(initialize-source-registry '(:source-registry :ignore-inherited-configuration))
(DBG "loading" (load-system :test-logical-pathname :force t))
(DBG "Test logical pathnames in source-registry, non-recursive")
(clear-system :test-logical-pathname)
(setf *central-registry* '())
(initialize-source-registry
'(:source-registry (:directory #p"ASDF:test;") :ignore-inherited-configuration))
(load-system :test-logical-pathname :force t :verbose t)
(DBG "Test logical pathnames in source-registry, recursive")
(clear-system :test-logical-pathname)
(setf *central-registry* '())
(initialize-source-registry
;; Bug: Allegro Express 8.2 and 9.0 incorrectly read #p"ASDF:" as relative.
;; other bug: around 2.26.xx (before the nil-pathname cleanup, though),
;; CLISP borks badly if the path below is #p"ASDF:"
;; and it tries to load ASDF itself from a logical-pathname.
'(:source-registry (:tree #p"ASDF:test;")
:ignore-inherited-configuration))
(load-system :test-logical-pathname :force t)
#+abcl (leave-test "ABCL translates logical pathnames in *LOAD-PATHNAME*" 0)
#+clisp
(unless (version<= "2.50" (first (split-string (lisp-implementation-version) :separator "-+ ")))
(leave-test "CLISP 2.49 translates logical pathnames in *LOAD-PATHNAME*" 0))
(defparameter sys (find-system :test-logical-pathname))
(with-expected-failure (#+clasp "Clasp fails here")
(assert (logical-pathname-p (component-pathname sys))))
(assert (logical-pathname-p (system-source-file sys)))
(DBG "Done")