(command.CommandList children: [ (C {(Id.KW_Set set)} {(-e)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:common_objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$1')} spids: [54] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix_before_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$2')} spids: [57] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:run_program_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$3')} spids: [60] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_program_prefix_after_env) op: assign_op.Equal rhs: {($ Id.VSub_Number '$4')} spids: [63] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:objpfx) op: assign_op.Equal rhs: {($ Id.VSub_Number '$5')} spids: [66] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test_pre) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name test_program_prefix_before_env) (' ') (${ Id.VSub_Name run_program_env) ) } spids: [70] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:test) op: assign_op.Equal rhs: { (DQ (${ Id.VSub_Name test_program_prefix_after_env) (' ') (${ Id.VSub_Name objpfx) (tst-setcontext3) ) } spids: [81] ) ] ) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:out) op: assign_op.Equal rhs: {(${ Id.VSub_Name objpfx) (tst-setcontext3.out)} spids: [93] ) ] ) (command.ShFunction name: cleanup body: (command.BraceGroup children:[(C {(rm)} {(-f)} {($ Id.VSub_DollarName '$tempfile')})]) ) (C {(trap)} {(cleanup)} {(0)}) (command.ShAssignment pairs: [ (assign_pair lhs: (sh_lhs_expr.Name name:tempfile) op: assign_op.Equal rhs: { (command_sub left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:123) command_list: (command.CommandList children: [(C {(mktemp)} {(DQ (tst-setcontext3.XXXXXXXXXX))})] ) ) } spids: [122] ) ] ) (C {($ Id.VSub_DollarName '$test_pre')} {($ Id.VSub_DollarName '$test')} {(DQ ($ Id.VSub_DollarName '$tempfile'))} ) (command.If arms: [ (if_arm cond: [ (command.Sentence child: (C {(Id.Lit_LBracket '[')} {(-e)} {(DQ ($ Id.VSub_DollarName '$tempfile'))} {(Id.Lit_RBracket ']')} ) terminator: (Token id:Id.Op_Semi val:';' span_id:167) ) ] action: [ (C {(echo)} { (DQ ('PASS: tst-setcontext3 an exit() and created ') ($ Id.VSub_DollarName '$tempfile') ) } ) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:180) arg_word: {(0)} ) ] spids: [156 169] ) ] else_action: [ (C {(echo)} {(DQ ('FAIL: tst-setcontext3 did not create ') ($ Id.VSub_DollarName '$tempfile'))}) (command.ControlFlow token: (Token id:Id.ControlFlow_Exit val:exit span_id:195) arg_word: {(1)} ) ] ) ] )