;; Copyright 2006-2017, 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/>.
(use test)
;; S M H MD MTH YR WD
(define ref-time (vector 58 39 21 18 1 117 6 48 #f 25200))
(for-each
(lambda (situation crontab ref-seconds last-done expected)
(print "\nsituation: " situation)
(print "ref-seconds: " ref-seconds " = " (time->string (seconds->local-time ref-seconds)))
(print "last-done: " last-done " = " (time->string (seconds->local-time last-done)))
(print "crontab: " crontab)
(test #f expected (common:cron-event crontab ref-seconds last-done)))
'("midnight" "midnight, already done" "diffdate" "diffdate, already done" "diffday" "sameday, already done")
'("0 0 * * *" "0 0 * * *" "0 0 18 * *" "0 0 18 * *" "0 0 * * 5" "0 0 18 * 6" )
'(1487489998.0 1487489998.0 1487489998.0 1487489998.0 1487489998.0 1487489998.0 )
'(1487479198.0 1487489098.0 1487479198.0 1487489098.0 1487479198.0 1487489098.0 )
'( #t #f #f #f #f #f )
)