mcron/tests/schedule.sh
Dale Mellor cbce8eb293
Incorporate and use command-line-processor proposed for Guile core
Since the elimination of the C wrapping around mcron and all the
executable scripts, a weakness in Guile's (ice-9 getopt-long) module
means that the command 'mcron -s crontab.scm' does not currently
work.  A replacement for the getopt-long module, as well as a
higher-level 'command-line-processor' facility, have been pushed to
the Guile upstream developers and are awaiting approval and
incorporation.  In the meantime, those modules are temporarily
incorporated here into the mcron package, and the code is modified
to use those local versions.

 * Makefile.am: install two new Guile modules
 * src/{cron,crontab,mcron}.in: use local command-line-processor module
 * src/mcron/command-line-processor.scm: new module
 * src/mcron/getopt-long.scm: new module
 * tests/schedule{,-2}.sh: clarify tests of -s, --schedule options
2022-07-07 22:19:06 +01:00

131 lines
2.2 KiB
Bash

# schedule.sh -- Check mcron schedule output
# Copyright © 2017, 2018 Mathieu Lirzin <mthl@gnu.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
LC_ALL=C
export LC_ALL
# Use current working directory to store mcron files
XDG_CONFIG_HOME=`pwd`
export XDG_CONFIG_HOME
mkdir cron
cat > cron/foo.guile <<EOF
(job '(next-second) '(display "foo\n"))
EOF
cat > cron/bar.guile <<EOF
(job '(next-second) '(display "bar\n"))
EOF
cat > expected <<EOF
Thu Jan 1 00:00:01 1970 +0000
(display bar
)
Thu Jan 1 00:00:01 1970 +0000
(display foo
)
Thu Jan 1 00:00:02 1970 +0000
(display bar
)
Thu Jan 1 00:00:02 1970 +0000
(display foo
)
Thu Jan 1 00:00:03 1970 +0000
(display bar
)
Thu Jan 1 00:00:03 1970 +0000
(display foo
)
Thu Jan 1 00:00:04 1970 +0000
(display bar
)
Thu Jan 1 00:00:04 1970 +0000
(display foo
)
Thu Jan 1 00:00:05 1970 +0000
(display bar
)
Thu Jan 1 00:00:05 1970 +0000
(display foo
)
Thu Jan 1 00:00:06 1970 +0000
(display bar
)
Thu Jan 1 00:00:06 1970 +0000
(display foo
)
Thu Jan 1 00:00:07 1970 +0000
(display bar
)
Thu Jan 1 00:00:07 1970 +0000
(display foo
)
Thu Jan 1 00:00:08 1970 +0000
(display bar
)
Thu Jan 1 00:00:08 1970 +0000
(display foo
)
Thu Jan 1 00:00:09 1970 +0000
(display bar
)
Thu Jan 1 00:00:09 1970 +0000
(display foo
)
Thu Jan 1 00:00:10 1970 +0000
(display bar
)
Thu Jan 1 00:00:10 1970 +0000
(display foo
)
EOF
mcron --schedule=10 > output
diff expected output || fail_ "schedule output with --schedule is not correct"
Exit 0