From 1d84bb977c740e0cf7087e091fddcd8c4b27c64b Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Sun, 8 Jan 2006 20:58:07 +0000
Subject: [PATCH] Fixed open stream problem in read-sequence tests

---
 ansi-tests/read-sequence.lsp | 31 +++++++++++++++++++------------
 1 file changed, 19 insertions(+), 12 deletions(-)

diff --git a/ansi-tests/read-sequence.lsp b/ansi-tests/read-sequence.lsp
index 8b91139b..0250aac8 100644
--- a/ansi-tests/read-sequence.lsp
+++ b/ansi-tests/read-sequence.lsp
@@ -188,18 +188,25 @@
 (defmacro def-read-sequence-bv-test (name init args &rest expected)
   `(deftest ,name
      ;; Create output file
-     (let ((os (open "temp.dat" :direction :output
-		     :element-type '(unsigned-byte 8)
-		     :if-exists :supersede)))
-       (loop for i in '(0 1 1 0 0 1 1 0 1 0 1 1 1 0)
-	     do (write-byte i os))
-       (close os)
-       (let ((is (open "temp.dat" :direction :input
-		       :element-type '(unsigned-byte 8)))
-	     (bv (copy-seq ,init)))
-	 (values
-	  (read-sequence bv is ,@args)
-	  bv)))
+     (progn
+       (let (os)
+	 (unwind-protect
+	     (progn
+	       (setq os (open "temp.dat" :direction :output
+			      :element-type '(unsigned-byte 8)
+			      :if-exists :supersede))
+	       (loop for i in '(0 1 1 0 0 1 1 0 1 0 1 1 1 0)
+		     do (write-byte i os)))
+	   (when os (close os))))
+       (let (is (bv (copy-seq ,init)))
+	 (unwind-protect
+	     (progn
+	       (setq is (open "temp.dat" :direction :input
+			      :element-type '(unsigned-byte 8)))
+	       (values
+		(read-sequence bv is ,@args)
+		bv))
+	   (when is (close is)))))
      ,@expected))
      
 (def-read-sequence-bv-test read-sequence.bv.1 #*00000000000000 ()
-- 
GitLab