Hello, world! :) I'm a newbie of scheme. I'd heard the testing framework SRFI-64 but failed to use it on Guile 2.0. After attempt to solve this problem, I made a guile module to pass the test suite for SRFI-64 by Donovan Kolbly.
-- 1. srfi/srfi-64.scm is a SRFI-64 implementation for Guile 2.0. srfi-64-test.scm is a test suite for SRFI-64 itself by Donovan Kolbly. $ ls -RF .: README srfi/ srfi-64-test.scm ./srfi: srfi-64.scm $ 2. srfi/srfi-64.scm provide the srfi-64 module for Guile. $ guile -L . --use-srfi=64 srfi-64-test.scm %%%% Starting test SRFI 64 - Meta-Test Suite (Writing full log to "SRFI 64 - Meta-Test Suite.log") # of expected passes 51 # of expected failures 2 $ ls -F README SRFI 64 - Meta-Test Suite.log srfi/ srfi-64-test.scm $ 3. Somethings were changed: 1) test-log-to-file is a parameter object. 2) test-on-test-end-simple and test-on-final-simple have a return value. 3) and so on. Example of log to another file: $ guile -L `pwd` scheme@(guile-user)> (use-modules (srfi srfi-64)) scheme@(guile-user)> (test-log-to-file (open-output-file "my-log.log")) scheme@(guile-user)> (load "srfi-64-test.scm") %%%% Starting test SRFI 64 - Meta-Test Suite # of expected passes 51 # of expected failures 2 $1 = (51 2 0 0 0) scheme@(guile-user)> (close-output-port (test-log-to-file)) scheme@(guile-user)> ,q $ Contents of log files are same: $ ls -F README SRFI 64 - Meta-Test Suite.log my-log.log srfi/ srfi-64-test.scm $ diff SRFI\ 64\ -\ Meta-Test\ Suite.log my-log.log $ rm SRFI\ 64\ -\ Meta-Test\ Suite.log my-log.log $ ls -F README srfi/ srfi-64-test.scm $ Example of not log: $ guile -L `pwd` scheme@(guile-user)> (use-modules (srfi srfi-64)) scheme@(guile-user)> (test-log-to-file #f) scheme@(guile-user)> (load "srfi-64-test.scm") %%%% Starting test SRFI 64 - Meta-Test Suite # of expected passes 51 # of expected failures 2 $1 = (51 2 0 0 0) scheme@(guile-user)> ,q $ The log file were not generated: $ ls -F README srfi/ srfi-64-test.scm $ Example in Guile interactive mode: $ guile -L `pwd` scheme@(guile-user)> (use-modules (srfi srfi-64)) scheme@(guile-user)> (test-log-to-file #f) scheme@(guile-user)> (test-begin "vec-test") %%%% Starting test vec-test $1 = ("vec-test") scheme@(guile-user)> (define v (make-vector 5 99)) scheme@(guile-user)> (test-assert (vector? v)) $2 = pass scheme@(guile-user)> (test-eqv 99 (vector-ref v 2)) $3 = pass scheme@(guile-user)> (vector-set! v 2 7) scheme@(guile-user)> (test-eqv 7 (vector-ref v 2)) $4 = pass scheme@(guile-user)> (test-eqv 8 (vector-ref v 2)) $5 = fail scheme@(guile-user)> (test-end "vec-test") # of expected passes 3 # of unexpected failures 1 $6 = (3 0 0 1 0) scheme@(guile-user)> ,q $
srfi-64-guile.tar.gz
Description: GNU Zip compressed data