diff --git a/test/asdf-pathname-test.script b/test/asdf-pathname-test.script index aa52de4ee794a1992e7a0a3184999ed45b8d1783..ba6d4014a8e97d055ac3669b07b96199c8ab3195 100644 --- a/test/asdf-pathname-test.script +++ b/test/asdf-pathname-test.script @@ -418,6 +418,34 @@ (setf (logical-pathname-translations "ASDFTEST") nil)) (clear-system "test-system"))) +(defun test-pathname-parsing () + #-(or allegro clisp clozure ecl lispworks mkcl sbcl cmu) + (progn + ;; FIXME: unable to get DBG to load in this file. [2014/11/30:rpg] + (format t "Can't test pathname parsing: this lisp lacks SETENV support.") + t) + #+(or allegro clisp clozure ecl lispworks mkcl sbcl cmu) + (let ((old-config (uiop:getenvp "XDG_CONFIG_DIRS")) + (old-home-config (uiop:getenvp "XDG_CONFIG_HOME"))) + (unwind-protect + (progn + (setf (uiop:getenv "XDG_CONFIG_DIRS") "/foo:prismatic") + (multiple-value-bind (ret err) + (ignore-errors + (uiop:user-configuration-directories)) + (assert (and (not ret) err))) + (setf (uiop:getenv "XDG_CONFIG_DIRS") "/foo:") + (setf (uiop:getenv "XDG_CONFIG_HOME") "") + (multiple-value-bind (ret err) + (ignore-errors + (uiop:user-configuration-directories)) + (assert (not err)) + (assert (= (length ret) 2)))) + (when old-config + (setf (uiop:getenv "XDG_CONFIG_DIRS") old-config)) + (when old-home-config + (setf (uiop:getenv "XDG_CONFIG_HOME") old-home-config))))) + (asdf:initialize-source-registry) (format t "source registry: ~S~%" (hash-table->alist asdf::*source-registry*)) (asdf:initialize-output-translations) @@ -439,3 +467,5 @@ #-gcl (assert (test-component-pathnames :delete-host t :support-string-pathnames nil)) + +(test-pathname-parsing)