(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          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) 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)
          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)})
  ]
)