gca.el (tgosh.scm) の文字列テスト

(define (hello)
  (display "Hello World!\n  Scheme"))

上記のような手続きを用意。その後 eval。

(hello) ; C-x C-e で eval
Hello World!
  Scheme ;; インデント
=>
#<undef>


ここで make-test C-t すると

(test* "Hello World!\n  Scheme" (with-output-to-string (lambda () (hello))))


と current-output-port への出力を文字列 port への出力に変換しテストを生成してくれる。
すげー便利だし賢い!。


さらにもう少しがんばって

(test*
  "Hello World!
    Scheme"
  (with-output-to-string (lambda () (hello))))

のように改行させると、テストがとても見やすくなりそう。(pretty-printer を利用したテストの時にとても重宝しそう)
tgosh.scm をいじれば出来そうな気がしたのですが挫折した。


あまり関係ないですが run-scheme は cmuscheme.el で定義されているので今度読んでみよう。