diff --git a/ansi-tests/dispatch-macro-characters.lsp b/ansi-tests/dispatch-macro-characters.lsp new file mode 100644 index 0000000000000000000000000000000000000000..eecfadabe875979e6253eb8b06100871e83ac5fb --- /dev/null +++ b/ansi-tests/dispatch-macro-characters.lsp @@ -0,0 +1,78 @@ +;-*- Mode: Lisp -*- +;;;; Author: Paul Dietz +;;;; Created: Sat Feb 5 11:42:24 2005 +;;;; Contains: Tests of dispatch macro character functions + +(in-package :cl-test) + +(deftest make-dispatch-macro-character.1 + (with-standard-io-syntax + (let* ((*readtable* (copy-readtable nil)) + (*package* (find-package "CL-TEST"))) + (values + (make-dispatch-macro-character #\!) + (read-from-string "123!")))) + t 123) + +(deftest make-dispatch-macro-character.2 + (with-standard-io-syntax + (let* ((*readtable* (copy-readtable nil)) + (*package* (find-package "CL-TEST"))) + (values + (make-dispatch-macro-character #\! t) + (read-from-string "123!")))) + t 123!) + +(deftest make-dispatch-macro-character.3 + (with-standard-io-syntax + (let* ((*readtable* (copy-readtable nil)) + (*package* (find-package "CL-TEST"))) + (values + (make-dispatch-macro-character #\!) + (loop for c across +standard-chars+ + for result = (handler-case + (read-from-string (coerce (list #\! c #\X) 'string)) + (reader-error (c) :good) + (error (c) :bad)) + unless (eql result :good) + collect (list c result))))) + t nil) + +(deftest make-dispatch-macro-character.4 + (with-standard-io-syntax + (let* ((rt (copy-readtable nil)) + (*package* (find-package "CL-TEST"))) + (values + (make-dispatch-macro-character #\! t rt) + (read-from-string "!") + (let ((*readtable* rt)) + (read-from-string "123!"))))) + t ! 123!) + +(deftest make-dispatch-macro-character.error.1 + (let ((*readtable* (copy-readtable nil))) + (signals-error (make-dispatch-macro-character) program-error)) + t) + +(deftest make-dispatch-macro-character.error.2 + (let ((*readtable* (copy-readtable nil))) + (signals-error (make-dispatch-macro-character #\! t *readtable* nil) + program-error)) + t) + +;;; GET-DISPATCH-MACRO-CHARACTER + +(deftest get-dispatch-macro-character.1 + (loop for c across +standard-chars+ + when (and (not (eql c #\#)) + (handler-case + (list + (get-dispatch-macro-character c #\a) + c) + (error (cnd) nil))) + collect it) + nil) + + + + \ No newline at end of file