X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fpathnames.impure.lisp;h=a46c6e0d225cb6d72fc01ca3c0218378d8b48f38;hb=e7ef1082bd3e7f3851de9d90c5dbddf226a71382;hp=c81cb5a221e4eaa02c1c9c8ec017148a93b0f58f;hpb=c6ca3162c8abd6ae9cce613f5df5778405806e60;p=sbcl.git diff --git a/tests/pathnames.impure.lisp b/tests/pathnames.impure.lisp index c81cb5a..a46c6e0 100644 --- a/tests/pathnames.impure.lisp +++ b/tests/pathnames.impure.lisp @@ -427,5 +427,34 @@ ;;; 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