guile-user
[Top][All Lists]
Advanced

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

SRFI-64 implementation for Guile 2.0


From: Sunjoong Lee
Subject: SRFI-64 implementation for Guile 2.0
Date: Fri, 13 Apr 2012 06:53:57 +0900

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
   $

Attachment: srfi-64-guile.tar.gz
Description: GNU Zip compressed data


reply via email to

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