gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] Patch for RT to pass its own test suite, use own package


From: Camm Maguire
Subject: Re: [Gcl-devel] Patch for RT to pass its own test suite, use own package for tests
Date: 18 Dec 2007 11:08:43 -0500
User-agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.2

Greetings, and thanks for your submission!  I am testing it now with
the gcl ansi test suite, and if all is well, will commit it into cvs
head shortly.

Take care,

"Joseph Oswald" <address@hidden> writes:

> In my own work with RT, I was frustrated by its inability to pass it's
> own test suite, failing approximately half of its tests.
> Also, I felt bad about it populating the USER package.
> 
> Attached are two diffs, correcting these problems. I apologize if this
> is not the proper submission style---I'm not very experienced in this
> open-source contribution thing.
> 
> --Joe Oswald
> address@hidden
> 
> *** rt-package.lsp    2007/12/13 18:37:38     1.1
> --- rt-package.lsp    2007/12/13 18:38:01
> ***************
> *** 36,41 ****
> --- 36,42 ----
>        (export (mapcar #'intern
>                    (mapcar #'symbol-name
>                            '(#:*compile-tests*
> +                            #:*do-tests-when-defined*
>                              #:*test*
>                              #:continue-testing
>                              #:deftest
> 
> *** rt-test.lsp       2007/12/13 17:27:01     1.1
> --- rt-test.lsp       2007/12/13 18:43:23     1.3
> ***************
> *** 25,53 ****
>   ;RT regression tester to test itself.  See the documentation of RT for
>   ;a discusion of how to use this file.
>   
> ! (in-package :user)
>   ;; (require "RT")
> ! (use-package :regression-test)
>   
>   (defmacro setup (&rest body)
>     `(do-setup '(progn ., body)))
>   
>   (defun do-setup (form)
> !   (let ((*test* nil)
> !     (*do-tests-when-defined* nil)
> !     (regression-test::*entries* (list nil))
> !     (regression-test::*in-test* nil)
> !     (regression-test::*debug* t)
> !     result)
> !     (deftest t1 4 4)
> !     (deftest (t 2) 4 3)
> !     (values-list
> !       (cons (normalize
>             (with-output-to-string (*standard-output*)
>               (setq result
>                     (multiple-value-list
>                       (catch 'regression-test::*debug* (eval form))))))
> !         result))))
>   
>   (defun normalize (string)
>     (with-input-from-string (s string)
> --- 25,62 ----
>   ;RT regression tester to test itself.  See the documentation of RT for
>   ;a discusion of how to use this file.
>   
> ! (cl:defpackage :rt-tests
> !   (:use :cl :regression-test))
> ! 
> ! (in-package :rt-tests)
>   ;; (require "RT")
> ! ;;(use-package :regression-test)
>   
>   (defmacro setup (&rest body)
>     `(do-setup '(progn ., body)))
>   
> + (defmacro with-blank-tests (&body body)
> +   `(let ((regression-test::*entries* (list nil))
> +      (regression-test::*entries-table* (make-hash-table :test #'equal))
> +      (*test* nil)
> +      (regression-test::*in-test* nil))
> +     (let ((regression-test::*entries-tail* regression-test::*entries*))
> +       ,@body)))
> + 
>   (defun do-setup (form)
> !   (with-blank-tests
> !       (let ((*do-tests-when-defined* nil)
> !         (regression-test::*debug* t)
> !         result)
> !     (deftest t1 4 4)
> !     (deftest (t 2) 4 3)
> !     (values-list
> !      (cons (normalize
>             (with-output-to-string (*standard-output*)
>               (setq result
>                     (multiple-value-list
>                       (catch 'regression-test::*debug* (eval form))))))
> !         result)))))
>   
>   (defun normalize (string)
>     (with-input-from-string (s string)
> ***************
> *** 86,92 ****
>   
>   (deftest deftest-1
>     (setup (deftest t1 3 3) (values (get-test 't1) *test* (pending-tests)))
> !   ("Redefining test T1") (t1 3 3) t1 (t1 (t 2)))
>   (deftest deftest-2
>     (setup (deftest (t 2) 3 3) (get-test '(t 2)))
>     ("Redefining test (T 2)") ((t 2) 3 3))
> --- 95,101 ----
>   
>   (deftest deftest-1
>     (setup (deftest t1 3 3) (values (get-test 't1) *test* (pending-tests)))
> !   ("Redefining test RT-TESTS::T1") (t1 3 3) t1 (t1 (t 2)))
>   (deftest deftest-2
>     (setup (deftest (t 2) 3 3) (get-test '(t 2)))
>     ("Redefining test (T 2)") ((t 2) 3 3))
> ***************
> *** 95,101 ****
>     () (2 3 3) 2 (t1 (t 2) 2))
>   (deftest deftest-4
>     (setup (let ((*do-tests-when-defined* t)) (deftest (temp) 4 3)))
> !   ("Test (TEMP) failed"
>      "Form: 4"
>      "Expected value: 3"
>      "Actual value: 4.")
> --- 104,110 ----
>     () (2 3 3) 2 (t1 (t 2) 2))
>   (deftest deftest-4
>     (setup (let ((*do-tests-when-defined* t)) (deftest (temp) 4 3)))
> !   ("Test (RT-TESTS::TEMP) failed"
>      "Form: 4"
>      "Expected value: 3"
>      "Actual value: 4.")
> ***************
> *** 128,134 ****
>     () (t3 1 1))
>   (deftest get-test-5 
>     (setup (get-test 't0))
> !   ("No test with name T0.") nil)
>   
>   (deftest rem-test-1
>     (setup (values (rem-test 't1) (pending-tests)))
> --- 137,143 ----
>     () (t3 1 1))
>   (deftest get-test-5 
>     (setup (get-test 't0))
> !   ("No test with name RT-TESTS::T0.") nil)
>   
>   (deftest rem-test-1
>     (setup (values (rem-test 't1) (pending-tests)))
> ***************
> *** 157,163 ****
>     (setup (let ((*print-case* :downcase))
>          (values (do-tests) (continue-testing) (do-tests))))
>     ("Doing 2 pending tests of 2 tests total."
> !    " T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
> --- 166,172 ----
>     (setup (let ((*print-case* :downcase))
>          (values (do-tests) (continue-testing) (do-tests))))
>     ("Doing 2 pending tests of 2 tests total."
> !    " RT-TESTS::T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
> ***************
> *** 170,176 ****
>      "Actual value: 4."
>      "1 out of 2 total tests failed: (T 2)."
>      "Doing 2 pending tests of 2 tests total."
> !    " T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
> --- 179,185 ----
>      "Actual value: 4."
>      "1 out of 2 total tests failed: (T 2)."
>      "Doing 2 pending tests of 2 tests total."
> !    " RT-TESTS::T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
> ***************
> *** 185,196 ****
>        (deftest (t 2) 3 3)
>        (values (do-tests) (continue-testing) (do-tests)))
>     ("Doing 2 pending tests of 2 tests total."
> !    " T1 (T 2)"
>      "No tests failed."
>      "Doing 0 pending tests of 2 tests total."
>      "No tests failed."
>      "Doing 2 pending tests of 2 tests total."
> !    " T1 (T 2)"
>      "No tests failed.")
>     t
>     t
> --- 194,205 ----
>        (deftest (t 2) 3 3)
>        (values (do-tests) (continue-testing) (do-tests)))
>     ("Doing 2 pending tests of 2 tests total."
> !    " RT-TESTS::T1 (T 2)"
>      "No tests failed."
>      "Doing 0 pending tests of 2 tests total."
>      "No tests failed."
>      "Doing 2 pending tests of 2 tests total."
> !    " RT-TESTS::T1 (T 2)"
>      "No tests failed.")
>     t
>     t
> ***************
> *** 204,223 ****
>     t
>     t)
>   (deftest do-tests-4
> !   (setup (normalize (with-output-to-string (s) (do-tests s))))
>     ()
>     ("Doing 2 pending tests of 2 tests total."
> !    " T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
>      "Actual value: 4."
>      "1 out of 2 total tests failed: (T 2)."))
>   (deftest do-tests-5
> !   (setup (with-temporary-file s (do-tests s)))
>     ()
>     ("Doing 2 pending tests of 2 tests total."
> !    " T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
> --- 213,232 ----
>     t
>     t)
>   (deftest do-tests-4
> !   (setup (normalize (with-output-to-string (s) (do-tests :out s))))
>     ()
>     ("Doing 2 pending tests of 2 tests total."
> !    " RT-TESTS::T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
>      "Actual value: 4."
>      "1 out of 2 total tests failed: (T 2)."))
>   (deftest do-tests-5
> !   (setup (with-temporary-file s (do-tests :out s)))
>     ()
>     ("Doing 2 pending tests of 2 tests total."
> !    " RT-TESTS::T1"
>      "Test (T 2) failed"
>      "Form: 4"
>      "Expected value: 3"
> _______________________________________________
> Gcl-devel mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/gcl-devel

-- 
Camm Maguire                                            address@hidden
==========================================================================
"The earth is but one country, and mankind its citizens."  --  Baha'u'llah




reply via email to

[Prev in Thread] Current Thread [Next in Thread]