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
131 lines
2.2 KiB
Bash
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
|