In aliencomp.c #+(and ppc darwin) should be #!+(and ppc darwin), which
[sbcl.git] / tests / pathnames.impure.lisp
index b4a9af5..ae1745f 100644 (file)
 ;;; bug reported by Artem V. Andreev: :WILD not handled in unparsing
 ;;; directory lists.
 (assert (equal (namestring #p"/tmp/*/") "/tmp/*/"))
+
+;;; Printing of pathnames; see CLHS 22.1.3.1. This section was started
+;;; to confirm that pathnames are printed as their namestrings under
+;;; :escape nil :readably nil.
+(loop for (pathname expected . vars) in
+      `((#p"/foo" "#P\"/foo\"")
+        (#p"/foo" "#P\"/foo\"" :readably nil)
+        (#p"/foo" "#P\"/foo\"" :escape nil)
+        (#p"/foo" "/foo"       :readably nil :escape nil))
+      for actual = (with-standard-io-syntax
+                     (apply #'write-to-string pathname vars))
+      do (assert (string= expected actual)
+                 ()
+                 "~S should be ~S, was ~S"
+                 (list* 'write-to-string pathname vars)
+                 expected
+                 actual))
+\f
+;;; we got (truename "/") wrong for about 6 months.  Check that it's
+;;; still right.
+(let ((pathname (truename "/")))
+  (assert (equalp pathname #p"/"))
+  (assert (equal (pathname-directory pathname) '(:absolute))))
+
 ;;;; success
-(quit :unix-status 104)