(command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'expectedF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'expectedF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'expectedF='> name:expectedF) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TMPDIR> var_name: TMPDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) right: <Id.Right_DollarBrace '}'> ) <'/expected'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'returnF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'returnF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'returnF='> name:returnF) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TMPDIR> var_name: TMPDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) right: <Id.Right_DollarBrace '}'> ) <'/return'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'stdoutF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stdoutF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stdoutF='> name:stdoutF) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TMPDIR> var_name: TMPDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) right: <Id.Right_DollarBrace '}'> ) <'/STDOUT'> ) } ) ] redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'stderrF='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'stderrF='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'stderrF='> name:stderrF) op: assign_op.Equal rhs: { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name TMPDIR> var_name: TMPDIR suffix_op: (suffix_op.Unary op: <Id.VTest_ColonHyphen _> arg_word: {<Id.Lit_Slash '/'> <tmp>} ) right: <Id.Right_DollarBrace '}'> ) <'/STDERR'> ) } ) ] redirects: [] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {<'./shflags_test_helpers'>}] redirects: [] do_fork: T ) (command.ShFunction name_tok: <testHelp> name: testHelp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <_testHelp> more_env: [] words: [{<_testHelp>} {(SQ <-h>)}] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <flags_getoptIsEnh> more_env: [] words: [{<flags_getoptIsEnh>}] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return>) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <_testHelp> more_env: [] words: [{<_testHelp>} {(SQ <--help>)}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <_testHelp> name: _testHelp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'flag='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'flag='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'flag='> name:flag) op: assign_op.Equal rhs: {($ Id.VSub_Number 1)} ) ] redirects: [] ) (command.Simple blame_tok: <th_clearReturn> more_env: [] words: [{<th_clearReturn>}] redirects: [] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <FLAGS> more_env: [] words: [{<FLAGS>} {(DQ (${ Id.VSub_Name flag))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name stdoutF))} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ (${ Id.VSub_Name stderrF))} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name returnF))} ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <assertFalse> more_env: [] words: [ {<assertFalse>} {(SQ <'a call for help should return a non-zero exit code.'>)} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <th_queryReturn> more_env: [] words: [{<th_queryReturn>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'show this help'>)} {(DQ (${ Id.VSub_Name stderrF))}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'grepped='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'grepped='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'grepped='> name:grepped) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [ {<assertTrue>} {(SQ <'short request for help should have produced some help output.'>)} {(${ Id.VSub_Name grepped)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name grepped)} {<-ne>} {(DQ (${ Id.VSub_Name FLAGS_TRUE))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <th_showOutput> more_env: [] words: [{<th_showOutput>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS_HELP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS_HELP='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'FLAGS_HELP='> name:FLAGS_HELP) op: assign_op.Equal rhs: {(SQ <'this is a test'>)} ) ] redirects: [] ) (command.Simple blame_tok: <FLAGS> more_env: [] words: [{<FLAGS>} {(DQ (${ Id.VSub_Name flag))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name stdoutF))} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ (${ Id.VSub_Name stderrF))} ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <grep> more_env: [] words: [{<grep>} {(SQ <'this is a test'>)} {(DQ (${ Id.VSub_Name stderrF))}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'grepped='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'grepped='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'grepped='> name:grepped) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [ {<assertTrue>} {(SQ <'setting FLAGS_HELP did not produce expected result'>)} {(${ Id.VSub_Name grepped)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name grepped)} {<-ne>} {(DQ (${ Id.VSub_Name FLAGS_TRUE))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <th_showOutput> more_env: [] words: [{<th_showOutput>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.Simple blame_tok: <DEFINE_boolean> more_env: [] words: [ {<DEFINE_boolean>} {<b>} {<false>} {(DQ <'help string containing a \' char'>)} {<b>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <FLAGS> more_env: [] words: [{<FLAGS>} {(DQ (${ Id.VSub_Name flag))}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name stdoutF))} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ (${ Id.VSub_Name stderrF))} ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <grep> more_env: [] words: [ {<grep>} {(DQ <'help string containing a \' char'>)} {(DQ (${ Id.VSub_Name stderrF))} ] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'grepped='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'grepped='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'grepped='> name:grepped) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [ {<assertTrue>} {(DQ <'help strings containing apostrophes don\'t work'>)} {(${ Id.VSub_Name grepped)} ] redirects: [] do_fork: T ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {(${ Id.VSub_Name grepped)} {<-ne>} {(DQ (${ Id.VSub_Name FLAGS_TRUE))} {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <th_showOutput> more_env: [] words: [{<th_showOutput>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DAmp _>] ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <mock_flags_columns> name: mock_flags_columns body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {<80>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <testStandardHelpOutput> name: testStandardHelpOutput body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <flags_getoptIsStd> more_env: [] words: [{<flags_getoptIsStd>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <startSkipping> more_env: [] words: [{<startSkipping>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <DEFINE_boolean> more_env: [] words: [{<DEFINE_boolean>} {<test_bool>} {<false>} {(SQ <'test boolean'>)} {<b>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_integer> more_env: [] words: [{<DEFINE_integer>} {<test_int>} {<0>} {(SQ <'test integer'>)} {<i>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_string> more_env: [] words: [{<DEFINE_string>} {<test_str>} {(SQ )} {(SQ <'test string'>)} {<s>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_string> more_env: [] words: [ {<DEFINE_string>} {<long_desc>} {(SQ <blah>)} {(SQ <'testing of a long description to force wrap of default value'>)} {<D>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_string> more_env: [] words: [ {<DEFINE_string>} {<long_default>} {(SQ <this_is_a_long_default_value_to_force_alternate_indentation>)} {(SQ <'testing of long default value'>)} {<F>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'help='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'help='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help) op: assign_op.Equal rhs: {(SQ <'USAGE: standard [flags] args'>)} ) ] redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name expectedF))} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name help) <'\n'> <'flags:\n'> <' -b test boolean (default: false)\n'> <' -i test integer (default: 0)\n'> <' -s test string (default: \'\')\n'> <' -D testing of a long description to force wrap of default value\n'> <' (default: \'blah\')\n'> <' -F testing of long default value\n'> < ' (default: \'this_is_a_long_default_value_to_force_alternate_indentation\')\n' > <' -h show this help (default: false)\n'> ] ) ) ] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.ShFunction name_tok: <_flags_columns> name: _flags_columns body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <mock_flags_columns> more_env: [] words: [{<mock_flags_columns>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS_HELP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS_HELP='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAGS_HELP='> name: FLAGS_HELP ) op: assign_op.Equal rhs: {(${ Id.VSub_Name help)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <FLAGS> more_env: [] words: [{<FLAGS>} {<-h>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name stdoutF))} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ (${ Id.VSub_Name stderrF))} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name returnF))} ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <assertFalse> more_env: [] words: [ {<assertFalse>} {(SQ <'a call for help should return a non-zero exit code.'>)} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <th_queryReturn> more_env: [] words: [{<th_queryReturn>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <diff> more_env: [] words: [{<diff>} {(DQ (${ Id.VSub_Name expectedF))} {(DQ (${ Id.VSub_Name stderrF))}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'r3turn='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'r3turn='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r3turn='> name:r3turn) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [{<assertTrue>} {(SQ <'unexpected help output'>)} {(${ Id.VSub_Name r3turn)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <th_showOutput> more_env: [] words: [ {<th_showOutput>} {(${ Id.VSub_Name r3turn)} {(DQ (${ Id.VSub_Name stdoutF))} {(DQ (${ Id.VSub_Name stderrF))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <testEnhancedHelpOutput> name: testEnhancedHelpOutput body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <flags_getoptIsEnh> more_env: [] words: [{<flags_getoptIsEnh>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <startSkipping> more_env: [] words: [{<startSkipping>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Simple blame_tok: <DEFINE_boolean> more_env: [] words: [{<DEFINE_boolean>} {<test_bool>} {<false>} {(SQ <'test boolean'>)} {<b>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_integer> more_env: [] words: [{<DEFINE_integer>} {<test_int>} {<0>} {(SQ <'test integer'>)} {<i>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_string> more_env: [] words: [{<DEFINE_string>} {<test_str>} {(SQ )} {(SQ <'test string'>)} {<s>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_string> more_env: [] words: [ {<DEFINE_string>} {<long_desc>} {(SQ <blah>)} {(SQ <'testing of a long description to force wrap of default value'>)} {<D>} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <DEFINE_string> more_env: [] words: [ {<DEFINE_string>} {<long_default>} {(SQ <this_is_a_long_default_value_to_force_alternate_indentation>)} {(SQ <'testing of long default value'>)} {<F>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'help='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'help='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'help='> name:help) op: assign_op.Equal rhs: {(SQ <'USAGE: enhanced [flags] args'>)} ) ] redirects: [] ) (command.Simple blame_tok: <cat> more_env: [] words: [{<cat>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name expectedF))} ) (Redir op: <Id.Redir_DLess '<<'> loc: (redir_loc.Fd fd:0) arg: (redir_param.HereDoc here_begin: {<EOF>} here_end_tok: <Id.Undefined_Tok ''> stdin_parts: [ (${ Id.VSub_Name help) <'\n'> <'flags:\n'> <' -b,--[no]test_bool: test boolean (default: false)\n'> <' -i,--test_int: test integer (default: 0)\n'> <' -s,--test_str: test string (default: \'\')\n'> < ' -D,--long_desc: testing of a long description to force wrap of default value\n' > <' (default: \'blah\')\n'> <' -F,--long_default: testing of long default value\n'> < ' (default: \'this_is_a_long_default_value_to_force_alternate_indentation\')\n' > <' -h,--help: show this help (default: false)\n'> ] ) ) ] do_fork: T ) (command.Subshell left: <Id.Op_LParen _> child: (command.CommandList children: [ (command.ShFunction name_tok: <_flags_columns> name: _flags_columns body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Sentence child: (command.Simple blame_tok: <mock_flags_columns> more_env: [] words: [{<mock_flags_columns>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.Sentence child: (command.ShAssignment left: <Id.Lit_VarLike 'FLAGS_HELP='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'FLAGS_HELP='> lhs: (sh_lhs_expr.Name left: <Id.Lit_VarLike 'FLAGS_HELP='> name: FLAGS_HELP ) op: assign_op.Equal rhs: {(${ Id.VSub_Name help)} ) ] redirects: [] ) terminator: <Id.Op_Semi _> ) (command.Simple blame_tok: <FLAGS> more_env: [] words: [{<FLAGS>} {<-h>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name stdoutF))} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ (${ Id.VSub_Name stderrF))} ) ] do_fork: T ) (command.Simple blame_tok: <echo> more_env: [] words: [{<echo>} {($ Id.VSub_QMark '?')}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name returnF))} ) ] do_fork: T ) ] ) right: <Id.Right_Subshell _> redirects: [] ) (command.Simple blame_tok: <assertFalse> more_env: [] words: [ {<assertFalse>} {(SQ <'a call for help should return a non-zero exit code.'>)} { (DQ (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <th_queryReturn> more_env: [] words: [{<th_queryReturn>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) ) } ] redirects: [] do_fork: T ) (command.Simple blame_tok: <diff> more_env: [] words: [{<diff>} {(DQ (${ Id.VSub_Name expectedF))} {(DQ (${ Id.VSub_Name stderrF))}] redirects: [(Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<'/dev/null'>})] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'differed='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'differed='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'differed='> name:differed) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [{<assertTrue>} {(SQ <'unexpected help output'>)} {(${ Id.VSub_Name differed)}] redirects: [] do_fork: T ) (command.Simple blame_tok: <th_showOutput> more_env: [] words: [ {<th_showOutput>} {(${ Id.VSub_Name differed)} {(DQ (${ Id.VSub_Name stdoutF))} {(DQ (${ Id.VSub_Name stderrF))} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <testNoHelp> name: testNoHelp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.AndOr children: [ (command.Simple blame_tok: <flags_getoptIsEnh> more_env: [] words: [{<flags_getoptIsEnh>}] redirects: [] do_fork: T ) (command.Simple blame_tok: <startSkipping> more_env: [] words: [{<startSkipping>}] redirects: [] do_fork: T ) ] ops: [<Id.Op_DPipe _>] ) (command.Subshell left: <Id.Op_LParen _> child: (command.Simple blame_tok: <FLAGS> more_env: [] words: [{<FLAGS>} {<--nohelp>}] redirects: [ (Redir op: <Id.Redir_Great '>'> loc: (redir_loc.Fd fd:1) arg: {(DQ (${ Id.VSub_Name stdoutF))} ) (Redir op: <Id.Redir_Great '2>'> loc: (redir_loc.Fd fd:2) arg: {(DQ (${ Id.VSub_Name stderrF))} ) ] do_fork: T ) right: <Id.Right_Subshell _> redirects: [] ) (command.ShAssignment left: <Id.Lit_VarLike 'r3turn='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'r3turn='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'r3turn='> name:r3turn) op: assign_op.Equal rhs: {($ Id.VSub_QMark '?')} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [ {<assertTrue>} {(DQ <'FLAGS returned a non-zero result ('> (${ Id.VSub_Name r3turn) <')'>)} {(${ Id.VSub_Name r3turn)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <assertFalse> more_env: [] words: [ {<assertFalse>} {(SQ <'expected no output to STDOUT'>)} {(DQ <'[ -s \''> (${ Id.VSub_Name stdoutF) <'\' ]'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <assertFalse> more_env: [] words: [ {<assertFalse>} {(SQ <'expected no output to STDERR'>)} {(DQ <'[ -s \''> (${ Id.VSub_Name stderrF) <'\' ]'>)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <testLoggingLevel> name: testLoggingLevel body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.ShAssignment left: <Id.Lit_VarLike 'got='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'got='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <flags_loggingLevel> more_env: [] words: [{<flags_loggingLevel>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) (AssignPair left: <Id.Lit_VarLike 'want='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'want='> name:want) op: assign_op.Equal rhs: {(${ Id.VSub_Name __FLAGS_LEVEL_DEFAULT)} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [ {<assertTrue>} { (DQ <'Unexpected default logging level = '> (${ Id.VSub_Name got) <', want '> (${ Id.VSub_Name want) ) } {(DQ <'[ '> (${ Id.VSub_Name got) <' -eq '> (${ Id.VSub_Name want) <' ]'>)} ] redirects: [] do_fork: T ) (command.Simple blame_tok: <flags_setLoggingLevel> more_env: [] words: [{<flags_setLoggingLevel>} {(DQ (${ Id.VSub_Name FLAGS_LEVEL_FATAL))}] redirects: [] do_fork: T ) (command.Simple blame_tok: <flags_setLoggingLevel> more_env: [] words: [{<flags_setLoggingLevel>} {(DQ (${ Id.VSub_Name FLAGS_LEVEL_INFO))}] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'got='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'got='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'got='> name:got) op: assign_op.Equal rhs: { (CommandSub left_token: <Id.Left_DollarParen '$('> child: (command.Simple blame_tok: <flags_loggingLevel> more_env: [] words: [{<flags_loggingLevel>}] redirects: [] do_fork: T ) right: <Id.Eof_RParen _> ) } ) (AssignPair left: <Id.Lit_VarLike 'want='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'want='> name:want) op: assign_op.Equal rhs: {(${ Id.VSub_Name FLAGS_LEVEL_INFO)} ) ] redirects: [] ) (command.Simple blame_tok: <assertTrue> more_env: [] words: [ {<assertTrue>} { (DQ <'Unexpected configured logging level = '> (${ Id.VSub_Name got) <', want '> (${ Id.VSub_Name want) ) } {(DQ <'[ '> (${ Id.VSub_Name got) <' -eq '> (${ Id.VSub_Name want) <' ]'>)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <oneTimeSetUp> name: oneTimeSetUp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <th_oneTimeSetUp> more_env: [] words: [{<th_oneTimeSetUp>}] redirects: [] do_fork: T ) (command.If if_kw: <Id.KW_If if> arms: [ (IfArm keyword: <Id.KW_If if> cond: (condition.Shell commands: [ (command.Sentence child: (command.Simple blame_tok: <flags_getoptIsStd> more_env: [] words: [{<flags_getoptIsStd>}] redirects: [] do_fork: T ) terminator: <Id.Op_Semi _> ) ] ) then_kw: <Id.KW_Then then> action: [ (command.Simple blame_tok: <th_warn> more_env: [] words: [ {<th_warn>} {(SQ <'Standard version of getopt found. Enhanced tests will be skipped.'>)} ] redirects: [] do_fork: T ) (command.ControlFlow keyword:<Id.ControlFlow_Return return>) ] spids: [1191 1196] ) ] else_action: [] fi_kw: <Id.KW_Fi fi> redirects: [] ) (command.Simple blame_tok: <th_warn> more_env: [] words: [ {<th_warn>} {(SQ <'Enhanced version of getopt found. Standard tests will be skipped.'>)} ] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.ShFunction name_tok: <setUp> name: setUp body: (BraceGroup left: <Id.Lit_LBrace '{'> children: [ (command.Simple blame_tok: <flags_reset> more_env: [] words: [{<flags_reset>}] redirects: [] do_fork: T ) ] redirects: [] right: <Id.Lit_RBrace '}'> ) ) (command.AndOr children: [ (command.Simple blame_tok: <Id.Lit_LBracket '['> more_env: [] words: [ {<Id.Lit_LBracket '['>} {<-n>} { (DQ (BracedVarSub left: <Id.Left_DollarBrace '${'> token: <Id.VSub_Name ZSH_VERSION> var_name: ZSH_VERSION suffix_op: (suffix_op.Unary op:<Id.VTest_ColonHyphen _> arg_word:(rhs_word__Empty)) right: <Id.Right_DollarBrace '}'> ) ) } {<Id.Lit_RBracket ']'>} ] redirects: [] do_fork: T ) (command.ShAssignment left: <Id.Lit_VarLike 'SHUNIT_PARENT='> pairs: [ (AssignPair left: <Id.Lit_VarLike 'SHUNIT_PARENT='> lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'SHUNIT_PARENT='> name:SHUNIT_PARENT) op: assign_op.Equal rhs: {($ Id.VSub_Number 0)} ) ] redirects: [] ) ] ops: [<Id.Op_DAmp _>] ) (command.Simple blame_tok: <.> more_env: [] words: [{<.>} {(DQ (${ Id.VSub_Name TH_SHUNIT))}] redirects: [] do_fork: T ) ] )