X-Git-Url: https://jxself.org/git/?p=8sync.git;a=blobdiff_plain;f=tests%2Futils.scm;h=e20b5b872cd04057c29e6b6af446f5ef10876293;hp=9ec2760f25b7ad887272fccdd3dc865a18850a72;hb=dc2155083a90de90e24f5341b837d4d96ce2898c;hpb=743fdb8a79e771cfbd98ed53a66a4d129f8fe2f6 diff --git a/tests/utils.scm b/tests/utils.scm index 9ec2760..e20b5b8 100644 --- a/tests/utils.scm +++ b/tests/utils.scm @@ -1,24 +1,55 @@ -;;; Totes taken from dave - -;;; srt2vtt --- SRT to WebVTT converter ;;; Copyright © 2015 David Thompson ;;; -;;; srt2vtt is free software; you can redistribute it and/or modify it -;;; under the terms of the GNU General Public License as published by -;;; the Free Software Foundation; either version 3 of the License, or -;;; (at your option) any later version. +;;; This library is free software; you can redistribute it and/or +;;; modify it under the terms of the GNU Lesser General Public +;;; License as published by the Free Software Foundation; either +;;; version 3 of the License, or (at your option) any later version. ;;; -;;; srt2vtt is distributed in the hope that it will be useful, but -;;; WITHOUT ANY WARRANTY; without even the implied warranty of +;;; This library is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -;;; General Public License for more details. +;;; Lesser General Public License for more details. ;;; -;;; You should have received a copy of the GNU General Public License -;;; along with srt2vtt. If not, see . +;;; You should have received a copy of the GNU Lesser General Public +;;; License along with this program. If not, see +;;; . + +;; Thanks for giving permission to license this under LGPL for +;; consistency, David! + (define-module (tests utils) #:use-module (srfi srfi-64) - #:export (test-exit)) + #:export (test-exit + + speak get-spoken with-fresh-speaker)) (define (test-exit) (exit (= (test-runner-fail-count (test-runner-current)) 0))) + + + + +;;; display-like helpers +;;; ==================== + +(define (speak-it) + (let ((messages '())) + (lambda* (#:optional message) + (if message (set! messages (append messages (list message)))) + messages))) + +(define %speaker (make-parameter (speak-it))) + +(define (speak message) + "Speak a message into the %speaker parameter" + ((%speaker) message)) + +(define (get-spoken) + "Get what's been spoken in the %speaker parameter" + ((%speaker))) + +(define-syntax-rule (with-fresh-speaker body ...) + "Run body with a fresh %speaker" + (parameterize ((%speaker (speak-it))) + body ...))