(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:'respect crlf in git archive' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:20) (Token id:Id.Lit_Chars val:'\n' span_id:21) 
          (Token id:Id.Lit_Chars val:'\tgit config core.autocrlf true &&\n' span_id:22) (Token id:Id.Lit_Chars val:'\n' span_id:23) 
          (Token
            id: Id.Lit_Chars
            val: '\tprintf "CRLF line ending\\r\\nAnd another\\r\\n" > sample &&\n'
            span_id: 24
          ) (Token id:Id.Lit_Chars val:'\tgit add sample &&\n' span_id:25) 
          (Token id:Id.Lit_Chars val:'\n' span_id:26) (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:27) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m Initial\n' span_id:28) (Token id:Id.Lit_Chars val:'\n' span_id:29)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'tar archive' span_id:36))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:40) (Token id:Id.Lit_Chars val:'\n' span_id:41) 
          (Token id:Id.Lit_Chars val:'\tgit archive --format=tar HEAD |\n' span_id:42) (Token id:Id.Lit_Chars val:'\t( mkdir untarred && cd untarred && "$TAR" -xf - ) &&\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\n' span_id:44) (Token id:Id.Lit_Chars val:'\ttest_cmp sample untarred/sample\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\n' span_id:46)
        )
      }
    )
    (C {(test_expect_success)} {(UNZIP)} {(SQ (Token id:Id.Lit_Chars val:'zip archive' span_id:55))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:59) (Token id:Id.Lit_Chars val:'\n' span_id:60) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit archive --format=zip HEAD >test.zip &&\n'
            span_id: 61
          ) (Token id:Id.Lit_Chars val:'\n' span_id:62) 
          (Token
            id: Id.Lit_Chars
            val: '\t( mkdir unzipped && cd unzipped && "$GIT_UNZIP" ../test.zip ) &&\n'
            span_id: 63
          ) (Token id:Id.Lit_Chars val:'\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp sample unzipped/sample\n' span_id:65) (Token id:Id.Lit_Chars val:'\n' span_id:66)
        )
      }
    )
    (C {(test_done)})
  ]
)