summaryrefslogtreecommitdiff
path: root/cli-tests/group/testscript
diff options
context:
space:
mode:
Diffstat (limited to 'cli-tests/group/testscript')
-rw-r--r--cli-tests/group/testscript140
1 files changed, 140 insertions, 0 deletions
diff --git a/cli-tests/group/testscript b/cli-tests/group/testscript
new file mode 100644
index 0000000..6269ca2
--- /dev/null
+++ b/cli-tests/group/testscript
@@ -0,0 +1,140 @@
+# file : group/testscript
+# license : MIT; see accompanying LICENSE file
+
+: no-args
+:
+$* ''
+
+: no-groups
+:
+$* '' --foo arg >>EOO
+'--foo'
+'arg'
+EOO
+
+: group-pre
+:
+$* '' { --foo --bar }+ arg1 arg2 >>EOO
+'arg1' '--foo' '--bar'
+'arg2'
+EOO
+
+: group-pre-multi
+:
+$* '' { --foo }+ { --bar }+ arg1 arg2 >>EOO
+'arg1' '--foo' '--bar'
+'arg2'
+EOO
+
+: group-post
+:
+$* '' arg1 arg2 +{ foo bar } >>EOO
+'arg1'
+'arg2' 'foo' 'bar'
+EOO
+
+: group-post-multi
+:
+$* '' arg1 arg2 +{ foo } +{ bar } >>EOO
+'arg1'
+'arg2' 'foo' 'bar'
+EOO
+
+: group-both
+:
+$* '' arg1 { --foo --bar }+ arg2 +{ foo bar } arg3 >>EOO
+'arg1'
+'arg2' '--foo' '--bar' 'foo' 'bar'
+'arg3'
+EOO
+
+: group-both-multi
+:
+$* '' arg1 { --foo }+ { --bar }+ arg2 +{ foo } +{ bar } arg3 >>EOO
+'arg1'
+'arg2' '--foo' '--bar' 'foo' 'bar'
+'arg3'
+EOO
+
+: multi-group
+:
+$* '' { --foo }+ arg1 arg2 +{ bar } >>EOO
+'arg1' '--foo'
+'arg2' 'bar'
+EOO
+
+: empty-group
+:
+$* '' { }+ arg1 arg2 +{ } >>EOO
+'arg1'
+'arg2'
+EOO
+
+: escape-arg
+:
+$* '' '\{' '\}' '\+{' '\}+' '{x' '}x' >>EOO
+'{'
+'}'
+'+{'
+'}+'
+'{x'
+'}x'
+EOO
+
+: escape-group
+:
+$* '' { '\{' '\}' '\+{' '\}+' '{x' '}x' }+ arg >>EOO
+'arg' '{' '}' '+{' '}+' '{x' '}x'
+EOO
+
+: not-group
+:
+$* '' { --foo } 2>>EOE != 0
+expected group separator '}+' instead of '}', use '\}' to escape
+EOE
+
+: no-arg-pre
+:
+$* '' { --foo }+ 2>>EOE != 0
+unexpected group separator '{', use '\{' to escape
+EOE
+
+: no-arg-pre-empty
+:
+$* '' { }+ 2>>EOE != 0
+unexpected group separator '{', use '\{' to escape
+EOE
+
+: no-arg-post
+:
+$* '' +{ --foo } 2>>EOE != 0
+unexpected group separator '+{', use '\+{' to escape
+EOE
+
+: no-arg-post-empty
+:
+$* '' +{ } 2>>EOE != 0
+unexpected group separator '+{', use '\+{' to escape
+EOE
+
+: unhandled-group-pre
+:
+$* 'g' { --foo }+ arg >>EOO 2>>EOE != 0
+'arg'
+EOO
+unexpected grouped argument '--foo' for argument 'arg'
+EOE
+
+: unhandled-group-post
+:
+$* 'g' arg +{ bar } >>EOO 2>>EOE != 0
+'arg'
+EOO
+unexpected grouped argument 'bar' for argument 'arg'
+EOE
+
+: unhandled-group-skip
+:
+$* 'sg' { --foo }+ arg +{ bar } >>EOO
+
+EOO