(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'git apply should handle files with incomplete lines.\n'> <'\n'>)}
          spids: [13]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (command.Subshell
      child: 
        (command.CommandList
          children: [
            (command.Sentence child:(C {<echo>} {<a>}) terminator:<Id.Op_Semi _>)
            (C {<echo>} {<b>})
          ]
        )
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<frotz.0>})]
    )
    (command.Subshell
      child: 
        (command.CommandList
          children: [
            (command.Sentence child:(C {<echo>} {<a>}) terminator:<Id.Op_Semi _>)
            (command.Sentence child:(C {<echo>} {<b>}) terminator:<Id.Op_Semi _>)
            (C {<echo>} {<c>})
          ]
        )
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<frotz.1>})]
    )
    (command.Subshell
      child: 
        (command.CommandList
          children: [
            (command.Sentence child:(C {<echo>} {<a>}) terminator:<Id.Op_Semi _>)
            (command.Pipeline
              children: [(C {<echo>} {<b>}) (C {<tr>} {<-d>} {(SQ <'\\012'>)})]
              negated: F
            )
          ]
        )
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<frotz.2>})]
    )
    (command.Subshell
      child: 
        (command.CommandList
          children: [
            (command.Sentence child:(C {<echo>} {<a>}) terminator:<Id.Op_Semi _>)
            (command.Sentence child:(C {<echo>} {<c>}) terminator:<Id.Op_Semi _>)
            (command.Pipeline
              children: [(C {<echo>} {<b>}) (C {<tr>} {<-d>} {(SQ <'\\012'>)})]
              negated: F
            )
          ]
        )
      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<frotz.3>})]
    )
    (command.ForEach
      iter_names: [i]
      iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>}])
      body: 
        (command.DoGroup
          children: [
            (command.ForEach
              iter_names: [j]
              iterable: (for_iter.Words words:[{<0>} {<1>} {<2>} {<3>}])
              body: 
                (command.DoGroup
                  children: [
                    (command.AndOr
                      ops: [Id.Op_DAmp]
                      children: [
                        (C {<test>} {($ Id.VSub_DollarName '$i')} {<-eq>} {($ Id.VSub_DollarName '$j')})
                        (command.ControlFlow
                          token: <Id.ControlFlow_Continue continue>
                        )
                      ]
                    )
                    (command.Simple
                      words: [{<cat>} {<frotz.> ($ Id.VSub_DollarName '$i')}]
                      redirects: [(redir op:<Id.Redir_Great '>'> loc:(redir_loc.Fd fd:1) arg:{<frotz>})]
                      do_fork: T
                    )
                    (C {<test_expect_success>} 
                      {
                        (DQ <'apply diff between '> ($ Id.VSub_DollarName '$i') <' and '> 
                          ($ Id.VSub_DollarName '$j')
                        )
                      } 
                      {
                        (SQ <'\n'> <'\tgit apply <"$TEST_DIRECTORY"/t4101/diff.$i-$j &&\n'> 
                          <'\ttest_cmp frotz.$j frotz\n'> <'    '>
                        )
                      }
                    )
                  ]
                )
            )
          ]
        )
    )
    (C {<test_done>})
  ]
)