;; Rules to check ...
;;

;; Ignore some lines that would falsely flag an error
(expect:ignore in "LogFileBody" >= 0 "C strings error mention" #/Good, unrepresentable C strings cause errors/)
(expect:ignore in "LogFileBody" >= 0 "call to sys#error"       #/\(##sys#error/)
(expect:ignore in "LogFileBody" >= 0 "error calls"             #/\(error \"/)
(expect:ignore in "LogFileBody" >= 0 "closed string"           #/\(PASS\) writing to a closed string output port is an error/)
(expect:ignore in "LogFileBody" >= 0 "print-error-message...OK" #/print-error-message...OK/)
(expect:ignore in "LogFileBody" >= 0 "Everything OK"            #/\-+> Everything OK, no errors!/)
(expect:ignore in "LogFileBody" >= 0 "Word error on line by itself" #/^error$/)

;; Catch warnings and errors
(expect:error in "LogFileBody" = 0 "Errors not allowed" #/error/i)
(expect:warning in "LogFileBody" = 0 "Warnings not allowed" #/warning/i)

;; ensure that at least *some* stuff ran

(for-each
 (lambda (test-section)
   (expect:required in "LogFileBody" >= 1 (conc "Required section: " test-section) (regexp (conc "=== " test-section))))
 (string-split "arithmetic
callback
compiler
condition
data-structures
dynamic-wind
evaluation
fixnum
functor
hash-table
import
library
lolevel
meta-syntax
module
optionals
path
port
posix
pretty-printer
r4rs
r7rs
reader
reexport
runtime
scrutiny
specialization
srfi\\-13
srfi\\-14
srfi\\-18
srfi\\-45
srfi\\-4
string->number
syntax
version"))
