From 1f65ff129331a5eda0b303f8278042908254e955 Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Sun, 26 Sep 2004 05:33:22 +0000
Subject: [PATCH] More corner cases, error cases.

---
 ansi-tests/make-sequence.lsp | 17 +++++++++++++----
 ansi-tests/map.lsp           | 26 ++++++++++++++++++++++----
 2 files changed, 35 insertions(+), 8 deletions(-)

diff --git a/ansi-tests/make-sequence.lsp b/ansi-tests/make-sequence.lsp
index b603f7cd..64dde03e 100644
--- a/ansi-tests/make-sequence.lsp
+++ b/ansi-tests/make-sequence.lsp
@@ -245,6 +245,9 @@
   (make-sequence '(simple-vector) 10 :initial-element nil)
   #(nil nil nil nil nil nil nil nil nil nil))
 
+(deftest make-sequence.36
+  (make-sequence '(vector * *) 10 :initial-element nil)
+  #(nil nil nil nil nil nil nil nil nil nil))
 
 ;;; Keyword tests
 
@@ -276,8 +279,8 @@
 ;;; Tests for errors
 
 (deftest make-sequence.error.1
-  (signals-error (make-sequence 'symbol 10) type-error)
-  t)
+  (signals-error-always (make-sequence 'symbol 10) type-error)
+  t t)
 
 (deftest make-sequence.error.2
   (signals-error (make-sequence 'null 1) type-error)
@@ -330,8 +333,14 @@
   t)
 
 (deftest make-sequence.error.14
-  (signals-error (locally (make-sequence 'symbol 10) t)
-		 type-error)
+  (signals-error-always (locally (make-sequence 'symbol 10) t)
+			type-error)
+  t t)
+
+(deftest make-sequence.error.15
+  (if (subtypep '(or (vector bit) (vector t)) 'vector)
+      (signals-error (make-sequence '(or (vector bit) (vector t)) 10 :initial-element 0) type-error)
+    t)
   t)
 
 ;;; Order of execution tests
diff --git a/ansi-tests/map.lsp b/ansi-tests/map.lsp
index c54388d1..ff1ecfa3 100644
--- a/ansi-tests/map.lsp
+++ b/ansi-tests/map.lsp
@@ -207,13 +207,18 @@
   (map '(simple-base-string 3) #'identity '(#\a #\b #\c))
   "abc")
 
+(deftest map.48
+  (let ((type '(or (vector t 10) (vector t 5))))
+    (if (subtypep type 'vector)
+	(equalpt (map type #'identity '(1 2 3 4 5)) #(1 2 3 4 5))
+      t))
+  t)
+
 ;;; Error tests
 
 (deftest map.error.1
-  (handler-case (progn (proclaim '(optimize (safety 3)))
-		       (eval '(map 'symbol #'identity '(a b c))))
-		(error () :caught))
-  :caught)
+  (signals-error-always (map 'symbol #'identity '(a b c)) type-error)
+  t t)
 
 (deftest map.error.2
   (signals-error (map '(vector * 8) #'identity '(a b c)) type-error)
@@ -248,6 +253,19 @@
   (signals-error (map 'list #'car '(a b c d)) type-error)
   t)
 
+(deftest map.error.10
+  (let ((type '(or (vector bit) (vector t))))
+    (if (subtypep type 'vector)
+	(eval `(signals-error-always (map ',type #'identity '(1 0 1)) error))
+      (values t t)))
+  t t)
+
+(deftest map.error.11
+  (let ((type '(or (vector t 5) (vector t 10))))
+    (if (subtypep type 'vector)
+	(eval `(signals-error (map ',type #'identity '(1 2 3 4 5 6)) type-error))
+      t))
+  t)
 
 ;;; Test mapping on arrays with fill pointers
 
-- 
GitLab