(command.CommandList children: [ (command.Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (lhs_expr.LhsName name:test_description) op: Equal rhs: {(SQ <'signals work as we expect'>)} ) ] ) (C {(.)} {(./test-lib.sh)}) (command.SimpleCommand words: [{(cat)}] redirects: [ (redir.Redir op:<Redir_Great '>'> fd:16777215 arg_word:{(expect)}) (redir.HereDoc op: <Redir_DLess '<<'> fd: 16777215 here_begin: {(EOF)} here_end_span_id: 26 stdin_parts: [('three\n') ('two\n') ('one\n')] ) ] ) (C {(test_expect_success)} {(SQ <'sigchain works'>)} { (SQ <'\n'> <'\t{ test-sigchain >actual; ret=$?; } &&\n'> <'\t{\n'> <'\t\t# Signal death by raise() on Windows acts like exit(3),\n'> <'\t\t# regardless of the signal number. So we must allow that\n'> <'\t\t# as well as the normal signal check.\n'> <'\t\ttest_match_signal 15 "$ret" ||\n'> <'\t\ttest "$ret" = 3\n'> <'\t} &&\n'> <'\ttest_cmp expect actual\n'> ) } ) (C {(test_expect_success)} {(KW_Bang '!') (MINGW)} {(SQ <'signals are propagated using shell convention'>)} { (SQ <'\n'> <'\t# we use exec here to avoid any sub-shell interpretation\n'> <'\t# of the exit code\n'> <'\tgit config alias.sigterm "!exec test-sigchain" &&\n'> <'\ttest_expect_code 143 git sigterm\n'> ) } ) (command.FuncDef name: large_git body: (command.BraceGroup children: [ (command.ForEach iter_name: i iter_words: [ { (word_part.CommandSubPart command_list: (command.CommandList children:[(C {(test_seq)} {(1)} {(100)})]) left_token: <Left_CommandSub '$('> ) } ] do_arg_iter: F body: (command.DoGroup children: [ (command.AndOr ops: [Op_DPipe] children: [ (C {(git)} {(diff)} {(--cached)} {(--binary)}) (command.ControlFlow token: <ControlFlow_Return return> ) ] ) ] ) ) ] ) ) (C {(test_expect_success)} {(SQ <'create blob'>)} {(SQ <'\n'> <'\ttest-genrandom foo 16384 >file &&\n'> <'\tgit add file\n'>)} ) (C {(test_expect_success)} {(KW_Bang '!') (MINGW)} {(SQ <'a constipated git dies with SIGPIPE'>)} { (SQ <'\n'> <'\tOUT=$( ((large_git; echo $? 1>&3) | :) 3>&1 ) &&\n'> <'\ttest_match_signal 13 "$OUT"\n'> ) } ) (C {(test_expect_success)} {(KW_Bang '!') (MINGW)} {(SQ <'a constipated git dies with SIGPIPE even if parent ignores it'>)} { (SQ <'\n'> <'\tOUT=$( ((trap "" PIPE; large_git; echo $? 1>&3) | :) 3>&1 ) &&\n'> <'\ttest_match_signal 13 "$OUT"\n'> ) } ) (C {(test_done)}) ] )