diff options
Diffstat (limited to 'libmailutils/tests/wordsplit.at')
-rw-r--r-- | libmailutils/tests/wordsplit.at | 787 |
1 files changed, 0 insertions, 787 deletions
diff --git a/libmailutils/tests/wordsplit.at b/libmailutils/tests/wordsplit.at deleted file mode 100644 index f695399d9..000000000 --- a/libmailutils/tests/wordsplit.at +++ /dev/null @@ -1,787 +0,0 @@ -# This file is part of GNU Mailutils. -*- Autotest -*- -# Copyright (C) 2007-2019 Free Software Foundation, Inc. -# -# GNU Mailutils 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, or (at -# your option) any later version. -# -# GNU Mailutils is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GNU Mailutils. If not, see <http://www.gnu.org/licenses/>. - -AT_BANNER(Wordsplit) - -m4_pushdef([wspnum],[0]) -m4_pushdef([wspid]) -m4_pushdef([wspgroupnum]) -m4_pushdef([wspgroupname]) - -m4_pushdef([genkw],[dnl -m4_define([wspid],m4_format([wordsplit%03d wsp%03d],wspnum))dnl -m4_if(wspgroupname,,,[m4_define([wspid],wspid[ ]dnl -m4_format(wspgroupname[ ]wspgroupname[%03d],wspgroupnum))dnl -m4_define([wspgroupnum],m4_incr(wspgroupnum))])dnl -m4_define([wspnum],m4_incr(wspnum))dnl -wspid]) - -m4_pushdef([WSPGROUP],[ -m4_define([wspgroupname],$1) -m4_define([wspgroupnum],0)]) - -dnl ------------------------------------------------------------ -dnl TESTWSP([NAME], [KW = `'], [OPTS], [INPUT], [STDOUT = `'], -dnl [STDERR = `'], [ENV]) -dnl -m4_pushdef([TESTWSP],[ -m4_pushdef([MU_TEST_GROUP],[Wordsplit]) -m4_pushdef([MU_TEST_KEYWORDS],[wordsplit wsp]) -m4_pushdef([MU_TEST_COMMAND],[$7 wsp $3]) -MU_GENERIC_TEST([$1],[genkw $2],[$4],[],[$5],[$6]) -m4_popdef([MU_TEST_COMMAND]) -m4_popdef([MU_TEST_KEYWORDS]) -m4_popdef([MU_TEST_GROUP]) -]) - -dnl ------------------------------------------------------------ -dnl The first part reproduces legacy argcv tests -dnl ------------------------------------------------------------ - -TESTWSP([simple input],[],[], -[1 2 3], -[NF: 3 -0: 1 -1: 2 -2: 3 -]) - -TESTWSP([quoted space],[],[], -[quoted\ space], -[NF: 1 -0: "quoted space" -]) - -TESTWSP([tab character],[],[], -[a "tab character"], -[NF: 2 -0: a -1: tab\tcharacter -]) - -WSPGROUP(wsp-escape) - -TESTWSP([octal and hex escapes],[],[], -[\157\143\164\141\154\40and\x20\x68\x65\x78], -[NF: 1 -0: "octal and hex" -]) - -TESTWSP([octal and hex escapes 2],[],[], -[\157\143\164\141\154\40 and \x20\x68\x65\x78], -[NF: 3 -0: "octal " -1: and -2: " hex" -]) - -TESTWSP([escape representation],[],[], -[A\x3-\48\39], -[NF: 1 -0: A\003-\0048\0039 -]) - -WSPGROUP() - -dnl ------------------------------------------------------------ -dnl Test worsplit-specific behavior -dnl ------------------------------------------------------------ -TESTWSP([append],[],[append], -[jeden dwa trzy -cztery -piec szesc], -[NF: 3 -0: jeden -1: dwa -2: trzy -NF: 4 -0: jeden -1: dwa -2: trzy -3: cztery -NF: 6 -0: jeden -1: dwa -2: trzy -3: cztery -4: piec -5: szesc -]) - -TESTWSP([dooffs],[],[dooffs 3 jeden dwa trzy], -[cztery piec], -[NF: 2 (3) -(0): jeden -(1): dwa -(2): trzy -3: cztery -4: piec -]) - -WSPGROUP(wsp-var) - -TESTWSP([variable substitutions: single var],[],[], -[a $FOO test], -[NF: 3 -0: a -1: bar -2: test -], -[], -[FOO=bar]) - -TESTWSP([variable substitutions: concatenated vars],[],[], -[a $FOO${BAR}ent test], -[NF: 3 -0: a -1: stringent -2: test -], -[], -[FOO=str BAR=ing]) - -TESTWSP([variable substitutions: field splitting],[],[], -[a $FOO test], -[NF: 4 -0: a -1: variable -2: substitution -3: test -], -[], -[FOO="variable substitution"]) - -TESTWSP([variable substitutions: double-quoted variable],[],[], -[a "$FOO" test], -[NF: 3 -0: a -1: "variable substitution" -2: test -], -[], -[FOO="variable substitution"]) - -TESTWSP([variable substitutions: single-quoted variable],[],[], -[a '$FOO' test], -[NF: 3 -0: a -1: $FOO -2: test -], -[], -[FOO="variable substitution"]) - -TESTWSP([undefined variables 1],[],[], -[a $FOO test a${FOO}b], -[NF: 3 -0: a -1: test -2: ab -], -[], -[unset FOO;]) - -TESTWSP([undefined variables 2],[],[keepundef], -[a $FOO test a${FOO}b], -[NF: 4 -0: a -1: $FOO -2: test -3: a${FOO}b -], -[], -[unset FOO;]) - -TESTWSP([warn about undefined variables],[],[warnundef], -[$FOO], -[NF: 0 -], -[warning: undefined variable `FOO' -], -[unset FOO;]) - -TESTWSP([bail out on undefined variables],[],[undef], -[$FOO], -[], -[undefined variable -], -[unset FOO;]) - -TESTWSP([disable variable expansion],[],[novar], -[$FOO], -[NF: 1 -0: $FOO -], -[], -[FOO=bar]) - -TESTWSP([K/V environment],[],[env_kv], -[$FOO a$BAZ], -[NF: 2 -0: bar -1: aqux -], -[], -[FOO=bar BAZ=qux]) - -TESTWSP([nosplit with expansion],[],[nosplit], -[a $FOO test], -[NF: 1 -0: "a variable expansion test\n" -], -[], -[FOO="variable expansion"]) - -TESTWSP([nosplit without expansion],[],[nosplit novar], -[a $FOO test], -[NF: 1 -0: "a $FOO test\n" -], -[], -[FOO="variable expansion"]) - -TESTWSP([default value (defined)],[],[], -[${FOO:-bar}], -[NF: 1 -0: qux -], -[], -[FOO=qux]) - -TESTWSP([default value],[],[], -[${FOO:-bar}], -[NF: 1 -0: bar -]) - -TESTWSP([default value (defined)],[],[], -[${FOO:-bar}], -[NF: 1 -0: qux -], -[], -[FOO=qux]) - -TESTWSP([default value (:- null)],[],[], -[${FOO:-bar}], -[NF: 1 -0: bar -], -[], -[FOO=]) - -TESTWSP([default value (- null)],[],[], -[${FOO-bar}], -[NF: 0 -], -[], -[FOO=]) - -TESTWSP([default value (- null, unset)],[],[], -[${FOO-bar}], -[NF: 1 -0: bar -]) - -TESTWSP([assign default values],[],[], -[${FOO=bar} -$FOO], -[NF: 1 -0: bar -NF: 1 -0: bar -]) - -TESTWSP([default error message (var defined)],[],[], -[a ${FOO:?} test], -[NF: 3 -0: a -1: bar -2: test -], -[], -[FOO=bar]) - -TESTWSP([default error message],[],[], -[${FOO:?}], -[NF: 0 -], -[FOO: variable null or not set -]) - -TESTWSP([custom error message (defined)],[wsp-custom-err wsp-custom-err00],[], -[a ${FOO:?please define it} test], -[NF: 3 -0: a -1: bar -2: test -], -[], -[FOO=bar]) - -TESTWSP([custom error message],[wsp-custom-err wsp-custom-err01],[], -[a ${FOO:?please define it} test], -[NF: 2 -0: a -1: test -], -[FOO: please define it -]) - -TESTWSP([alternate value (defined)],[wsp-alt wsp-alt00],[], -[a ${FOO:+isset} test], -[NF: 3 -0: a -1: isset -2: test -], -[], -[FOO=bar]) - -TESTWSP([alternate value],[wsp-alt wsp-alt01],[], -[a ${FOO:+isset} test], -[NF: 2 -0: a -1: test -], -[], -[unset FOO;]) - -TESTWSP([getvar],[wsp-getvar], -[foo=bar x=quux], -[begin $foo $x end], -[NF: 4 -0: begin -1: bar -2: quux -3: end -], -[], -[], -[unset foo; unset x]) - -TESTWSP([getvar and env],[wsp-getvar], -[foo=bar x=quux y=xur], -[begin $foo $TVAR $x $y end], -[NF: 6 -0: begin -1: bar -2: 12 -3: quux -4: zwar -5: end -], -[], -[TVAR=12 y=zwar], -[unset foo; unset x]) - -TESTWSP([getvar, alternate value],[wsp-getvar], -[foo=bar], -[a ${foo:+isset}], -[NF: 2 -0: a -1: isset -]) - -WSPGROUP() - -TESTWSP([ignore quotes],[],[-quote], -["a text"], -[NF: 2 -0: "\"a" -1: "text\"" -]) - -WSPGROUP(wsp-delim) - -TESTWSP([custom delimiters (squeeze)],[],[delim : -ws trimnl], -[semicolon: separated::list: of :words], -[NF: 5 -0: semicolon -1: " separated" -2: list -3: " of " -4: words -]) - -TESTWSP([custom delimiters (no squeeze)],[],[delim : -ws -squeeze_delims trimnl], -[semicolon: separated::list: of :words], -[NF: 6 -0: semicolon -1: " separated" -2: "" -3: list -4: " of " -5: words -]) - -TESTWSP([custom, with returned delimiters],[],[delim : -ws trimnl return_delims], -[semicolon: separated::list: of :words], -[NF: 9 -0: semicolon -1: : -2: " separated" -3: : -4: list -5: : -6: " of " -7: : -8: words -]) - -TESTWSP([custom, with returned & squeezed delimiters],[],[delim : -ws trimnl return_delims -squeeze_delims], -[semicolon: separated::list: of :words], -[NF: 10 -0: semicolon -1: : -2: " separated" -3: : -4: : -5: list -6: : -7: " of " -8: : -9: words -]) - -WSPGROUP(wsp-sed) - -TESTWSP([sed expressions],[],[sed], -[arg1 s/foo/bar/g;s/bar baz/quz quux/ arg2], -[NF: 3 -0: arg1 -1: "s/foo/bar/g;s/bar baz/quz quux/" -2: arg2 -]) - -WSPGROUP() - -TESTWSP([C escapes on],[],[cescapes], -[a\ttab form\ffeed and new\nline], -[NF: 4 -0: a\ttab -1: form\ffeed -2: and -3: new\nline -]) - -TESTWSP([C escapes off],[],[-cescapes], -[a\ttab form\ffeed and new\nline], -[NF: 4 -0: attab -1: formffeed -2: and -3: newnline -]) - -TESTWSP([ws elimination],[],[delim ' ()' ws return_delims], -[( list items )], -[NF: 4 -0: ( -1: list -2: items -3: ) -]) - -TESTWSP([empty quotes],[],[delim : ws return_delims], -[t=""], -[NF: 1 -0: t= -]) - -TESTWSP([delimiter following empty quotes],[],[delim : ws return_delims], -[t="":r], -[NF: 3 -0: t= -1: : -2: r -]) - -TESTWSP([suppress ws trimming within quotes],[], -[default delim , ws return_delims], -[nocomponent,nonewline, formatfield="In message %{text}, "], -[NF: 5 -0: nocomponent -1: , -2: nonewline -3: , -4: "formatfield=In message %{text}, " -]) - -TESTWSP([unescape],[],[-default novar nocmd quote escape :+:'\\""'], -[\Seen "quote \"" "bs \\"], -[NF: 3 -0: \\Seen -1: "quote \"" -2: "bs \\" -]) - -TESTWSP([unescape: word/quote], -[wsp-unescape wsp-unescape-word], -[-default novar nocmd quote escape-word '\\""' escape-quote ':+0x:\\""'], -[\Seen "quote \"" "bs \\" "3\x31 \101" 3\x31 \101], -[NF: 6 -0: Seen -1: "quote \"" -2: "bs \\" -3: "31 A" -4: 3x31 -5: 101 -]) - -TESTWSP([dquote],[],[-default novar nocmd dquote], -[a "quoted example" isn't it], -[NF: 4 -0: a -1: "quoted example" -2: isn't -3: it -]) - -TESTWSP([squote],[],[-default novar nocmd squote], -[a 'quoted example' isn"t it], -[NF: 4 -0: a -1: "quoted example" -2: "isn\"t" -3: it -]) - -WSPGROUP(wsp-incr) - -TESTWSP([incremental],[],[incremental], -[incremental "input test" line - - -], -[NF: 1 -0: incremental -NF: 1 -0: "input test" -NF: 1 -0: line -], -[input exhausted -]) - -TESTWSP([incremental append],[],[incremental append], -[incremental "input test" line - - -], -[NF: 1 -0: incremental -NF: 2 -0: incremental -1: "input test" -NF: 3 -0: incremental -1: "input test" -2: line -], -[input exhausted -]) - -TESTWSP([incremental ws],[],[return_delims -squeeze_delims incremental ws], -[a list test - - -], -[NF: 1 -0: a -NF: 1 -0: list -NF: 1 -0: test -], -[input exhausted -]) - -TESTWSP([incremental nosplit],[],[incremental nosplit], -[incremental "input test" line -], -[NF: 1 -0: "incremental \"input test\" line" -], -[input exhausted -]) - -TESTWSP([simple command substitution],[],[-nocmd], -[begin $(words a b) end], -[NF: 4 -0: begin -1: a -2: b -3: end -]) - -TESTWSP([quoted command substitution],[],[-nocmd], -[begin "$(words a b)" end], -[NF: 3 -0: begin -1: "a b" -2: end -]) - -TESTWSP([coalesced command substitution],[],[-nocmd], -[begin($(words a b))end], -[NF: 2 -0: begin(a -1: b)end -]) - -TESTWSP([quoted coalesced command substitution],[],[-nocmd], -["begin($(words a b))end"], -[NF: 1 -0: "begin(a b)end" -]) - -TESTWSP([variable and command substitution],[],[-nocmd -novar], -[begin $X $(words $X $Y) end], -[NF: 5 -0: begin -1: a -2: a -3: b -4: end -],[],[X=a Y=b]) - -TESTWSP([variable expansion and command substitution in quotes],[],[-nocmd -novar], -["${BEGIN}($(words $X $Y))end"], -[NF: 1 -0: "begin(a b)end" -],[],[X=a Y=b BEGIN=begin]) - -TESTWSP([nested commands],[],[-nocmd -novar], -[$(words output $(words in$SUFFIX text) end)], -[NF: 4 -0: output -1: input -2: text -3: end -],[],[SUFFIX=put]) - -dnl Something that doesn't fit into TESTWSP - -AT_SETUP([pathname expansion]) -AT_KEYWORDS([wordsplit wsp wsp-path wsp-path-1]) -AT_CHECK([ -mkdir dir -> dir/1.c -> dir/2.c -> dir/3.b - -wsp pathexpand<<'EOT' -begin dir/*.c end -EOT -], -[0], -[NF: 4 -0: begin -1: dir/1.c -2: dir/2.c -3: end -]) -AT_CLEANUP - -AT_SETUP([pathname expansion: no match]) -AT_KEYWORDS([wordsplit wsp wsp-path wsp-path-2]) -AT_CHECK([ -mkdir dir -> dir/1.c -> dir/2.b - -wsp pathexpand<<'EOT' -begin dir/*.d end -EOT -], -[0], -[NF: 3 -0: begin -1: dir/*.d -2: end -]) -AT_CLEANUP - -AT_SETUP([pathname expansion: nullglob]) -AT_KEYWORDS([wordsplit wsp wsp-path wsp-path-3]) -AT_CHECK([ -mkdir dir -> dir/1.c -> dir/2.b - -wsp pathexpand nullglob<<'EOT' -begin dir/*.d end -EOT -], -[0], -[NF: 2 -0: begin -1: end -]) -AT_CLEANUP - -AT_SETUP([pathname expansion: failglob]) -AT_KEYWORDS([wordsplit wsp wsp-path wsp-path-4]) -AT_CHECK([ -mkdir dir -> dir/1.c -> dir/2.b - -wsp pathexpand failglob<<'EOT' -begin dir/*.d end -EOT -], -[0], -[], -[no files match pattern dir/*.d -]) -AT_CLEANUP - -TESTWSP([append],[],[-- extra arguments follow], -[some words and], -[NF: 6 -0: some -1: words -2: and -3: extra -4: arguments -5: follow -]) - -TESTWSP([append + dooffs + env],[], -[dooffs 2 preface words V=2 -- extra arguments follow], -[some words and var=$V], -[NF: 7 (2) -(0): preface -(1): words -2: some -3: words -4: and -5: var=2 -6: extra -7: arguments -8: follow -]) - - -m4_popdef([TESTWSP]) -m4_popdef([wspnum]) -m4_popdef([wspid]) -m4_popdef([genkw]) -m4_popdef([wspgroupnum]) -m4_popdef([wspgroupname]) -m4_popdef([WSPGROUP]) |