(command.CommandList
  children: [
    (command.ShAssignment
      left: <Id.Lit_VarLike 'test_description='>
      pairs: [
        (AssignPair
          left: <Id.Lit_VarLike 'test_description='>
          lhs: (sh_lhs_expr.Name left:<Id.Lit_VarLike 'test_description='> name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'fetch/receive strict mode'>)}
        )
      ]
      redirects: []
    )
    (command.Simple
      blame_tok: <.>
      more_env: []
      words: [{<.>} {<'./test-lib.sh'>}]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {<setup>}
        {
          (SQ <'\n'> <'\techo hello >greetings &&\n'> <'\tgit add greetings &&\n'> 
            <'\tgit commit -m greetings &&\n'> <'\n'> <'\tS=$(git rev-parse :greetings | sed -e "s|^..|&/|") &&\n'> 
            <'\tX=$(echo bye | git hash-object -w --stdin | sed -e "s|^..|&/|") &&\n'> <'\tmv -f .git/objects/$X .git/objects/$S &&\n'> <'\n'> <'\ttest_must_fail git fsck\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch without strict'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config fetch.fsckobjects false &&\n'> <'\t\tgit config transfer.fsckobjects false &&\n'> <'\t\ttest_must_fail git fetch ../.git master\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch with !fetch.fsckobjects'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config fetch.fsckobjects false &&\n'> <'\t\tgit config transfer.fsckobjects true &&\n'> <'\t\ttest_must_fail git fetch ../.git master\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch with fetch.fsckobjects'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config fetch.fsckobjects true &&\n'> <'\t\tgit config transfer.fsckobjects false &&\n'> <'\t\ttest_must_fail git fetch ../.git master\n'> 
            <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'fetch with transfer.fsckobjects'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config transfer.fsckobjects true &&\n'> <'\t\ttest_must_fail git fetch ../.git master\n'> <'\t)\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<exp>})
        (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: [
                <'To dst\n'>
                <
'!\trefs/heads/master:refs/heads/test\t[remote rejected] (missing necessary objects)\n'
                >
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push without strict'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config fetch.fsckobjects false &&\n'> <'\t\tgit config transfer.fsckobjects false\n'> <'\t) &&\n'> 
            <'\ttest_must_fail git push --porcelain dst master:refs/heads/test >act &&\n'> <'\ttest_cmp exp act\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push with !receive.fsckobjects'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config receive.fsckobjects false &&\n'> <'\t\tgit config transfer.fsckobjects true\n'> <'\t) &&\n'> 
            <'\ttest_must_fail git push --porcelain dst master:refs/heads/test >act &&\n'> <'\ttest_cmp exp act\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<exp>})
        (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: [
                <'To dst\n'>
                <'!\trefs/heads/master:refs/heads/test\t[remote rejected] (unpacker error)\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push with receive.fsckobjects'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config receive.fsckobjects true &&\n'> <'\t\tgit config transfer.fsckobjects false\n'> <'\t) &&\n'> 
            <'\ttest_must_fail git push --porcelain dst master:refs/heads/test >act &&\n'> <'\ttest_cmp exp act\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push with transfer.fsckobjects'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> <'\t(\n'> <'\t\tcd dst &&\n'> 
            <'\t\tgit config transfer.fsckobjects true\n'> <'\t) &&\n'> <'\ttest_must_fail git push --porcelain dst master:refs/heads/test >act &&\n'> 
            <'\ttest_cmp exp act\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <cat>
      more_env: []
      words: [{<cat>}]
      redirects: [
        (Redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<bogus-commit>})
        (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: [
                <'tree '>
                ($ Id.VSub_DollarName EMPTY_TREE)
                <'\n'>
                <'author Bugs Bunny 1234567890 +0000\n'>
                <'committer Bugs Bunny <bugs@bun.ni> 1234567890 +0000\n'>
                <'\n'>
                <'This commit object intentionally broken\n'>
              ]
            )
        )
      ]
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push with receive.fsck.skipList'>)}
        {
          (SQ <'\n'> <'\tcommit="$(git hash-object -t commit -w --stdin <bogus-commit)" &&\n'> 
            <'\tgit push . $commit:refs/heads/bogus &&\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> 
            <'\tgit --git-dir=dst/.git config receive.fsckObjects true &&\n'> <'\ttest_must_fail git push --porcelain dst bogus &&\n'> 
            <'\tgit --git-dir=dst/.git config receive.fsck.skipList SKIP &&\n'> <'\techo $commit >dst/.git/SKIP &&\n'> <'\tgit push --porcelain dst bogus\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'push with receive.fsck.missingEmail=warn'>)}
        {
          (SQ <'\n'> <'\tcommit="$(git hash-object -t commit -w --stdin <bogus-commit)" &&\n'> 
            <'\tgit push . $commit:refs/heads/bogus &&\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> 
            <'\tgit --git-dir=dst/.git config receive.fsckobjects true &&\n'> <'\ttest_must_fail git push --porcelain dst bogus &&\n'> <'\tgit --git-dir=dst/.git config \\\n'> 
            <'\t\treceive.fsck.missingEmail warn &&\n'> <'\tgit push --porcelain dst bogus >act 2>&1 &&\n'> <'\tgrep "missingEmail" act &&\n'> 
            <'\tgit --git-dir=dst/.git branch -D bogus &&\n'> <'\tgit --git-dir=dst/.git config --add \\\n'> <'\t\treceive.fsck.missingEmail ignore &&\n'> 
            <'\tgit --git-dir=dst/.git config --add \\\n'> <'\t\treceive.fsck.badDate warn &&\n'> <'\tgit push --porcelain dst bogus >act 2>&1 &&\n'> 
            <'\ttest_must_fail grep "missingEmail" act\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_expect_success>
      more_env: []
      words: [
        {<test_expect_success>}
        {(SQ <'receive.fsck.unterminatedHeader=warn triggers error'>)}
        {
          (SQ <'\n'> <'\trm -rf dst &&\n'> <'\tgit init dst &&\n'> 
            <'\tgit --git-dir=dst/.git config receive.fsckobjects true &&\n'> <'\tgit --git-dir=dst/.git config \\\n'> <'\t\treceive.fsck.unterminatedheader warn &&\n'> 
            <'\ttest_must_fail git push --porcelain dst HEAD >act 2>&1 &&\n'> <'\tgrep "Cannot demote unterminatedheader" act\n'>
          )
        }
      ]
      redirects: []
      do_fork: T
    )
    (command.Simple
      blame_tok: <test_done>
      more_env: []
      words: [{<test_done>}]
      redirects: []
      do_fork: T
    )
  ]
)