From b47a9f8e5a729162de8b31f155ddd6ff9cb705c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Le=20Barbier?= Date: Wed, 9 Aug 2023 07:05:38 +0200 Subject: [PATCH] Validate that assertion results can be described --- src/result.lisp | 1 + testsuite/result.lisp | 35 ++++++++++++++++++++++++----------- 2 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/result.lisp b/src/result.lisp index 7149628..25d14f8 100644 --- a/src/result.lisp +++ b/src/result.lisp @@ -21,6 +21,7 @@ (defclass result nil ((path :initarg :path + :initform nil :documentation "The path of the result in the test hierarchy. This is the stack of preceding testcases in the test hierarchy.")) (:documentation "The abstract class of testcase results.")) diff --git a/testsuite/result.lisp b/testsuite/result.lisp index b1a6769..a8ac17b 100644 --- a/testsuite/result.lisp +++ b/testsuite/result.lisp @@ -13,14 +13,14 @@ (in-package #:org.melusina.confidence/testsuite) -(defun make-assertion-success-example () +(defun make-some-assertion-success () (make-instance 'confidence::assertion-success :name 'confidence:assert-t :argument-values '(t) :argument-names '(expr) :form '(confidence:assert-t t))) -(defun make-assertion-failure-example () +(defun make-some-assertion-failure () (make-instance 'confidence::assertion-failure :name 'confidence:assert-t :argument-values '(nil) @@ -28,7 +28,7 @@ :form '(confidence:assert-t nil) :description "The assertion (ASSERT-T EXPR) is true, iff EXPR is T.")) -(defun make-assertion-condition-example () +(defun make-some-assertion-condition () (make-instance 'confidence::assertion-condition :name 'confidence:assert-t :argument-values nil @@ -36,20 +36,33 @@ :form '(confidence:assert-t (error "Some error")) :condition (make-instance 'simple-error :format-control "Some error"))) -(defun make-testcase-result-example () +(defun make-some-testcase-result () (make-instance 'confidence::testcase-result - :name 'make-testcase-result-example + :name 'make-some-testcase-result :argument-values nil :argument-names nil :results (list - (make-assertion-success-example) - (make-assertion-failure-example) - (make-assertion-condition-example)))) + (make-some-assertion-success) + (make-some-assertion-failure) + (make-some-assertion-condition)))) -(define-testcase validate-result () - (assert-eq 3 (slot-value (make-testcase-result-example) 'confidence::total))) +(define-testcase validate-result-can-be-described () + (loop :for make-some-result + :in '(make-some-assertion-success + make-some-assertion-failure + make-some-assertion-condition + make-some-testcase-result) + :do + (assert-string-match + (with-output-to-string (buffer) + (describe (funcall make-some-result) buffer)) + "*Name: *"))) + +(define-testcase validate-result-total () + (assert-eq 3 (slot-value (make-some-testcase-result) 'confidence::total))) (define-testcase testsuite-result () - (validate-result)) + (validate-result-can-be-described) + (validate-result-total)) ;;;; End of file `result.lisp'