gash/Makefile.am

289 lines
10 KiB
Makefile
Raw Permalink Normal View History

# Gash --- Guile As SHell
# Copyright © 2017, 2018, 2019 Timothy Sample <samplet@ngyro.com>
# Copyright © 2018, 2019 Jan (janneke) Nieuwenhuizen <janneke@gnu.org>
#
# This file is part of Gash.
#
# Gash 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.
#
# Gash 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 Gash. If not, see <http://www.gnu.org/licenses/>.
include $(top_srcdir)/build-aux/guile.am
2017-12-09 17:01:40 +00:00
EXTRA_DIST += \
.dir-locals.el \
COPYING.CC0 \
THANKS \
bootstrap \
build-aux/git-version-gen \
build-aux/gitlab-ci.yml \
build-aux/gitlog-to-changelog \
build-aux/gitlog-to-changelog-repro.patch \
guix.scm \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
tests/data/README
# Modules and scripts
#####################
SOURCES = \
gash/arithmetic.scm \
gash/built-ins/break.scm \
gash/built-ins/cd.scm \
gash/built-ins/colon.scm \
gash/built-ins/command.scm \
gash/built-ins/continue.scm \
gash/built-ins/dot.scm \
gash/built-ins/echo.scm \
gash/built-ins/eval.scm \
gash/built-ins/exec.scm \
gash/built-ins/exit.scm \
gash/built-ins/export.scm \
gash/built-ins/false.scm \
gash/built-ins/pwd.scm \
gash/built-ins/read.scm \
gash/built-ins/readonly.scm \
gash/built-ins/return.scm \
gash/built-ins/set.scm \
gash/built-ins/shift.scm \
gash/built-ins/trap.scm \
gash/built-ins/true.scm \
gash/built-ins/type.scm \
gash/built-ins/umask.scm \
gash/built-ins/unset.scm \
gash/built-ins/utils.scm \
gash/built-ins/wait.scm \
gash/built-ins.scm \
gash/compat/hash-table.scm \
gash/compat/srfi-43.scm \
gash/compat/textual-ports.scm \
gash/compat.scm \
gash/config.scm \
gash/environment.scm \
gash/eval.scm \
gash/gash.scm \
gash/lexer.scm \
gash/parser.scm \
gash/pattern.scm \
gash/readline.scm \
gash/repl.scm \
gash/shell.scm \
gash/word.scm \
language/sh/spec.scm
2017-12-09 17:01:40 +00:00
bin_SCRIPTS = \
scripts/gash
2017-12-09 17:01:40 +00:00
do_subst = sed \
-e 's,[@]GUILE[@],$(GUILE),g' \
-e 's,[@]MODDIR[@],$(moddir),g' \
-e 's,[@]GODIR[@],$(ccachedir),g'
scripts/gash: scripts/gash.in Makefile
mkdir -p scripts
$(do_subst) < $(srcdir)/scripts/gash.in > scripts/gash
chmod a+x scripts/gash
EXTRA_DIST += scripts/gash.in
# Documentation
###############
info_TEXINFOS = doc/gash.texi
gash_TEXINFOS = doc/fdl-1.3.texi
EXTRA_DIST += \
$(gash_TEXINFOS) \
doc/syntax.txt
# Generate 'version.texi' reproducibly using metadata from Git rather
# than using metadata from the filesystem.
override $(srcdir)/doc/version.texi:
$(AM_V_GEN)set -e \
LC_ALL=C; export LC_ALL; \
TZ=UTC0; export TZ; \
timestamp=$$(git log --pretty=format:%ct -- doc/gash.texi \
| sort -n -r | head -n 1); \
dmy=$$(date --date="@$$timestamp" "+%-d %B %Y"); \
my=$$(date --date="@$$timestamp" "+%B %Y"); \
{ echo "@set UPDATED $$dmy"; \
echo "@set UPDATED-MONTH $$my"; \
echo "@set EDITION $(VERSION)"; \
echo "@set VERSION $(VERSION)"; } > $@-t; \
mv $@-t $@
# Tests
#######
AM_TESTS_ENVIRONMENT = SYSTEM_SHELL='$(SHELL)'; export SYSTEM_SHELL;
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
TEST_EXTENSIONS = .scm .org
SCM_LOG_COMPILER = $(top_builddir)/pre-inst-env $(GUILE)
AM_SCM_LOG_FLAGS = --no-auto-compile
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
ORG_LOG_COMPILER = $(top_builddir)/pre-inst-env \
$(top_builddir)/tests/run-test-suite
.PHONY: check-spec
check-spec:
$(MAKE) $(AM_MAKEFLAGS) -L -C tests/spec check
.PHONY: check-bootstrap
check-bootstrap:
guix build -f tests/bootstrap/bash-without-bash.scm
.PHONY: check-gash
check-gash:
SHELL=gash $(top_builddir)/pre-inst-env $(top_builddir)/check.sh
UNIT_TESTS = \
tests/unit/eval.scm \
tests/unit/lexer.scm \
tests/unit/parser.scm \
tests/unit/pattern.scm \
tests/unit/shell.scm \
tests/unit/word.scm
FULL_TESTS = \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
tests/arguments.org \
tests/assignments.org \
tests/command-substitution.org \
tests/compound-words.org \
tests/conditionals.org \
tests/dot.org \
tests/eval.org \
tests/exiting.org \
tests/exporting.org \
tests/functions.org \
tests/loops.org \
tests/pipes-and-booleans.org \
tests/read.org \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
tests/redirects.org \
tests/signals.org \
tests/temporary-assignments.org \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
tests/variable-and.org \
tests/variable-operators.org \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
tests/variable-or.org \
tests/variable-patterns.org \
tests/variable-words.org \
tests/words.org
TESTS = $(UNIT_TESTS) $(FULL_TESTS)
TEST_DATA_FILES = \
tests/data/star/2 \
tests/data/star/3 \
tests/data/star/0 \
tests/data/star/1 \
tests/data/foo \
tests/data/diff.scm \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
tests/data/script.sh \
tests/data/42-export-new.sh
.PHONY: test-list
test-list: ; @echo $(TESTS)
EXTRA_DIST += \
$(TESTS) \
$(TEST_DATA_FILES) \
tests/unit/automake.scm \
tests/spec/check-spec \
tests/spec/Makefile.am \
tests/spec/Makefile.in \
tests/spec/oil.scm \
tests/bootstrap/bash-without-bash.scm
# Coverage
##########
if HAVE_GENHTML
lcov.info: all
$(top_builddir)/pre-inst-env $(top_builddir)/tools/coverage
coverage: lcov.info
$(GENHTML) -o $(top_builddir)/coverage lcov.info
endif # HAVE_GENHTML
# Distribution
##############
dist-hook: gen-ChangeLog
echo $(VERSION) > $(distdir)/.tarball-version
if test -e .git; then \
git ls-tree -r --name-only HEAD \
> $(distdir)/.tarball-manifest; \
git show HEAD --format=%ct --no-patch 2>/dev/null \
> $(distdir)/.tarball-timestamp; \
else \
cp $(srcdir)/.tarball-manifest $(distdir)/.tarball-manifest; \
cp $(srcdir)/.tarball-timestamp $(distdir)/.tarball-timestamp; \
fi
build-aux/gitlog-to-changelog-repro: \
$(srcdir)/build-aux/gitlog-to-changelog \
$(srcdir)/build-aux/gitlog-to-changelog-repro.patch
$(AM_V_GEN){ mkdir -p $$(dirname $@) && \
patch -t --output=$@ $? && \
chmod a+x $@; }
.PHONY: gen-ChangeLog
gen-ChangeLog: build-aux/gitlog-to-changelog-repro
$(AM_V_GEN)if test -e .git; then \
{ ./build-aux/gitlog-to-changelog-repro \
--format='%s%n%n%b%n' -- v0.1.. && \
echo && \
sed -n -e '/^Copyright/,$$p' < $(top_srcdir)/ChangeLog; \
} > $(distdir)/ChangeLog-t && \
{ rm -f $(distdir)/ChangeLog && \
mv $(distdir)/ChangeLog-t $(distdir)/ChangeLog; } \
fi
# Reproducible tarball
# Be friendly to Debian; avoid using EPOCH
override GZIP_ENV = "--best --no-name"
am__tar = $${TAR-tar} -chof - --sort=name \
--mtime=@$$(cat "$$tardir"/.tarball-timestamp) \
--owner=0 --group=0 --numeric-owner \
--mode=go=rX,u+rw,a-s "$$tardir"
distcheck-hook:
set -e; \
manifest=$(distdir)/.tarball-manifest; \
test -f "$$manifest"; \
for x in `cat "$$manifest"`; \
do \
if ! test -f $(distdir)/"$$x" \
&& ! test "$$x" = .gitignore; \
then \
echo "Missing: $$x"; \
exit 1; \
fi; \
done
# Cleaning
##########
CLEANFILES += \
$(bin_SCRIPTS) \
Aggregate tests into test suites. This is a big change, but it is conceptually quite simple. In the old system, the tests were specified each by multiple files ('.sh', '.exit', '.stdout', and '.stderr'), and run with the 'test.sh' script. In the new system there are multiple tests per file ('.org') and these test suite files are run with the 'tests/run-test-suite' script. * tests/00-exit-0.sh, tests/00-exit-1.exit, tests/00-exit-1.sh, tests/00-exit-2.exit, tests/00-exit-2.sh, tests/00-exit-error.exit, tests/00-exit-error.sh, tests/00-exit-var.exit, tests/00-exit-var.sh, tests/00-exit.sh: Delete files, moving their contents... * tests/exiting.org: ...here. * tests/01-script-arg-0.sh, tests/01-script-arg-length.sh, tests/01-script-arg-length.stdout, tests/01-script-arg-list.sh, tests/01-script-arg-list.stdout, tests/01-script-backslash-space.sh, tests/01-script-backslash-twice.exit, tests/01-script-backslash-twice.sh, tests/01-script-backslash.exit, tests/01-script-backslash.sh, tests/01-script-newline.exit, tests/01-script-newline.sh, tests/01-script-semi.exit, tests/01-script-semi.sh, tests/01-script-shift.sh, tests/01-script-shift.stdout: Delete files, moving their contents... * tests/arguments.org: ...here. * tests/03-echo-brace.sh, tests/03-echo-brace.stdout, tests/03-echo-doublequotes.sh, tests/03-echo-doublequotes.stdout, tests/03-echo-escaped-doublequotes.sh, tests/03-echo-escaped-doublequotes.stdout, tests/03-echo-nesting.sh, tests/03-echo-nesting.stdout, tests/03-echo-quoted-doublequotes.sh, tests/03-echo-quoted-doublequotes.stdout, tests/03-echo.sh: Delete files, moving their contents... * tests/words.org: ...here. * tests/04-echo-equal.sh, tests/04-echo-equal.stdout, tests/04-echo-var.sh, tests/04-echo-word-at-word.sh, tests/04-echo-word-at-word.stdout, tests/04-echo-word-at.sh, tests/04-echo-word-at.stdout: Delete files, moving their contents... * tests/variable-words.org: ...here. * tests/05-assignment-backtick.sh, tests/05-assignment-backtick.stdout, tests/05-assignment-double-quote.sh, tests/05-assignment-doublequoted-doublequotes.sh, tests/05-assignment-doublequoted-doublequotes.stdout, tests/05-assignment-echo.sh, tests/05-assignment-echo.stdout, tests/05-assignment-empty.sh, tests/05-assignment-empty.stdout, tests/05-assignment-singlequote.sh, tests/05-assignment-variable-word.sh, tests/05-assignment-variable-word.stdout, tests/05-assignment-word-variable.sh, tests/05-assignment-word-variable.stdout, tests/05-assignment.sh: Delete files, moving their contents... * tests/assignments.org: ...here. * tests/06-command-compound-word.sh, tests/06-command-compound-word.stdout, tests/06-compound-word.sh, tests/06-compound-word.stdout: Delete files, moving their contents... * tests/compound-words.org: ...here. * tests/07-variable-not-or.sh, tests/07-variable-not-or.stdout, tests/07-variable-or-doublequote.sh, tests/07-variable-or-doublequote.stdout, tests/07-variable-or-empty.sh, tests/07-variable-or-empty.stdout, tests/07-variable-or-slash.sh, tests/07-variable-or-variable.sh, tests/07-variable-or-variable.stdout, tests/07-variable-or.sh, tests/07-variable-or.stdout: Delete files, moving their contents... * tests/variable-or.org: ...here. * tests/08-variable-and.sh, tests/08-variable-and.stdout, tests/08-variable-not-and.sh, tests/08-variable-not-and.stdout: Delete files, moving their contents... * tests/variable-and.org: ...here. * tests/10-else-multiple.sh, tests/10-else.multiple.stdout, tests/10-if-bracket-false.sh, tests/10-if-bracket.sh, tests/10-if-elif.sh, tests/10-if-else.sh, tests/10-if-false.sh, tests/10-if-line.sh, tests/10-if-multiple.sh, tests/10-if-multiple.stdout, tests/10-if-redirect.sh, tests/10-if-test-false.sh, tests/10-if-test.sh, tests/10-if-word-variable.sh, tests/10-if.sh: Delete files, moving their contents... * tests/conditionals.org: ...here. * tests/11-for-done-subshell.sh, tests/11-for-done-subshell.stdout, tests/11-for-split-sequence.sh, tests/11-for-split-sequence.stdout, tests/11-for.sh, tests/11-for.stdout: Delete files, moving their contents... * tests/loops.org: ...here. * tests/20-and.exit, tests/20-and.sh, tests/20-exec.sh, tests/20-or.sh, tests/20-pipe-exit-0.sh, tests/20-pipe-exit-1.exit, tests/20-pipe-exit-1.sh, tests/20-pipe-sed-cat.sh, tests/20-pipe-sed-cat.stdout, tests/20-pipe-sed.sh, tests/20-pipe-sed.stdout, tests/20-semi.exit, tests/20-semi.sh: Delete files, moving their contents... * tests/pipes-and-booleans.org: ...here. * tests/30-for-substitution.sh, tests/30-for-substitution.stdout, tests/30-substitution-assignment-at.sh, tests/30-substitution-assignment-at.stdout, tests/30-substitution-assignment.sh, tests/30-substitution-assignment.stdout, tests/30-substitution-backtick.sh, tests/30-substitution-backtick.stdout, tests/30-substitution-redirect.sh, tests/30-substitution-redirect.stdout, tests/30-substitution-word.sh, tests/30-substitution-word.stdout, tests/30-substitution.sh, tests/30-substitution.stdout: Delete files, moving their contents... * tests/command-substitution.org: ...here. * tests/40-assignment-eval-echo.sh, tests/40-assignment-eval-echo.stdout, tests/40-eval-echo-variable.sh, tests/40-eval-echo-variable.stdout, tests/40-eval.sh, tests/40-eval.stdout: Delete files, moving their contents... * tests/eval.org: ...here. * tests/41-dot.sh, tests/41-dot.stdout: Delete files, moving their contents... * tests/dot.org: ...here. * tests/42-export-new.sh, tests/42-export-new.stdout, tests/42-sh-export-new.sh, tests/42-sh-export-new.stdout, tests/42-sh-export.sh, tests/42-sh-export.stdout, tests/42-sh.sh, tests/42-sh.stdout: Delete files, moving their contents... * tests/exporting.org: ...here. * tests/data/42-export-new.sh: New file (copied from 'tests/42-export-new.sh'). * tests/43-trap-subshell.sh, tests/43-trap-subshell.stdout: Delete files, moving their contents... * tests/signals.org: ...here. * tests/50-iohere-builtin.sh, tests/50-iohere.sh, tests/50-iohere.stdout, tests/50-redirect-append.sh, tests/50-redirect-append.stdout, tests/50-redirect-clobber.sh, tests/50-redirect-clobber.stdout, tests/50-redirect-in-out.sh, tests/50-redirect-in-out.stdout, tests/50-redirect-in.sh, tests/50-redirect-merge.sh, tests/50-redirect-merge.stdout, tests/50-redirect-pipe.sh, tests/50-redirect-pipe.stdout, tests/50-redirect-sed.sh, tests/50-redirect-sed.stdout, tests/50-redirect-space.sh, tests/50-redirect-space.stdout, tests/50-redirect.sh, tests/50-redirect.stdout: Delete files, moving their contents... * tests/redirects.org: ...here. * tests/60-function-at.sh, tests/60-function-at.stdout, tests/60-function.sh, tests/60-function.stdout, tests/60-subst.sh: Delete files, moving their contents... * tests/functions.org: ...here. * tests/70-hash-hash.sh, tests/70-hash-hash.stdout, tests/70-hash.sh, tests/70-hash.stdout, tests/70-percent-percent.sh, tests/70-percent-percent.stdout, tests/70-percent-space.sh, tests/70-percent-space.stdout, tests/70-percent.sh, tests/70-percent.stdout, tests/70-slash-string-slash.sh, tests/70-slash-string.sh, tests/70-slash-string.stdout, tests/70-slash.sh, tests/70-slash.stdout: Delete files, moving their contents... * tests/variable-patterns.org: ...here. * tests/100-bracket-file.sh, tests/100-cd-foo.exit, tests/100-cd-foo.sh, tests/100-cd.sh, tests/100-cd.stdout, tests/100-test-false.sh, tests/100-test-file.sh, tests/100-test.sh: Delete files. * tests/README: Move this... * tests/data/README: ...here and adapt to the new directory. * test.sh: Delete file. * tests/run-test-suite.in: New file. * configure.ac: Configure it. * Makefile.am (TEST_EXTENSIONS): Replace '.sh' with '.org'. (SH_LOG_COMPILER): Delete variable. (ORG_LOG_COMPILER): New variable. (FULL_TESTS, XFAIL_TESTS): Replace '.sh' tests with '.org' tests. (BROKEN_TESTS): Delete variable. (TEST_DATA_FILES): Remove '.exit' and '.stdout' files; add tests/data/42-export-new.sh. (EXTRA_DIST): Add tests/data/README; remove tests/README, BROKEN_TESTS, and test.sh. * .gitignore: Adjust accordingly.
2019-06-12 22:21:41 +01:00
$(FULL_TESTS:tests/%.org=tests/%.log) \
$(FULL_TESTS:tests/%.org=tests/%.trs) \
$(UNIT_TESTS:tests/%.scm=tests/%.log) \
$(UNIT_TESTS:tests/%.scm=tests/%.trs)
DISTCLEANFILES = build-aux/gitlog-to-changelog-repro
clean-local:
$(MAKE) $(AM_MAKEFLAGS) -L -C tests/spec clean
distclean-local:
$(MAKE) $(AM_MAKEFLAGS) -L -C tests/spec distclean