;; Copyright 2006-2012, Matthew Welland.
;;
;; This file is part of Megatest.
;;
;; Megatest 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.
;;
;; Megatest 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.
;;
;; You should have received a copy of the GNU General Public License
;; along with Megatest. If not, see <http://www.gnu.org/licenses/>.
;;
;; strftime('%m/%d/%Y %H:%M:%S','now','localtime')
(require-extension test)
(require-extension regex)
(require-extension srfi-18)
(require-extension posix)
(import posix)
(import srfi-18)
;; (require-extension zmq)
;; (import zmq)
(define test-work-dir (current-directory))
;; given list of lists
;; ( ( msg expected param1 param2 ...)
;; ( ... ) )
;; apply test to all
;;
(define (test-batch proc pname inlst #!key (post-proc #f))
(for-each
(lambda (spec)
(let ((msg (conc pname " " (car spec)))
(result (cadr spec))
(params (cddr spec)))
(if post-proc
(test msg result (post-proc (apply proc params)))
(test msg result (apply proc params)))))
inlst))
;; read in all the _record files
(let ((files (glob "*_records.scm")))
(for-each
(lambda (file)
(print "Loading " file)
(load file))
files))
(let* ((unit-test-name (list-ref (argv) 4))
(fname (conc "../unittests/" unit-test-name ".scm")))
(if (file-exists? fname)
(load fname)
(print "ERROR: Unit test " unit-test-name " not found in unittests directory")))
;;; huh? why is this here?
;; (list "abc" "abc/%" "ab%/c%" "~abc/c%" "abc/~c%" "a,b/c,%/d" "%/,%/a" "%/,%/a" "%/,%/a" "%" "%" "%/" "%/" "%abc%")
;; (list "abc" "abc" "abcd" "abc" "abc" "a" "abc" "def" "ghi" "a" "a" "a" "a" "abc")
;; (list "" "" "cde" "cde" "cde" "" "" "a" "b" "" "b" "" "b" "abc")
;; (list #t #t #t #f #f #t #t #t #f #t #t #t #f #t)