(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: 
            {
              (SQ 
                (Token
                  id: Id.Lit_Chars
                  val: 'diff honors config option, diff.suppressBlankEmpty'
                  span_id: 14
                )
              )
            }
          spids: [12]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.AndOr
      ops: [Id.Op_DPipe]
      children: [
        (command.Simple
          words: [{(cat)}]
          redirects: [
            (redir.HereDoc
              op: (Token id:Id.Redir_DLess val:'<<' span_id:25)
              fd: -1
              here_begin: 
                {(word_part.EscapedLiteral token:(Token id:Id.Lit_EscapedChar val:'\\E' span_id:26)) 
                  (OF)
                }
              here_end_span_id: 43
              stdin_parts: [
                ('diff --git a/f b/f\n')
                ('index 5f6a263..8cb8bae 100644\n')
                ('--- a/f\n')
                ('+++ b/f\n')
                ('@@ -1,2 +1,2 @@\n')
                ('\n')
                ('-x\n')
                ('+y\n')
              ]
            )
            (redir.Redir
              op: (Token id:Id.Redir_Great val:'>' span_id:29)
              fd: -1
              arg_word: {(exp)}
            )
          ]
        )
        (command.ControlFlow
          token: (Token id:Id.ControlFlow_Exit val:exit span_id:44)
          arg_word: {(1)}
        )
      ]
    )
    (C {(test_expect_success)} {(DQ ($ Id.VSub_DollarName '$test_description'))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'printf "\\nx\\n" > f &&\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'     git add f &&\n' span_id:61) (Token id:Id.Lit_Chars val:'     git commit -q -m. f &&\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'     printf "\\ny\\n" > f &&\n' span_id:63) (Token id:Id.Lit_Chars val:'     git config --bool diff.suppressBlankEmpty true &&\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'     git diff f > actual &&\n' span_id:65) (Token id:Id.Lit_Chars val:'     test_cmp exp actual &&\n' span_id:66) 
          (Token
            id: Id.Lit_Chars
            val: '     perl -i.bak -p -e "s/^\\$/ /" exp &&\n'
            span_id: 67
          ) (Token id:Id.Lit_Chars val:'     git config --bool diff.suppressBlankEmpty false &&\n' span_id:68) 
          (Token id:Id.Lit_Chars val:'     git diff f > actual &&\n' span_id:69) (Token id:Id.Lit_Chars val:'     test_cmp exp actual &&\n' span_id:70) 
          (Token
            id: Id.Lit_Chars
            val: '     git config --bool --unset diff.suppressBlankEmpty &&\n'
            span_id: 71
          ) (Token id:Id.Lit_Chars val:'     git diff f > actual &&\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'     test_cmp exp actual\n' span_id:73) (Token id:Id.Lit_Chars val:'     ' span_id:74)
        )
      }
    )
    (C {(test_done)})
  ]
)