(in-package :cl-user) (defpackage :test-perf (:use :cl)) (in-package :test-perf) (defclass tests-group () ()) (defmacro tests-group (&rest body) (let ((symb-tests-group (gensym))) `(let ((,symb-tests-group ;;; *** make-instance (make-instance 'tests-group) )) ;;; *** unwind-protect (unwind-protect (progn ,@body) (print ,symb-tests-group) ) ))) (defmacro test-eq () `(block bloc-error (handler-bind ((error (lambda (e) (with-simple-restart (continue "Continue.") (invoke-debugger e)) ;;; *** return-from (return-from bloc-error) )))))) (defmacro test-error (error-type) ` ;;; *** handler-case (handler-case (print "hello") (,error-type (c) (declare (ignore c))) (error (c) (print c))) ) (defun tests () (tests-group (test-eq) (test-error error) (test-error error) (test-error error)) (tests-group (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq))) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq))) ;;; *** Function cut ;; ) ;; ;; (defun tests2 () (tests-group (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)))) (tests-group (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-error error) (test-error error) (test-error error) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-error error) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq)) (tests-group (test-error error) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq) (test-eq))) (tests-group (test-error error) (test-error error) (test-error error) (test-error error) (test-error error) (test-error error) (test-error error) (test-error error)))