AboutSummaryRefsLogTreeCommitDiffStats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rw-r--r--tests/basic.sh3
-rw-r--r--tests/job-specifier.scm32
-rw-r--r--tests/schedule-2.sh81
-rw-r--r--tests/schedule.sh3
4 files changed, 101 insertions, 18 deletions
diff --git a/tests/basic.sh b/tests/basic.sh
index 07b664b..7b2ca55 100644
--- a/tests/basic.sh
+++ b/tests/basic.sh
@@ -27,6 +27,9 @@ cat > cron/foo.guile <<EOF
(job '(next-second) '(display "foo\n"))
EOF
+mcron --schedule=1 cron/foo.guile > "output$$"
+grep -e "foo" "output$$" || fail_ "'foo.guile' job is not scheduled"
+
mcron --schedule=1 > "output$$"
grep -e "foo" "output$$" || fail_ "'foo.guile' job is not scheduled"
diff --git a/tests/job-specifier.scm b/tests/job-specifier.scm
index baf96af..70dd518 100644
--- a/tests/job-specifier.scm
+++ b/tests/job-specifier.scm
@@ -56,36 +56,32 @@
;;; TODO: Find more meaningful date examples.
+(setenv "TZ" ":UTC")
+
(test-equal "next-year"
- (list 59989762800 1546293600)
- (list (next-year '(1971))
+ (list 1893456000 1546300800)
+ (list (next-year '(130)) ;; This is the year 2030.
(next-year-from 1522095469)))
(test-equal "next-month"
- (list 28854000 5094000)
- (list (next-month '(11))
- (next-month-from 101 '(0 2 4))))
+ 5097600
+ (next-month-from 101 '(0 2 4)))
(test-equal "next-day"
- (list 2588400 342000)
- (list (next-day '(31))
- (next-day-from 4337 '(0 5 10))))
+ 345600
+ (next-day-from 4337 '(0 5 10)))
(test-equal "next-hour"
- '(3600 82800 3600)
- (list (next-hour)
- (next-hour '(0))
- (next-hour-from 3 '(0 1 2 3 4))))
+ 3600
+ (next-hour-from 3 '(0 1 2 3 4)))
(test-equal "next-minute"
- '(240 60)
- (list (next-minute '(4 9))
- (next-minute-from 8)))
+ 60
+ (next-minute-from 8))
(test-equal "next-second"
- '(52 15)
- (list (next-second '(52 55))
- (next-second-from 14)))
+ 15
+ (next-second-from 14))
;;;
;;; Check 'configuration-user' manipulation
diff --git a/tests/schedule-2.sh b/tests/schedule-2.sh
new file mode 100644
index 0000000..531af54
--- /dev/null
+++ b/tests/schedule-2.sh
@@ -0,0 +1,81 @@
+# schedule-2.sh -- Check mcron schedule output
+# Copyright © 2020 Dale Mellor <mcron-lsfnyl@rdmp.org>
+#
+# This file is part of GNU Mcron.
+#
+# GNU Mcron 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.
+#
+# GNU Mcron 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 GNU Mcron. If not, see <http://www.gnu.org/licenses/>.
+
+source "${srcdir}/tests/init.sh"
+
+# Use UTC and SOURCE_DATE_EPOCH to get reproducible result.
+
+SOURCE_DATE_EPOCH=1
+export SOURCE_DATE_EPOCH
+
+TZ=UTC0
+export TZ
+
+# Use current working directory to store mcron files
+XDG_CONFIG_HOME=`pwd`
+export XDG_CONFIG_HOME
+
+LC_ALL=C
+export LC_ALL
+
+mkdir cron
+cat > cron/foo.guile <<EOF
+(job '(next-second) '(display "foo\n"))
+EOF
+
+cat > expected <<EOF
+Thu Jan 1 00:00:01 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:02 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:03 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:04 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:05 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:06 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:07 1970 +0000
+(display foo
+)
+
+Thu Jan 1 00:00:08 1970 +0000
+(display foo
+)
+
+EOF
+
+mcron -s cron/foo.guile > output
+diff expected output \
+ || skip_ 'The -s option is not fully functional;
+this will be fixed with a future version of GNU Guile.'
+
+Exit 0
diff --git a/tests/schedule.sh b/tests/schedule.sh
index d403f1d..9a1836e 100644
--- a/tests/schedule.sh
+++ b/tests/schedule.sh
@@ -26,6 +26,9 @@ export SOURCE_DATE_EPOCH
TZ=UTC0
export TZ
+LC_ALL=C
+export LC_ALL
+
# Use current working directory to store mcron files
XDG_CONFIG_HOME=`pwd`
export XDG_CONFIG_HOME