;-*- 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)