(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description spids:[4])
          op: Equal
          rhs: {(SQ <'git blame'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PROG spids:[14])
          op: Equal
          rhs: {(SQ <'git blame -c'>)}
          spids: [14]
        )
      ]
      spids: [14]
    )
    (C {(.)} {(DQ ($ VSub_Name '$TEST_DIRECTORY')) (/annotate-tests.sh)})
    (C {(test_expect_success)} {(SQ <'blame untracked file in empty repo'>)} 
      {(SQ <'\n'> <'\t>untracked &&\n'> <'\ttest_must_fail git blame untracked\n'>)}
    )
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:PROG spids:[40])
          op: Equal
          rhs: {(SQ <'git blame -c -e'>)}
          spids: [40]
        )
      ]
      spids: [40]
    )
    (C {(test_expect_success)} {(SQ <'blame --show-email'>)} 
      {
        (SQ <'\n'> <'\tcheck_count \\\n'> <'\t\t"<A@test.git>" 1 \\\n'> <'\t\t"<B@test.git>" 1 \\\n'> 
          <'\t\t"<B1@test.git>" 1 \\\n'> <'\t\t"<B2@test.git>" 1 \\\n'> <'\t\t"<author@example.com>" 1 \\\n'> <'\t\t"<C@test.git>" 1 \\\n'> 
          <'\t\t"<D@test.git>" 1 \\\n'> <'\t\t"<E at test dot git>" 1\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'setup showEmail tests'>)} 
      {
        (SQ <'\n'> <'\techo "bin: test number 1" >one &&\n'> <'\tgit add one &&\n'> 
          <'\tGIT_AUTHOR_NAME=name1 \\\n'> <'\tGIT_AUTHOR_EMAIL=email1@test.git \\\n'> 
          <'\tgit commit -m First --date="2010-01-01 01:00:00" &&\n'> <'\tcat >expected_n <<-\\EOF &&\n'> <'\t(name1 2010-01-01 01:00:00 +0000 1) bin: test number 1\n'> 
          <'\tEOF\n'> <'\tcat >expected_e <<-\\EOF\n'> 
          <'\t(<email1@test.git> 2010-01-01 01:00:00 +0000 1) bin: test number 1\n'> <'\tEOF\n'>
        )
      }
    )
    (FuncDef
      name: find_blame
      body: (BraceGroup children:[(C {(sed)} {(-e)} {(SQ <'s/^[^(]*//'>)})] spids:[92])
      spids: [87 91]
    )
    (C {(test_expect_success)} {(SQ <'blame with no options and no config'>)} 
      {
        (SQ <'\n'> <'\tgit blame one >blame &&\n'> <'\tfind_blame <blame >result &&\n'> 
          <'\ttest_cmp expected_n result\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'blame with showemail options'>)} 
      {
        (SQ <'\n'> <'\tgit blame --show-email one >blame1 &&\n'> <'\tfind_blame <blame1 >result &&\n'> 
          <'\ttest_cmp expected_e result &&\n'> <'\tgit blame -e one >blame2 &&\n'> <'\tfind_blame <blame2 >result &&\n'> 
          <'\ttest_cmp expected_e result &&\n'> <'\tgit blame --no-show-email one >blame3 &&\n'> <'\tfind_blame <blame3 >result &&\n'> 
          <'\ttest_cmp expected_n result\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'blame with showEmail config false'>)} 
      {
        (SQ <'\n'> <'\tgit config blame.showEmail false &&\n'> <'\tgit blame one >blame1 &&\n'> 
          <'\tfind_blame <blame1 >result &&\n'> <'\ttest_cmp expected_n result &&\n'> <'\tgit blame --show-email one >blame2 &&\n'> 
          <'\tfind_blame <blame2 >result &&\n'> <'\ttest_cmp expected_e result &&\n'> <'\tgit blame -e one >blame3 &&\n'> 
          <'\tfind_blame <blame3 >result &&\n'> <'\ttest_cmp expected_e result &&\n'> <'\tgit blame --no-show-email one >blame4 &&\n'> 
          <'\tfind_blame <blame4 >result &&\n'> <'\ttest_cmp expected_n result\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'blame with showEmail config true'>)} 
      {
        (SQ <'\n'> <'\tgit config blame.showEmail true &&\n'> <'\tgit blame one >blame1 &&\n'> 
          <'\tfind_blame <blame1 >result &&\n'> <'\ttest_cmp expected_e result &&\n'> <'\tgit blame --no-show-email one >blame2 &&\n'> 
          <'\tfind_blame <blame2 >result &&\n'> <'\ttest_cmp expected_n result\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)