X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Fpathnames.impure.lisp;h=bb23ae0f1adc67b51960fc33caccb9e6ba982ab0;hb=079ef9dad558ca07cb8178ef428bf738112174fa;hp=3d5c721f7974060b741a6cb7d59145c49dd2dc88;hpb=ffd0723ac8c26916d35d806e1eaad60557fb4a96;p=sbcl.git diff --git a/tests/pathnames.impure.lisp b/tests/pathnames.impure.lisp index 3d5c721..bb23ae0 100644 --- a/tests/pathnames.impure.lisp +++ b/tests/pathnames.impure.lisp @@ -309,10 +309,35 @@ (parse-namestring "SCRATCH:FOO.TXT.NEWEST") (parse-namestring "SCRATCH:FOO.TXT")))) (dolist (p pathnames) + (print p) (handler-case (let ((*print-readably* t)) (assert (equal (read-from-string (format nil "~S" p)) p))) (print-not-readable () nil)))) +;;; BUG 330: "PARSE-NAMESTRING should accept namestrings as the +;;; default argument" ...and streams as well +(assert (equal (parse-namestring "foo" nil "/") + (parse-namestring "foo" nil #P"/"))) +(let ((test "parse-namestring-test.tmp")) + (unwind-protect + (with-open-file (f test :direction :output) + ;; FIXME: This test is a bit flaky, since we only check that + ;; no error is signalled. The dilemma here is "what is the + ;; correct result when defaults is a _file_, not a + ;; directory". Currently (0.8.10.73) we get #P"foo" here (as + ;; opposed to eg. #P"/path/to/current/foo"), which is + ;; possibly mildly surprising but probably conformant. + (assert (parse-namestring "foo" nil f))) + (when (probe-file test) + (delete-file test)))) + +;;; ENOUGH-NAMESTRING should probably not fail when the namestring in +;;; question has a :RELATIVE pathname. +(assert (equal (enough-namestring #p"foo" #p"./") "foo")) + +;;; bug reported by Artem V. Andreev: :WILD not handled in unparsing +;;; directory lists. +(assert (equal (namestring #p"/tmp/*/") "/tmp/*/")) ;;;; success (quit :unix-status 104)