(CommandList children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:test_description) op: Equal rhs: {(SQ <'test git rev-parse --parseopt'>)} spids: [4] ) ] spids: [4] ) (C {(.)} {(./test-lib.sh)}) (C {(test_expect_success)} {(SQ <'setup optionspec'>)} { (SQ <'\n'> <'\tsed -e "s/^|//" >optionspec <<\\EOF\n'> <'|some-command [options] <args>...\n'> <'|\n'> <'|some-command does foo and bar!\n'> <'|--\n'> <'|h,help show the help\n'> <'|\n'> <'|foo some nifty option --foo\n'> <'|bar= some cool option --bar with an argument\n'> <'|b,baz a short and long option\n'> <'|\n'> <'| An option group Header\n'> <'|C? option C with an optional argument\n'> <'|d,data? short and long option with an optional argument\n'> <'|\n'> <'| Argument hints\n'> <'|B=arg short option required argument\n'> <'|bar2=arg long option required argument\n'> <'|e,fuz=with-space short and long option required argument\n'> <'|s?some short option optional argument\n'> <'|long?data long option optional argument\n'> <'|g,fluf?path short and long option optional argument\n'> <'|longest=very-long-argument-hint a very long argument hint\n'> <'|pair=key=value with an equals sign in the hint\n'> <'|short-hint=a with a one symbol hint\n'> <'|\n'> <'|Extras\n'> <'|extra1 line above used to cause a segfault but no longer does\n'> <'EOF\n'> ) } ) (C {(test_expect_success)} {(SQ <'test --parseopt help output'>)} { (SQ <'\n'> <'\tsed -e "s/^|//" >expect <<\\END_EXPECT &&\n'> <'|cat <<\\EOF\n'> <'|usage: some-command [options] <args>...\n'> <'|\n'> <'| some-command does foo and bar!\n'> <'|\n'> <'| -h, --help show the help\n'> <'| --foo some nifty option --foo\n'> <'| --bar ... some cool option --bar with an argument\n'> <'| -b, --baz a short and long option\n'> <'|\n'> <'|An option group Header\n'> <'| -C[...] option C with an optional argument\n'> <'| -d, --data[=...] short and long option with an optional argument\n'> <'|\n'> <'|Argument hints\n'> <'| -B <arg> short option required argument\n'> <'| --bar2 <arg> long option required argument\n'> <'| -e, --fuz <with-space>\n'> <'| short and long option required argument\n'> <'| -s[<some>] short option optional argument\n'> <'| --long[=<data>] long option optional argument\n'> <'| -g, --fluf[=<path>] short and long option optional argument\n'> <'| --longest <very-long-argument-hint>\n'> <'| a very long argument hint\n'> <'| --pair <key=value> with an equals sign in the hint\n'> <'| --short-hint <a> with a one symbol hint\n'> <'|\n'> <'|Extras\n'> <'| --extra1 line above used to cause a segfault but no longer does\n'> <'|\n'> <'|EOF\n'> <'END_EXPECT\n'> <'\ttest_expect_code 129 git rev-parse --parseopt -- -h > output < optionspec &&\n'> <'\ttest_i18ncmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.1'>)} {(DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --foo --bar 'ham' -b -- 'arg'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt'>)} { (SQ <'\n'> <'\tgit rev-parse --parseopt -- --foo --bar=ham --baz arg < optionspec > output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'test --parseopt with mixed options and arguments'>)} { (SQ <'\n'> <'\tgit rev-parse --parseopt -- --foo arg --bar=ham --baz < optionspec > output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.2'>)} {(DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --foo -- 'arg' '--bar=ham'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt with --'>)} { (SQ <'\n'> <'\tgit rev-parse --parseopt -- --foo -- arg --bar=ham < optionspec > output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'test --parseopt --stop-at-non-option'>)} { (SQ <'\n'> < '\tgit rev-parse --parseopt --stop-at-non-option -- --foo arg --bar=ham < optionspec > output &&\n' > <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.3'>)} {(DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --foo -- '--' 'arg' '--bar=ham'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt --keep-dashdash'>)} { (SQ <'\n'> < '\tgit rev-parse --parseopt --keep-dashdash -- --foo -- arg --bar=ham < optionspec > output &&\n' > <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.4'>)} {(DQ ('\n') ('\tcat >expect <<EOF\n') ("set -- --foo -- '--' 'arg' '--spam=ham'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt --keep-dashdash --stop-at-non-option with --'>)} { (SQ <'\n'> < '\tgit rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo -- arg --spam=ham <optionspec >output &&\n' > <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.5'>)} {(DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --foo -- 'arg' '--spam=ham'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt --keep-dashdash --stop-at-non-option without --'>)} { (SQ <'\n'> < '\tgit rev-parse --parseopt --keep-dashdash --stop-at-non-option -- --foo arg --spam=ham <optionspec >output &&\n' > <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.6'>)} { (DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --foo --bar='z' --baz -C'Z' --data='A' -- 'arg'\n") ('EOF\n') ) } ) (C {(test_expect_success)} {(SQ <'test --parseopt --stuck-long'>)} { (SQ <'\n'> < '\tgit rev-parse --parseopt --stuck-long -- --foo --bar=z -b arg -CZ -dA <optionspec >output &&\n' > <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.7'>)} {(DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --data='' -C --baz -- 'arg'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt --stuck-long and empty optional argument'>)} { (SQ <'\n'> <'\tgit rev-parse --parseopt --stuck-long -- --data= arg -C -b <optionspec >output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'setup expect.8'>)} {(DQ ('\n') ('\tcat > expect <<EOF\n') ("set -- --data --baz -- 'arg'\n") ('EOF\n'))} ) (C {(test_expect_success)} {(SQ <'test --parseopt --stuck-long and long option with unset optional argument'>)} { (SQ <'\n'> <'\tgit rev-parse --parseopt --stuck-long -- --data arg -b <optionspec >output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {(test_expect_success)} {(SQ <'test --parseopt --stuck-long and short option with unset optional argument'>)} { (SQ <'\n'> <'\tgit rev-parse --parseopt --stuck-long -- -d arg -b <optionspec >output &&\n'> <'\ttest_cmp expect output\n'> ) } ) (C {(test_done)}) ] )