From 37798e4b17816739ca8cdaec5cf9a1c2bbdcbc2d Mon Sep 17 00:00:00 2001
From: pfdietz <pfdietz@localhost>
Date: Sun, 11 Sep 2005 19:02:37 +0000
Subject: [PATCH] Add check that the printing of unreadable objects doesn't
 change due to an inopportune GC during the test, in lisps where the gc can
 move an object and change what is printed.

---
 ansi-tests/format-b.lsp | 8 +++++---
 ansi-tests/format-d.lsp | 7 ++++---
 ansi-tests/format-o.lsp | 8 +++++---
 ansi-tests/format-x.lsp | 9 ++++++---
 4 files changed, 20 insertions(+), 12 deletions(-)

diff --git a/ansi-tests/format-b.lsp b/ansi-tests/format-b.lsp
index 94917603..fb116da7 100644
--- a/ansi-tests/format-b.lsp
+++ b/ansi-tests/format-b.lsp
@@ -401,10 +401,12 @@
 (deftest format.b.21
   (let ((fn (formatter "~:@b")))
     (loop for x in *mini-universe*
-	  for s1 = (format nil "~@:B" x)
-	  for s2 = (let ((*print-base* 2)) (format nil "~A" x))
+	  for s1 = (let ((*print-base* 2)) (format nil "~A" x))
+	  for s2 = (format nil "~@:B" x)
 	  for s3 = (formatter-call-to-string fn x)
-	  unless (or (integerp x) (and (string= s1 s2) (string= s1 s3)))
+	  for s4 = (let ((*print-base* 2)) (format nil "~A" x))
+	  unless (or (integerp x) (and (string= s1 s2) (string= s1 s3))
+		     (string/= s1 s4))
 	  collect (list x s1 s2 s3)))
   nil)
 
diff --git a/ansi-tests/format-d.lsp b/ansi-tests/format-d.lsp
index 0f9655e0..8cee9db0 100644
--- a/ansi-tests/format-d.lsp
+++ b/ansi-tests/format-d.lsp
@@ -438,9 +438,10 @@
 
 (deftest format.d.21
   (loop for x in *mini-universe*
-	for s1 = (format nil "~@:d" x)
-	for s2 = (format nil "~A" x)
-	unless (or (integerp x) (string= s1 s2))
+	for s1 = (format nil "~A" x)
+	for s2 = (format nil "~@:d" x)
+        for s3 = (format nil "~A" x)
+	unless (or (integerp x) (string= s1 s2) (not (string= s1 s3)))
 	collect (list x s1 s2))
   nil)
 
diff --git a/ansi-tests/format-o.lsp b/ansi-tests/format-o.lsp
index 7a98d247..60176aeb 100644
--- a/ansi-tests/format-o.lsp
+++ b/ansi-tests/format-o.lsp
@@ -404,10 +404,12 @@
 (deftest format.o.21
   (let ((fn (formatter "~:@o")))
     (loop for x in *mini-universe*
-	  for s1 = (format nil "~@:o" x)
-	  for s2 = (let ((*print-base* 8)) (format nil "~A" x))
+	  for s1 = (let ((*print-base* 8)) (format nil "~A" x))
+	  for s2 = (format nil "~@:o" x)
 	  for s3 = (formatter-call-to-string fn x)
-	  unless (or (integerp x) (and (string= s1 s2) (string= s2 s3)))
+	  for s4 = (let ((*print-base* 8)) (format nil "~A" x))
+	  unless (or (integerp x) (and (string= s1 s2) (string= s2 s3))
+		     (string/= s1 s4))
 	  collect (list x s1 s2 s3)))
   nil)
 
diff --git a/ansi-tests/format-x.lsp b/ansi-tests/format-x.lsp
index 83fe5f68..2002b2ee 100644
--- a/ansi-tests/format-x.lsp
+++ b/ansi-tests/format-x.lsp
@@ -407,10 +407,13 @@
 (deftest format.x.21
   (let ((fn (formatter "~:@x")))
     (loop for x in *mini-universe*
-	  for s1 = (format nil "~@:x" x)
-	  for s2 = (let ((*print-base* 16)) (format nil "~A" x))
+	  for s1 = (let ((*print-base* 16)) (format nil "~A" x))
+	  for s2 = (format nil "~@:x" x)
 	  for s3 = (formatter-call-to-string fn x)
-	  unless (or (integerp x) (and (string= s1 s2) (string= s2 s3)))
+	  for s4 = (let ((*print-base* 16)) (format nil "~A" x))
+	  unless (or (string/= s1 s4)
+		     (integerp x)
+		     (and (string= s1 s2) (string= s2 s3)))
 	  collect (list x s1 s2 s3)))
   nil)
 
-- 
GitLab