X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=tests%2Ffilesys.pure.lisp;h=3e7ab3dcf459615912716460cab9e79267807594;hb=3a10f894e7867fa2c27a3af05380abc3247f728d;hp=559e0fd3fdc72f16d8e184b998bb808d19a102c8;hpb=1dc58ed504bd2de24fd87f9267c97c4a7d90ba3c;p=sbcl.git diff --git a/tests/filesys.pure.lisp b/tests/filesys.pure.lisp index 559e0fd..3e7ab3d 100644 --- a/tests/filesys.pure.lisp +++ b/tests/filesys.pure.lisp @@ -36,6 +36,38 @@ (namestring pathname))) dir))) +;;; Set *default-pathname-defaults* to something other than the unix +;;; cwd, to catch functions which access the filesystem without +;;; merging properly. We should test more functions than just OPEN +;;; here, of course + +(let ((*default-pathname-defaults* + (make-pathname :directory + (butlast + (pathname-directory *default-pathname-defaults*)) + :defaults *default-pathname-defaults*))) + ;; SBCL 0.7.1.2 failed to merge on OPEN + (with-open-file (i "tests/filesys.pure.lisp") + (assert i))) + +;;; OPEN, LOAD and friends should signal an error of type FILE-ERROR +;;; if they are fed wild pathname designators; firstly, with wild +;;; pathnames that don't correspond to any files: +(assert (typep (nth-value 1 (ignore-errors (open "non-existent*.lisp"))) + 'file-error)) +(assert (typep (nth-value 1 (ignore-errors (load "non-existent*.lisp"))) + 'file-error)) +;;; then for pathnames that correspond to precisely one: +(assert (typep (nth-value 1 (ignore-errors (open "filesys.pur*.lisp"))) + 'file-error)) +(assert (typep (nth-value 1 (ignore-errors (load "filesys.pur*.lisp"))) + 'file-error)) +;;; then for pathnames corresponding to many: +(assert (typep (nth-value 1 (ignore-errors (open "*.lisp"))) + 'file-error)) +(assert (typep (nth-value 1 (ignore-errors (load "*.lisp"))) + 'file-error)) + ;;; ANSI: FILE-LENGTH should signal an error of type TYPE-ERROR if ;;; STREAM is not a stream associated with a file. ;;;