Commit Diff


commit - 115e7129c758baacd1c10907ea4e0db65f285559
commit + 8dac53a9b38c7f5c8a472d48d316f930f0030acb
blob - 7c17fa9db0589c218a404ab86cfb118d788028a2
blob + 6b6ac105fedf4adfdce9659ad79a8d1b979c8f6e
--- regress/lisp/9p-test/package.lisp
+++ regress/lisp/9p-test/package.lisp
@@ -58,6 +58,7 @@
    :+nwname-clone+
    :*buffer-size*
    :*messages-sent*
+   :9p-error
    :read-all-pending-message
    :close-client
    :encode-string
blob - f60d1d96d99aee286466e8342a83bbed15872627
blob + f6253e8d717fdc51084b682250af55c9513bd69f
--- regress/lisp/9p-test/tests/kami-tests.lisp
+++ regress/lisp/9p-test/tests/kami-tests.lisp
@@ -179,6 +179,23 @@
     (setf (subseq expected-sequence 2 4) +remote-test-path-ovewrwrite-data+)
     (assert-equality #'string= file-sequence expected-sequence)))
 
+(defun example-write-fails (path &optional (root "/"))
+  (with-open-ssl-stream (stream
+                         socket
+                         *host*
+                         *port*
+                         *client-certificate*
+                         *certificate-key*)
+    (let* ((*messages-sent* ())
+           (*buffer-size*   256)
+           (root-fid        (mount stream root))
+           (fid             (open-path stream root-fid path :mode +create-for-read-write+)))
+      (9p-write stream fid 0 *remote-test-path-contents*)
+      (read-all-pending-message stream))))
+
+(deftest test-write-on-directory-fails ((kami-suite) (test-write))
+  (assert-condition 9p-error (example-write-fails "/")))
+
 (defun example-stat (path &optional (root "/"))
   (with-open-ssl-stream (stream
                          socket