summaryrefslogtreecommitdiff
path: root/tests/options.at
diff options
context:
space:
mode:
Diffstat (limited to 'tests/options.at')
-rw-r--r--tests/options.at863
1 files changed, 0 insertions, 863 deletions
diff --git a/tests/options.at b/tests/options.at
deleted file mode 100644
index 29f41c07..00000000
--- a/tests/options.at
+++ /dev/null
@@ -1,863 +0,0 @@
-# Hand crafted tests for GNU M4. -*- Autotest -*-
-# Copyright (C) 2001, 2006-2010, 2013-2014, 2017 Free Software
-# Foundation, Inc.
-
-# This file is part of GNU M4.
-#
-# GNU M4 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 M4 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 this program. If not, see <http://www.gnu.org/licenses/>.
-
-AT_BANNER([Options.])
-
-
-## ------------------ ##
-## deprecated options ##
-## ------------------ ##
-
-AT_SETUP([deprecated options])
-
-dnl -N/--diversions was removed after 1.4.x
-AT_CHECK_M4([--diversions=1], [1], [], [stderr])
-AT_CHECK([$SED 's/Try.*help/Try `m4 --help/' stderr], [0],
-[[m4: bad option
-Try `m4 --help' for more information.
-]])
-
-dnl -H/--hashsize are no-ops since 2.0
-AT_CHECK_M4([-H1 --hashsize=1], [0], [],
-[[m4: warning: `-H' is deprecated
-m4: warning: `--hashsize' is deprecated
-]])
-
-dnl -S/-T are no-ops for compatibility
-AT_CHECK_M4([-S1 -T1], [0], [],
-[[m4: warning: `-S' is deprecated
-m4: warning: `-T' is deprecated
-]])
-
-dnl -Bint can be confused with its no-op meaning in 1.4.x, but all other
-dnl uses of -B or its long option are okay
-AT_CHECK_M4([-B1], [0], [],
-[[m4: warning: recommend using `-B ./1' instead
-]])
-AT_CHECK_M4([-B./1 --prepend-include=1], [0], [],
-[[]])
-
-dnl --error-output is a misleading name
-AT_CHECK_M4([--error-output=trace], [0], [],
-[[m4: warning: `--error-output' is deprecated, use `--debugfile' instead
-]])
-AT_CHECK([rm trace])
-
-dnl -o will change meaning in the future
-AT_CHECK_M4([-otrace], [0], [],
-[[m4: warning: `-o' is deprecated, use `--debugfile' instead
-]])
-AT_CHECK([rm trace])
-
-dnl -e is an odd spelling for --interactive
-AT_CHECK_M4([-e], [0], [],
-[[m4: warning: `-e' is deprecated, use `-i' instead
-]])
-
-dnl --arglength is an older spelling for --debuglen
-AT_CHECK_M4([--arglength=10], [0], [],
-[[m4: warning: `--arglength' is deprecated, use `--debuglen' instead
-]])
-
-AT_CHECK_M4([--arglength=x], [1], [],
-[[m4: warning: `--arglength' is deprecated, use `--debuglen' instead
-m4: invalid --arglength argument 'x'
-]])
-
-dnl --word-regexp from 1.4.x is no longer supported. Can't test for its
-dnl alternate spelling -W, as that now means --warnings.
-AT_CHECK_M4([[--word-regexp='[a-zA-Z0-9_]+']], [0], [],
-[[m4: warning: `--word-regexp' is deprecated
-]])
-
-AT_CLEANUP
-
-
-## ---------- ##
-## file names ##
-## ---------- ##
-
-AT_SETUP([file names])
-
-dnl Check that all files are processed even after missing file
-AT_DATA([in], [[hello world
-]])
-AT_CHECK_M4([oops in], [1], [[hello world
-]], [[m4: cannot open file 'oops': No such file or directory
-]])
-
-dnl Check that '-' means stdin, even if ./- exists.
-AT_DATA([-], [[hi
-]])
-AT_CHECK_M4([-], [0])
-AT_CHECK_M4([- --], [0])
-AT_CHECK_M4([-- -], [0])
-AT_CHECK_M4([./-], [0], [[hi
-]])
-AT_CHECK_M4([./- --], [0], [[hi
-]])
-AT_CHECK_M4([-- ./-], [0], [[hi
-]])
-
-AT_CLEANUP
-
-
-## --------------- ##
-## option grouping ##
-## --------------- ##
-
-AT_SETUP([option grouping])
-
-dnl this test group depends on correct settings of POSIXLY_CORRECT
-if test -n "${POSIXLY_CORRECT+set}" ; then
- (unset POSIXLY_CORRECT) >/dev/null 2>&1 || {
- echo "Problem unsetting POSIXLY_CORRECT"
- AT_CHECK([exit 77])
- }
- unset POSIXLY_CORRECT
-fi
-
-dnl This comes from the "Invoking m4" node; it was easier to write the
-dnl test separately than to let generate.awk fiddle with it.
-AT_DATA([a], [[foo 1
-m@&t@4_dnl()
-]])
-
-AT_DATA([-d+f], [[hi
-]])
-
-dnl First, run with GNU semantics
-AT_CHECK_M4([-QPDfoo -d a -d+f], [0], [[ 1
-]])
-
-AT_CHECK_M4([-Q -P -D foo -d -d+f -- a], [0], [[ 1
-]])
-
-AT_CHECK_M4([-QPDfoo -d -- a -d+f], [0], [[ 1
-hi
-]])
-
-AT_CHECK_M4([-Q -P -D foo -d ./a ./-d+f], [0], [[ 1
-hi
-]])
-
-AT_CHECK_M4([--def foo --debug a], [0], [[ 1
-m@&t@4_dnl()
-]])
-
-AT_CHECK_M4([--define=foo --debug= -- a], [0], [[ 1
-m@&t@4_dnl()
-]])
-
-dnl Next, run with POSIX semantics
-POSIXLY_CORRECT=1
-export POSIXLY_CORRECT
-
-AT_CHECK_M4([-QPDfoo -d a -d+f], [0], [[ 1
-]])
-
-AT_CHECK_M4([-Q -P -D foo -d -d+f -- ./a], [0], [[ 1
-]])
-
-AT_CHECK_M4([-QPDfoo -d -- a -d+f], [0], [[ 1
-hi
-]])
-
-AT_CHECK_M4([-Q -P -D foo -d ./a ./-d+f], [0], [[ 1
-hi
-]])
-
-AT_CHECK_M4([--def foo --debug a], [0], [[ 1
-m@&t@4_dnl()
-]])
-
-AT_CHECK_M4([--define=foo --debug= -- a], [0], [[ 1
-m@&t@4_dnl()
-]])
-
-AT_CLEANUP
-
-
-## --------------- ##
-## POSIXLY_CORRECT ##
-## --------------- ##
-
-AT_SETUP([POSIXLY_CORRECT])
-
-dnl this test group depends on correct settings of POSIXLY_CORRECT
-if test -n "${POSIXLY_CORRECT+set}" ; then
- (unset POSIXLY_CORRECT) >/dev/null 2>&1 || {
- echo "Problem unsetting POSIXLY_CORRECT"
- AT_CHECK([exit 77])
- }
- unset POSIXLY_CORRECT
-fi
-
-dnl By default, GNU extensions and warnings are enabled
-AT_DATA([in], [[__line__
-dnl()
-]])
-AT_CHECK_M4([in], [0], [[1
-]], [[m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-]])
-AT_CHECK_M4([in -g], [0], [[1
-]], [[m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-]])
-AT_CHECK_M4([in -G], [0], [[__line__
-]], [[m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-]])
-AT_CHECK_M4([in -W], [0], [[1
-]], [[m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-]])
-AT_CHECK_M4([in -Q], [0], [[1
-]])
-
-dnl Next, run with POSIX semantics
-POSIXLY_CORRECT=1
-export POSIXLY_CORRECT
-
-dnl POSIXLY_CORRECT implies -G -Q
-AT_DATA([in], [[__line__
-dnl()
-]])
-AT_CHECK_M4([in], [0], [[__line__
-]])
-AT_CHECK_M4([in -g], [0], [[1
-]])
-AT_CHECK_M4([in -G], [0], [[__line__
-]])
-AT_CHECK_M4([in -W], [0], [[__line__
-]], [[m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-]])
-AT_CHECK_M4([in -Q], [0], [[__line__
-]])
-
-AT_CLEANUP
-
-## -------------- ##
-## unknown option ##
-## -------------- ##
-
-AT_SETUP([unknown option])
-
-AT_CHECK_M4([--unknown], [1], [], [stderr])
-AT_CHECK([$SED 's/Try.*help/Try `m4 --help/' stderr], [0],
-[[m4: bad option
-Try `m4 --help' for more information.
-]])
-
-AT_CLEANUP
-
-
-## --------- ##
-## debugfile ##
-## --------- ##
-
-AT_SETUP([--debugfile])
-
-dnl For a while, CVS m4 mistakenly sent debug output to stdout
-dnl when stdout and stderr were the same file.
-
-AT_DATA([[in]], [[foo
-]])
-
-AT_CHECK_M4([--debugfile=trace1 -tfoo -Dfoo=bar in 2>&1], [0], [[bar
-]])
-
-AT_CHECK_M4([--debugfile=trace2 -tfoo -Dfoo=bar in], [0], [[bar
-]])
-
-AT_CHECK([cmp trace1 trace2])
-
-dnl m4 1.4.x mistakenly created the trace file. --help and --version
-dnl should always override, even if they come later in the command line
-AT_CHECK_M4([--debugfile=trace3 --help], [0], [ignore])
-AT_CHECK_M4([--debugfile=trace3 --version], [0], [ignore])
-AT_CHECK([test -f trace3], [1])
-
-dnl check that trace file failure causes an error, but allows processing
-AT_CHECK_M4([--debugfile=no_such_dir/trace -tfoo -Dfoo=bar in], [1],
-[[bar
-]], [[m4: cannot set debug file 'no_such_dir/trace': No such file or directory
-m4trace: -1- foo -> `bar'
-]])
-
-dnl check that empty trace file discards trace data
-AT_CHECK_M4([--debugfile= -tfoo -Dfoo=bar in], [0],
-[[bar
-]])
-
-dnl check that all tracing gets diverted to the trace file. Don't use
-dnl AT_CHECK_M4 on the first run, because sanitizing stderr breaks the
-dnl comparison with the raw data in the trace file of the second run.
-AT_CHECK([$M4 -dV in], [0], [[foo
-]], [stderr])
-mv stderr expout
-AT_CHECK_M4([--debugfile=trace4 -dV in], [0], [[foo
-]])
-AT_CHECK([cat trace4], [0], [expout])
-
-dnl check that order matters
-AT_DATA([in1], [[bar
-]])
-AT_DATA([in2], [[errprint(`hi
-')dnl
-bar
-]])
-AT_CHECK_M4([-Dbar=hello -tbar --debugfile= in1 --debugfile in2], [0],
-[[hello
-hello
-]], [[hi
-m4trace: -1- bar -> `hello'
-]])
-
-AT_CLEANUP
-
-
-## -------- ##
-## debuglen ##
-## -------- ##
-
-AT_SETUP([--debuglen])
-
-dnl Check for argument validation.
-
-AT_DATA([in],
-[[define(`echo', `$@')dnl
-traceon(`echo')dnl
-echo(`long string')
-]])
-
-AT_CHECK_M4([--debuglen=-1 in], [1], [],
-[[m4: invalid --debuglen argument '-1'
-]])
-
-AT_CHECK_M4([--debuglen oops in], [1], [],
-[[m4: invalid --debuglen argument 'oops'
-]])
-
-AT_CHECK_M4([-l 10oops in], [1], [],
-[[m4: invalid suffix in -l argument '10oops'
-]])
-
-dnl MiB is the suffix to implict 1, resulting in 1048576
-AT_CHECK_M4([-lMiB in], [0], [[long string
-]], [[m4trace: -1- echo(`long string') -> ``long string''
-]])
-
-dnl this assumes size_t is no bigger than 64 bits
-AT_CHECK_M4([-l 123456789012345678901234567890 in], [1], [],
-[[m4: -l argument '123456789012345678901234567890' too large
-]])
-AT_CHECK_M4([--debugl 123456789012345678901234567890 in], [1], [],
-[[m4: --debuglen argument '123456789012345678901234567890' too large
-]])
-
-dnl per POSIX guidelines, this is a decimal number 10, not octal 8
-AT_CHECK_M4([-l 010 in], [0], [[long string
-]], [[m4trace: -1- echo(`long strin...') -> ``long stri...'
-]])
-
-AT_CHECK_M4([-l 3 in], [0], [[long string
-]], [[m4trace: -1- echo(`lon...') -> ``lo...'
-]])
-
-AT_CHECK_M4([--debuglen=3 -l0 in], [0], [[long string
-]], [[m4trace: -1- echo(`long string') -> ``long string''
-]])
-
-AT_CLEANUP
-
-
-## --------- ##
-## debugmode ##
-## --------- ##
-
-AT_SETUP([--debugmode])
-
-AT_DATA([[in]],
-[[include(`nested')dnl
-len(`abc')
-]])
-
-AT_DATA([[nested]],
-[[m4wrap(`divnum
-')dnl
-]])
-
-dnl AT_CHECK_M4 starts life with -d. Make sure it looks like -d+adeq.
-AT_CHECK_M4([-tlen in], [0], [[3
-0
-]], [[m4trace: -1- len(`abc') -> `3'
-]])
-
-AT_CHECK_M4([-tlen -dfl -d in], [0], [[3
-0
-]], [[m4trace:in:2: -1- len(`abc') -> `3'
-]])
-
-dnl -d after file is deferred (but this is still useful for some flags).
-AT_CHECK_M4([-tlen in -dfli], [0], [[3
-0
-]], [[m4trace: -1- len(`abc') -> `3'
-m4debug: input from m4wrap recursion level 1
-m4debug: input from m4wrap exhausted
-]])
-
-dnl Test all flags.
-AT_CHECK_M4([-dV in], [0], [[3
-0
-]], [[m4debug: module m4: opening file
-m4debug: module m4: init hook called
-m4debug: module m4: opened
-m4debug: module m4: builtins loaded
-m4debug: module gnu: opening file
-m4debug: module gnu: init hook called
-m4debug: module gnu: opened
-m4debug: module gnu: builtins loaded
-m4debug: module gnu: macros loaded
-m4debug: path search for 'in' found 'in'
-m4debug: input read from 'in'
-m4trace:in:1: -1- id 1: include ... = <include>{m4}
-m4debug:in:1: path search for 'nested' found 'nested'
-m4debug:in:1: input read from 'nested'
-m4trace:in:1: -1- id 1: include(`nested') -> <file: nested>
-m4trace:nested:1: -1- id 2: m4wrap ... = <m4wrap>{m4}
-m4trace:nested:1: -1- id 2: m4wrap(`divnum
-') -> `'
-m4trace:nested:2: -1- id 3: dnl ... = <dnl>{m4}
-m4trace:nested:2: -1- id 3: dnl -> `'
-m4debug:nested:3: input reverted to in, line 1
-m4trace:in:1: -1- id 4: dnl ... = <dnl>{m4}
-m4trace:in:1: -1- id 4: dnl -> `'
-m4trace:in:2: -1- id 5: len ... = <len>{m4}
-m4trace:in:2: -1- id 5: len(`abc') -> `3'
-m4debug:in:3: input exhausted
-m4debug: input from m4wrap recursion level 1
-m4trace:nested:1: -1- id 6: divnum ... = <divnum>{m4}
-m4trace:nested:1: -1- id 6: divnum -> `0'
-m4debug: input from m4wrap exhausted
-]])
-
-dnl Test addition and subtraction of flags.
-AT_CHECK_M4([--debug=-e --debugmode=+xt in], [0], [[3
-0
-]], [[m4trace: -1- id 1: include(`nested')
-m4trace: -1- id 2: m4wrap(`divnum
-')
-m4trace: -1- id 3: dnl
-m4trace: -1- id 4: dnl
-m4trace: -1- id 5: len(`abc')
-m4trace: -1- id 6: divnum
-]])
-
-dnl Test that shorter prefix is ambiguous.
-AT_CHECK_M4([--debu], [1], [], [stderr])
-AT_CHECK([$SED -e 's/Try.*--help/Try `m4 --help/' stderr], [0],
-[[m4: bad option
-Try `m4 --help' for more information.
-]])
-
-AT_CLEANUP
-
-
-## ---------------- ##
-## discard comments ##
-## ---------------- ##
-
-AT_SETUP([--discard-comments])
-
-AT_DATA([[in]],
-[[This is not a comment # but this is.
-# This line should disappear completely.
-This should not disappear.
-changecom(`<!--', `-->')
-html <!--
-comment
- --> ends.
-]])
-
-AT_CHECK_M4([-c in], [0],
-[[This is not a comment This should not disappear.
-
-html ends.
-]])
-
-dnl check that even when discarding, a comment must be terminated by EOF
-AT_DATA([in], [[changecom(`/*', `*/')dnl
-/* unterminated comment
-]])
-AT_CHECK_M4([--discard-comments in], [1], [],
-[[m4:in:2: end of file in comment
-]])
-
-AT_CLEANUP
-
-
-## -------------- ##
-## fatal warnings ##
-## -------------- ##
-
-AT_SETUP([--fatal-warnings])
-
-AT_DATA([[in]],
-[[dnl()
-dnl()
-dnl()
-]])
-
-dnl By default, warnings don't affect exit status
-AT_CHECK_M4([in], [0], [],
-[[m4:in:1: warning: dnl: extra arguments ignored: 1 > 0
-m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-m4:in:3: warning: dnl: extra arguments ignored: 1 > 0
-]])
-
-dnl With one -E, exit status changes, but execution continues
-AT_CHECK_M4([-E in], [1], [],
-[[m4:in:1: warning: dnl: extra arguments ignored: 1 > 0
-m4:in:2: warning: dnl: extra arguments ignored: 1 > 0
-m4:in:3: warning: dnl: extra arguments ignored: 1 > 0
-]])
-
-dnl With two -E, execution halts immediately
-AT_CHECK_M4([--fatal-warnings --fatal-warnings in], [1], [],
-[[m4:in:1: warning: dnl: extra arguments ignored: 1 > 0
-]])
-
-dnl Exit status can't be affected if there were no warnings
-AT_CHECK_M4([-EEQ in], [0])
-
-AT_CLEANUP
-
-
-## ---------------- ##
-## help and version ##
-## ---------------- ##
-
-AT_SETUP([--help and --version])
-
-AT_CHECK_M4([--help], [0], [stdout])
-AT_CHECK([[$SED -n -e 's|Usage:.*\[OPTION\]... \[FILE\]...|success|p' stdout]],
-[0], [success
-])
-
-AT_CHECK_M4([--version], [0], [stdout])
-AT_CHECK([[$SED -n -e 's|There is NO WARRANTY.*|success|p' stdout]],
-[0], [success
-])
-
-dnl make sure option specified first takes precedence
-AT_CHECK_M4([--help --version], [0], [stdout])
-AT_CHECK([[$SED -n -e 's|Usage:.*\[OPTION\]... \[FILE\]...|success|p' stdout]],
-[0], [success
-])
-
-AT_CHECK_M4([--version --help], [0], [stdout])
-AT_CHECK([[$SED -n -e 's|There is NO WARRANTY.*|success|p' stdout]],
-[0], [success
-])
-
-AT_CLEANUP
-
-
-## ------------------ ##
-## import-environment ##
-## ------------------ ##
-
-AT_SETUP([--import-environment])
-
-AT_DATA([[in]],
-[[`TEST'=TEST
-`ZAPPED'=ZAPPED
-`OVERRIDE'=OVERRIDE
-]])
-
-TEST='This is an environment variable'
-export TEST
-
-ZAPPED='This is an environment variable which we will delete'
-export ZAPPED
-
-OVERRIDE='This is an environment variable which we will change'
-export OVERRIDE
-
-AT_CHECK_M4([--import-environment -UZAPPED -DOVERRIDE='It is changed.' in],
-[0], [[TEST=This is an environment variable
-ZAPPED=ZAPPED
-OVERRIDE=It is changed.
-]])
-
-AT_CLEANUP
-
-
-## ------------- ##
-## nesting-limit ##
-## ------------- ##
-
-AT_SETUP([--nesting-limit])
-
-dnl Check for argument validation.
-
-AT_DATA([in],
-[[define(`echo', `$@')dnl
-echo(echo(echo(echo(`nested string'))))
-echo(echo(echo(echo(echo(echo(echo(echo(echo(`nested string')))))))))
-]])
-
-AT_CHECK_M4([--nesting-limit=-1 in], [1], [],
-[[m4: invalid --nesting-limit argument '-1'
-]])
-
-AT_CHECK_M4([--nesting-limit oops in], [1], [],
-[[m4: invalid --nesting-limit argument 'oops'
-]])
-
-AT_CHECK_M4([-L 10oops in], [1], [],
-[[m4: invalid suffix in -L argument '10oops'
-]])
-
-dnl MiB is the suffix to implict 1, resulting in 1048576
-AT_CHECK_M4([-LMiB in], [0], [[nested string
-nested string
-]])
-
-dnl this assumes size_t is no bigger than 64 bits
-AT_CHECK_M4([-L 123456789012345678901234567890 in], [1], [],
-[[m4: -L argument '123456789012345678901234567890' too large
-]])
-AT_CHECK_M4([--nest 123456789012345678901234567890 in], [1], [],
-[[m4: --nesting-limit argument '123456789012345678901234567890' too large
-]])
-
-AT_CHECK_M4([-L 5 in], [1], [[nested string
-]],
-[[m4:in:3: recursion limit of 5 exceeded, use -L<N> to change it
-]])
-
-dnl per POSIX guidelines, this is a decimal number 10, not octal 8
-AT_CHECK_M4([-L 010 in], [0], [[nested string
-nested string
-]])
-
-AT_CHECK_M4([--nesting-limit=3 -L0 in], [0], [[nested string
-nested string
-]])
-
-AT_CLEANUP
-
-
-## --------------- ##
-## prepend-include ##
-## --------------- ##
-
-AT_SETUP([--prepend-include])
-
-dnl Lots of data to set up.
-AT_DATA([[in]],
-[[include(`foo')dnl
-include(`bar')dnl
-include(`bad')dnl
-include(`blah')dnl
-]])
-
-AT_CHECK([mkdir pre post])
-
-AT_DATA([[pre/foo]], [[in pre/foo
-]])
-AT_DATA([[foo]], [[in ./foo
-]])
-AT_DATA([[bar]], [[in ./bar
-]])
-AT_DATA([[post/bar]], [[in post/bar
-]])
-AT_DATA([[post/blah]], [[in post/blah
-]])
-
-dnl Make circular links in the subdirectories, to ensure that the error
-dnl message when bad cannot be opened comes from the search in ., regardless
-dnl of what else was searched.
-AT_CHECK([ln -s bad pre/bad])
-AT_CHECK([ln -s bad post/bad])
-
-dnl Finally, see that it all works.
-AT_CHECK_M4([-I post -B pre in], [1],
-[[in pre/foo
-in ./bar
-in post/blah
-]], [[m4:in:3: include: cannot open file 'bad': No such file or directory
-]])
-
-AT_CLEANUP
-
-
-## ------------- ##
-## regexp-syntax ##
-## ------------- ##
-
-AT_SETUP([--regexp-syntax])
-
-dnl test argument validation
-
-AT_DATA([[in]], [[regexp(`(', `(')
-]])
-
-AT_CHECK_M4([--regexp-syntax=unknown in], [1], [],
-[[m4: bad syntax-spec: 'unknown'
-]])
-
-AT_CHECK_M4([--regexp-syntax= in], [0], [[0
-]])
-
-AT_CHECK_M4([-rEXTENDED in], [0], [[
-]], [[m4:in:1: warning: regexp: bad regular expression '(': Unmatched ( or \(
-]])
-
-AT_CHECK_M4([-rgnu-m4 in], [0], [[0
-]])
-
-AT_CHECK_M4([-r"gnu M4" in], [0], [[0
-]])
-
-dnl Test behavior of -r intermixed with files
-AT_CHECK_M4([-rEXTENDED in --regexp-syntax in], [0], [[
-0
-]], [[m4:in:1: warning: regexp: bad regular expression '(': Unmatched ( or \(
-]])
-
-AT_CLEANUP
-
-
-## ----- ##
-## safer ##
-## ----- ##
-
-AT_SETUP([--safer])
-
-dnl with --safer, the debugfile macro is crippled, but --debugfile is not
-AT_DATA([[in]],
-[[define(`foo', `1')foo
-debugfile(`trace2')
-define(`foo', `2')foo
-]])
-
-AT_CHECK_M4([--safer --debugfile=trace1 -t foo in], [1],
-[[1
-
-2
-]], [[m4:in:2: debugfile: disabled by --safer
-]])
-
-AT_CHECK([test -f trace2], [1])
-AT_CHECK([cat trace1], [0],
-[[m4trace: -1- foo -> `1'
-m4trace: -1- foo -> `2'
-]])
-
-dnl make sure builtin cannot bypass --safer, and that mkstemp does not
-dnl create file
-AT_DATA([[in]], [[builtin(`mkstemp', `./fooXXXXXX')
-]])
-
-AT_CHECK([echo foo*], [0], [foo*
-])
-
-AT_CHECK_M4([--safer in], [1], [[
-]], [[m4:in:1: mkstemp: disabled by --safer
-]])
-
-AT_CHECK([echo foo*], [0], [foo*
-])
-
-AT_CLEANUP
-
-
-## ---------- ##
-## syncoutput ##
-## ---------- ##
-
-AT_SETUP([--syncoutput])
-
-dnl -s/--synclines implies --syncoutput=1
-AT_DATA([in], [[hi
-]])
-AT_CHECK_M4([-s in], [0],
-[[#line 1 "in"
-hi
-]])
-AT_CHECK_M4([--synclines in], [0],
-[[#line 1 "in"
-hi
-]])
-
-dnl test intermixing option and files
-AT_CHECK_M4([in --syncoutput=1 in --syncoutput in], [0],
-[[hi
-#line 1 "in"
-hi
-hi
-]])
-
-dnl test parse error
-AT_CHECK_M4([--syncoutput=huh in], [0],
-[[hi
-]], [[m4: warning: --syncoutput: unknown directive 'huh'
-]])
-
-AT_CLEANUP
-
-AT_SETUP([--syncoutput and diversions])
-
-dnl synclines should always start at the beginning of a line.
-dnl this does not (yet) happen reliably when diversions do not
-dnl always end in newline
-AT_XFAIL_IF([:])
-AT_DATA([in.m4], [[divert(2)2divert(1)1
-dnl
-undivert
-]])
-
-AT_CHECK_M4([-s in.m4], [0], [[1
-#line 1 "stdin"
-2
-]])
-
-AT_CLEANUP
-
-
-## -------------------- ##
-## traceon and traceoff ##
-## -------------------- ##
-
-AT_SETUP([--traceon and --traceoff])
-
-dnl test intermixing with files
-AT_DATA([[in]], [[divnum
-]])
-AT_CHECK_M4([-d+x in --traceon=divnum in --traceoff=divnum in], [0],
-[[0
-0
-0
-]], [[m4trace: -1- id 2: divnum -> `0'
-]])
-
-dnl test that --traceoff does not warn on untraced name
-AT_CHECK_M4([--traceoff=unknown], [0])
-
-AT_CLEANUP