diff --git a/ansi-tests/load-printer.lsp b/ansi-tests/load-printer.lsp index 6f354d9cf86879c35e0e7e13f16d23751af14b1d..5acb9e871fb9907fa482c5ba5f94b8f33753b4a1 100644 --- a/ansi-tests/load-printer.lsp +++ b/ansi-tests/load-printer.lsp @@ -21,4 +21,5 @@ (load "print-vector.lsp") (load "print-array.lsp") (load "print-random-state.lsp") -(load "print-pathname.lsp") \ No newline at end of file +(load "print-pathname.lsp") +(load "print-structure.lsp") diff --git a/ansi-tests/print-structure.lsp b/ansi-tests/print-structure.lsp new file mode 100644 index 0000000000000000000000000000000000000000..0f68fdfb65ae5f04e7384d228c089838e45253b0 --- /dev/null +++ b/ansi-tests/print-structure.lsp @@ -0,0 +1,36 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Wed May 26 22:19:52 2004 +;;;; Contains: Printing tests for structures + +(in-package :cl-test) + +(compile-and-load "printer-aux.lsp") + +(defstruct print-struct-1 + foo bar) + +(deftest print-structure.1 + (let ((s (make-print-struct-1 :foo 1 :bar 2))) + (with-standard-io-syntax + (let ((*package* (find-package "CL-TEST"))) + (let ((str (write-to-string s :readably nil :case :upcase :escape nil))) + (assert (string= (subseq str 0 3) "#S(")) + (let ((vals (read-from-string (subseq str 2)))) + (assert (listp vals)) + (assert (= (length vals) 5)) + (assert (eq (car vals) 'print-struct-1)) + (assert (symbolp (cadr vals))) + (assert (symbolp (cadddr vals))) + (cond + ((string= (symbol-name (cadr vals)) "FOO") + (assert (string= (symbol-name (cadddr vals)) "BAR")) + (assert (= (caddr vals) 1)) + (assert (= (car (cddddr vals)) 2))) + (t + (assert (string= (symbol-name (cadr vals)) "BAR")) + (assert (string= (symbol-name (cadddr vals)) "FOO")) + (assert (= (caddr vals) 2)) + (assert (= (car (cddddr vals)) 1)))) + nil))))) + nil)