From: Richard M K. <kr...@us...> - 2007-11-30 02:16:31
|
Update of /cvsroot/sbcl/sbcl/tests In directory sc8-pr-cvs8.sourceforge.net:/tmp/cvs-serv25628/tests Modified Files: pathnames.impure.lisp Log Message: 1.0.12.6: Removing UNIX-NAMESTRING, part 1 * Get NATIVE-NAMESTRING to do all and only the desired things for all accepted non-wild NAME and TYPE components. Add a few tests for these cases. * Add new user-visible features to PARSE-NATIVE-NAMESTRING and NATIVE-NAMESTRING for parsing/unparsing things "as files" or "as directories"; these are convenient for use with SB-POSIX, and will be handy in a few places in SBCL's internals, too. Index: pathnames.impure.lisp =================================================================== RCS file: /cvsroot/sbcl/sbcl/tests/pathnames.impure.lisp,v retrieving revision 1.37 retrieving revision 1.38 diff -u -d -r1.37 -r1.38 --- pathnames.impure.lisp 3 Dec 2006 19:53:52 -0000 1.37 +++ pathnames.impure.lisp 30 Nov 2007 02:16:27 -0000 1.38 @@ -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 |