(command.CommandList
  children: [
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:test_description)
          op: assign_op.Equal
          rhs: {(SQ <'basic sanity checks for git var'>)}
          spids: [4]
        )
      ]
    )
    (C {<.>} {<'./test-lib.sh'>})
    (C {<test_expect_success>} {(SQ <'get GIT_AUTHOR_IDENT'>)} 
      {
        (SQ <'\n'> <'\ttest_tick &&\n'> 
          <'\techo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&\n'> <'\tgit var GIT_AUTHOR_IDENT >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'get GIT_COMMITTER_IDENT'>)} 
      {
        (SQ <'\n'> <'\ttest_tick &&\n'> 
          <'\techo "$GIT_COMMITTER_NAME <$GIT_COMMITTER_EMAIL> $GIT_COMMITTER_DATE" >expect &&\n'> <'\tgit var GIT_COMMITTER_IDENT >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {<test_expect_success>} {<Id.KW_Bang '!'> <AUTOIDENT>} {(SQ <'requested identites are strict'>)} 
      {
        (SQ <'\n'> <'\t(\n'> <'\t\tsane_unset GIT_COMMITTER_NAME &&\n'> 
          <'\t\tsane_unset GIT_COMMITTER_EMAIL &&\n'> <'\t\ttest_must_fail git var GIT_COMMITTER_IDENT\n'> <'\t)\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'git var -l lists variables'>)} 
      {
        (SQ <'\n'> <'\tgit var -l >actual &&\n'> 
          <'\techo "$GIT_AUTHOR_NAME <$GIT_AUTHOR_EMAIL> $GIT_AUTHOR_DATE" >expect &&\n'> <'\tsed -n s/GIT_AUTHOR_IDENT=//p <actual >actual.author &&\n'> <'\ttest_cmp expect actual.author\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'git var -l lists config'>)} 
      {
        (SQ <'\n'> <'\tgit var -l >actual &&\n'> <'\techo false >expect &&\n'> 
          <'\tsed -n s/core\\\\.bare=//p <actual >actual.bare &&\n'> <'\ttest_cmp expect actual.bare\n'>
        )
      }
    )
    (C {<test_expect_success>} {(SQ <'listing and asking for variables are exclusive'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git var -l GIT_COMMITTER_IDENT\n'>)}
    )
    (C {<test_done>})
  ]
)