(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:'basic sanity checks for git var' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'get GIT_AUTHOR_IDENT' span_id:17))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:21) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:22) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&\n'
            span_id: 23
          ) (Token id:Id.Lit_Chars val:'\tgit var GIT_AUTHOR_IDENT >actual &&\n' span_id:24) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:25)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'get GIT_COMMITTER_IDENT' span_id:32))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:36) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:37) 
          (Token
            id: Id.Lit_Chars
            val: 
'\techo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" >expect &&\n'
            span_id: 38
          ) (Token id:Id.Lit_Chars val:'\tgit var GIT_COMMITTER_IDENT >actual &&\n' span_id:39) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:40)
        )
      }
    )
    (C {(test_expect_success)} {(Id.KW_Bang '!') (AUTOIDENT)} 
      {(SQ (Token id:Id.Lit_Chars val:'requested identites are strict' span_id:50))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:54) (Token id:Id.Lit_Chars val:'\t(\n' span_id:55) 
          (Token id:Id.Lit_Chars val:'\t\tsane_unset GIT_COMMITTER_NAME &&\n' span_id:56) (Token id:Id.Lit_Chars val:'\t\tsane_unset GIT_COMMITTER_EMAIL &&\n' span_id:57) 
          (Token
            id: Id.Lit_Chars
            val: '\t\ttest_must_fail git var GIT_COMMITTER_IDENT\n'
            span_id: 58
          ) (Token id:Id.Lit_Chars val:'\t)\n' span_id:59)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'git var -l lists variables' span_id:75))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:79) 
          (Token id:Id.Lit_Chars val:'\tgit var -l >actual &&\n' span_id:80) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&\n'
            span_id: 81
          ) (Token id:Id.Lit_Chars val:'\tsed -n s/GIT_AUTHOR_IDENT=//p <actual >actual.author &&\n' span_id:82) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.author\n' span_id:83)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'git var -l lists config' span_id:90))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:94) 
          (Token id:Id.Lit_Chars val:'\tgit var -l >actual &&\n' span_id:95) (Token id:Id.Lit_Chars val:'\techo false >expect &&\n' span_id:96) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -n s/core\\\\.bare=//p <actual >actual.bare &&\n'
            span_id: 97
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual.bare\n' span_id:98)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'listing and asking for variables are exclusive' span_id:105))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:109) 
          (Token
            id: Id.Lit_Chars
            val: '\ttest_must_fail git var -l GIT_COMMITTER_IDENT\n'
            span_id: 110
          )
        )
      }
    )
    (C {(test_done)})
  ]
)