X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fpathnames.impure.lisp;h=a46c6e0d225cb6d72fc01ca3c0218378d8b48f38;hb=87cd7d9848d9beddbf74e9d56a0c0aea6e189ead;hp=e6b5d1049e3ebcf1c5b5a41282252fa4acce95d5;hpb=58806bb0d72678f9068646819be2e4009a7a816c;p=sbcl.git diff --git a/tests/pathnames.impure.lisp b/tests/pathnames.impure.lisp index e6b5d10..a46c6e0 100644 --- a/tests/pathnames.impure.lisp +++ b/tests/pathnames.impure.lisp @@ -400,5 +400,61 @@ (assert (eq :false (if (ignore-errors (merge-pathnames sb-sys::*tty*)) :true :false))) +;;; This used to return "quux/bar.lisp" +(assert (equal #p"quux/bar.fasl" + (let ((*default-pathname-defaults* #p"quux/")) + (compile-file-pathname "foo.lisp" :output-file "bar")))) +(assert (equal #p"quux/bar.fasl" + (let ((*default-pathname-defaults* #p"quux/")) + (compile-file-pathname "bar.lisp")))) +(enough-namestring #p".a*") + + +(assert (eq 99 + (pathname-version + (translate-pathname + (make-pathname :name "foo" :type "bar" :version 99) + (make-pathname :name :wild :type :wild :version :wild) + (make-pathname :name :wild :type :wild :version :wild))))) + +(assert (eq 99 + (pathname-version + (translate-pathname + (make-pathname :name "foo" :type "bar" :version 99) + (make-pathname :name :wild :type :wild :version :wild) + (make-pathname :name :wild :type :wild :version nil))))) + +;;; enough-namestring relative to root +(assert (equal "foo" (enough-namestring "/foo" "/"))) + +;;; Check the handling of NIL, :UNSPECIFIC, the empty string, and +;;; non-NIL strings in NATIVE-NAMESTRING implementations. Revised by +;;; RMK 2007-11-28, attempting to preserve the apparent intended +;;; denotation of SBCL's then-current pathname implementation. +(assert (equal + (loop with components = (list nil :unspecific "" "a") + for name in components + appending (loop for type in components + as pathname = (make-pathname + #+win32 "C" + :directory '(:absolute "tmp") + :name name :type type) + collect (ignore-errors + (sb-ext:native-namestring pathname)))) + #-win32 + #|type NIL :UNSPECIFIC "" "a" |# +#|name |# +#|NIL |# '("/tmp/" "/tmp/" NIL NIL +#|:UNSPECIFIC|# "/tmp/" "/tmp/" NIL NIL +#|"" |# "/tmp/" "/tmp/" "/tmp/." "/tmp/.a" +#|"a" |# "/tmp/a" "/tmp/a" "/tmp/a." "/tmp/a.a") + + #+win32 + #|type NIL :UNSPECIFIC "" "a" |# +#|name |# +#|NIL |# '("C:\\tmp\\" "C:\\tmp\\" NIL NIL +#|:UNSPECIFIC|# "C:\\tmp\\" "C:\\tmp\\" NIL NIL +#|"" |# "C:\\tmp\\" "C:\\tmp\\" "C:\\tmp\\." "C:\\tmp\\.a" +#|"a" |# "C:\\tmp\\a" "C:\\tmp\\a" "C:\\tmp\\a." "C:\\tmp\\a.a"))) ;;;; success