(CommandList
  children: [
    (Assignment
      keyword: Assign_None
      pairs: [
        (assign_pair
          lhs: (LhsName name:test_description)
          op: Equal
          rhs: {(SQ <'.mailmap configurations'>)}
          spids: [4]
        )
      ]
      spids: [4]
    )
    (C {(.)} {(./test-lib.sh)})
    (FuncDef
      name: fuzz_blame
      body: 
        (BraceGroup
          children: [
            (C {(sed)} 
              {
                (DQ ('\n') ('\t\ts/') ($ VSub_Name '$_x05') ('[0-9a-f][0-9a-f][0-9a-f]/OBJID/g\n') 
                  ('\t\ts/') ($ VSub_Name '$_x05') ('[0-9a-f][0-9a-f]/OBJI/g\n') ('\t\ts/[-0-9]') (Lit_Other '\\') ('{10') 
                  (Lit_Other '\\') ('} [:0-9]') (Lit_Other '\\') ('{8') (Lit_Other '\\') ('} [-+][0-9]') (Lit_Other '\\') ('{4') 
                  (Lit_Other '\\') ('}/DATE/g\n') ('\t')
                )
              } {(DQ ($ VSub_At '$@'))}
            )
          ]
          spids: [20]
        )
      spids: [15 19]
    )
    (C {(test_expect_success)} {(setup)} 
      {
        (SQ <'\n'> <'\tcat >contacts <<-\\EOF &&\n'> <'\tA U Thor <author@example.com>\n'> 
          <'\tnick1 <bugs@company.xx>\n'> <'\tEOF\n'> <'\n'> <'\techo one >one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit -m initial &&\n'> <'\techo two >>one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --author "nick1 <bugs@company.xx>" -m second\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'check-mailmap no arguments'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git check-mailmap\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'check-mailmap arguments'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tA U Thor <author@example.com>\n'> 
          <'\tnick1 <bugs@company.xx>\n'> <'\tEOF\n'> <'\tgit check-mailmap \\\n'> <'\t\t"A U Thor <author@example.com>" \\\n'> 
          <'\t\t"nick1 <bugs@company.xx>" >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'check-mailmap --stdin'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tA U Thor <author@example.com>\n'> 
          <'\tnick1 <bugs@company.xx>\n'> <'\tEOF\n'> <'\tgit check-mailmap --stdin <contacts >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'check-mailmap --stdin arguments'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tInternal Guy <bugs@company.xy>\n'> <'\tEOF\n'> 
          <'\tcat <contacts >>expect &&\n'> <'\tgit check-mailmap --stdin "Internal Guy <bugs@company.xy>" \\\n'> <'\t\t<contacts >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'check-mailmap bogus contact'>)} 
      {(SQ <'\n'> <'\ttest_must_fail git check-mailmap bogus\n'>)}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[158])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('A U Thor (1):\n') ('      initial\n') ('\n') ('nick1 (1):\n') ('      second\n') ('\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [161]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'No mailmap'>)} 
      {(SQ <'\n'> <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>)}
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[181])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Repo Guy (1):\n') ('      initial\n') ('\n') ('nick1 (1):\n') ('      second\n') ('\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [184]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'default .mailmap'>)} 
      {
        (SQ <'\n'> <'\techo "Repo Guy <author@example.com>" > .mailmap &&\n'> 
          <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[211])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Internal Guy (1):\n') ('      second\n') ('\n') ('Repo Guy (1):\n') ('      initial\n') 
              ('\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [214]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'mailmap.file set'>)} 
      {
        (SQ <'\n'> <'\tmkdir -p internal_mailmap &&\n'> 
          <'\techo "Internal Guy <bugs@company.xx>" > internal_mailmap/.mailmap &&\n'> <'\tgit config mailmap.file internal_mailmap/.mailmap &&\n'> <'\tgit shortlog HEAD >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[236])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('External Guy (1):\n') ('      initial\n') ('\n') ('Internal Guy (1):\n') 
              ('      second\n') ('\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [239]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'mailmap.file override'>)} 
      {
        (SQ <'\n'> <'\techo "External Guy <author@example.com>" >> internal_mailmap/.mailmap &&\n'> 
          <'\tgit config mailmap.file internal_mailmap/.mailmap &&\n'> <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[260])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Repo Guy (1):\n') ('      initial\n') ('\n') ('nick1 (1):\n') ('      second\n') ('\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [263]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'mailmap.file non-existent'>)} 
      {
        (SQ <'\n'> <'\trm internal_mailmap/.mailmap &&\n'> <'\trmdir internal_mailmap &&\n'> 
          <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[285])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Internal Guy (1):\n') ('      second\n') ('\n') ('Repo Guy (1):\n') ('      initial\n') 
              ('\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [288]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'name entry after email entry'>)} 
      {
        (SQ <'\n'> <'\tmkdir -p internal_mailmap &&\n'> 
          <'\techo "<bugs@company.xy> <bugs@company.xx>" >internal_mailmap/.mailmap &&\n'> <'\techo "Internal Guy <bugs@company.xx>" >>internal_mailmap/.mailmap &&\n'> 
          <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[311])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Internal Guy (1):\n') ('      second\n') ('\n') ('Repo Guy (1):\n') ('      initial\n') 
              ('\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [314]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'name entry after email entry, case-insensitive'>)} 
      {
        (SQ <'\n'> <'\tmkdir -p internal_mailmap &&\n'> 
          <'\techo "<bugs@company.xy> <bugs@company.xx>" >internal_mailmap/.mailmap &&\n'> <'\techo "Internal Guy <BUGS@Company.xx>" >>internal_mailmap/.mailmap &&\n'> 
          <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[337])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('A U Thor (1):\n') ('      initial\n') ('\n') ('nick1 (1):\n') ('      second\n') ('\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [340]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'No mailmap files, but configured'>)} 
      {
        (SQ <'\n'> <'\trm -f .mailmap internal_mailmap/.mailmap &&\n'> 
          <'\tgit shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'setup mailmap blob tests'>)} 
      {
        (SQ <'\n'> <'\tgit checkout -b map &&\n'> <'\ttest_when_finished "git checkout master" &&\n'> 
          <'\tcat >just-bugs <<-\\EOF &&\n'> <'\tBlob Guy <bugs@company.xx>\n'> <'\tEOF\n'> <'\tcat >both <<-\\EOF &&\n'> 
          <'\tBlob Guy <author@example.com>\n'> <'\tBlob Guy <bugs@company.xx>\n'> <'\tEOF\n'> 
          <'\tprintf "Tricky Guy <author@example.com>" >no-newline &&\n'> <'\tgit add just-bugs both no-newline &&\n'> <'\tgit commit -m "my mailmaps" &&\n'> 
          <'\techo "Repo Guy <author@example.com>" >.mailmap &&\n'> <'\techo "Internal Guy <author@example.com>" >internal.map\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.blob set'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tBlob Guy (1):\n'> <'\t      second\n'> <'\n'> 
          <'\tRepo Guy (1):\n'> <'\t      initial\n'> <'\n'> <'\tEOF\n'> 
          <'\tgit -c mailmap.blob=map:just-bugs shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.blob overrides .mailmap'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tBlob Guy (2):\n'> <'\t      initial\n'> 
          <'\t      second\n'> <'\n'> <'\tEOF\n'> <'\tgit -c mailmap.blob=map:both shortlog HEAD >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.file overrides mailmap.blob'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tBlob Guy (1):\n'> <'\t      second\n'> <'\n'> 
          <'\tInternal Guy (1):\n'> <'\t      initial\n'> <'\n'> <'\tEOF\n'> <'\tgit \\\n'> <'\t  -c mailmap.blob=map:both \\\n'> 
          <'\t  -c mailmap.file=internal.map \\\n'> <'\t  shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.blob can be missing'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tRepo Guy (1):\n'> <'\t      initial\n'> <'\n'> 
          <'\tnick1 (1):\n'> <'\t      second\n'> <'\n'> <'\tEOF\n'> 
          <'\tgit -c mailmap.blob=map:nonexistent shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.blob defaults to off in non-bare repo'>)} 
      {
        (SQ <'\n'> <'\tgit init non-bare &&\n'> <'\t(\n'> <'\t\tcd non-bare &&\n'> 
          <'\t\ttest_commit one .mailmap "Fake Name <author@example.com>" &&\n'> <'\t\techo "     1\tFake Name" >expect &&\n'> <'\t\tgit shortlog -ns HEAD >actual &&\n'> 
          <'\t\ttest_cmp expect actual &&\n'> <'\t\trm .mailmap &&\n'> <'\t\techo "     1\tA U Thor" >expect &&\n'> 
          <'\t\tgit shortlog -ns HEAD >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.blob defaults to HEAD:.mailmap in bare repo'>)} 
      {
        (SQ <'\n'> <'\tgit clone --bare non-bare bare &&\n'> <'\t(\n'> <'\t\tcd bare &&\n'> 
          <'\t\techo "     1\tFake Name" >expect &&\n'> <'\t\tgit shortlog -ns HEAD >actual &&\n'> <'\t\ttest_cmp expect actual\n'> <'\t)\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'mailmap.blob can handle blobs without trailing newline'>)} 
      {
        (SQ <'\n'> <'\tcat >expect <<-\\EOF &&\n'> <'\tTricky Guy (1):\n'> <'\t      initial\n'> <'\n'> 
          <'\tnick1 (1):\n'> <'\t      second\n'> <'\n'> <'\tEOF\n'> 
          <'\tgit -c mailmap.blob=map:no-newline shortlog HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'cleanup after mailmap.blob tests'>)} 
      {(SQ <'\n'> <'\trm -f .mailmap\n'>)}
    )
    (C {(test_expect_success)} {(SQ <'single-character name'>)} 
      {
        (SQ <'\n'> <'\techo "     1\tA <author@example.com>" >expect &&\n'> 
          <'\techo "     1\tnick1 <bugs@company.xx>" >>expect &&\n'> <'\techo "A <author@example.com>" >.mailmap &&\n'> <'\ttest_when_finished "rm .mailmap" &&\n'> 
          <'\tgit shortlog -es HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_expect_success)} {(SQ <'preserve canonical email case'>)} 
      {
        (SQ <'\n'> <'\techo "     1\tA U Thor <AUTHOR@example.com>" >expect &&\n'> 
          <'\techo "     1\tnick1 <bugs@company.xx>" >>expect &&\n'> <'\techo "<AUTHOR@example.com> <author@example.com>" >.mailmap &&\n'> 
          <'\ttest_when_finished "rm .mailmap" &&\n'> <'\tgit shortlog -es HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[581])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('A U Thor <author@example.com> (1):\n') ('      initial\n') ('\n') 
              ('CTO <cto@company.xx> (1):\n') ('      seventh\n') ('\n') ('Other Author <other@author.xx> (2):\n') ('      third\n') ('      fourth\n') 
              ('\n') ('Santa Claus <santa.claus@northpole.xx> (2):\n') ('      fifth\n') ('      sixth\n') ('\n') 
              ('Some Dude <some@dude.xx> (1):\n') ('      second\n') ('\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [584]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Shortlog output (complex mapping)'>)} 
      {
        (SQ <'\n'> <'\techo three >>one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --author "nick2 <bugs@company.xx>" -m third &&\n'> <'\n'> <'\techo four >>one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --author "nick2 <nick2@company.xx>" -m fourth &&\n'> <'\n'> <'\techo five >>one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --author "santa <me@company.xx>" -m fifth &&\n'> <'\n'> <'\techo six >>one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --author "claus <me@company.xx>" -m sixth &&\n'> <'\n'> <'\techo seven >>one &&\n'> <'\tgit add one &&\n'> <'\ttest_tick &&\n'> 
          <'\tgit commit --author "CTO <cto@coompany.xx>" -m seventh &&\n'> <'\n'> <'\tmkdir -p internal_mailmap &&\n'> 
          <'\techo "Committed <committer@example.com>" > internal_mailmap/.mailmap &&\n'> 
          <
'\techo "<cto@company.xx>                       <cto@coompany.xx>" >> internal_mailmap/.mailmap &&\n'
          > 
          <
'\techo "Some Dude <some@dude.xx>         nick1 <bugs@company.xx>" >> internal_mailmap/.mailmap &&\n'
          > 
          <
'\techo "Other Author <other@author.xx>   nick2 <bugs@company.xx>" >> internal_mailmap/.mailmap &&\n'
          > 
          <
'\techo "Other Author <other@author.xx>         <nick2@company.xx>" >> internal_mailmap/.mailmap &&\n'
          > <'\techo "Santa Claus <santa.claus@northpole.xx> <me@company.xx>" >> internal_mailmap/.mailmap &&\n'> 
          <
'\techo "Santa Claus <santa.claus@northpole.xx> <me@company.xx>" >> internal_mailmap/.mailmap &&\n'
          > <'\n'> <'\tgit shortlog -e HEAD >actual &&\n'> <'\ttest_cmp expect actual\n'> <'\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[642])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Author CTO <cto@coompany.xx> maps to CTO <cto@company.xx>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              ) ('\n') ('Author claus <me@company.xx> maps to Santa Claus <santa.claus@northpole.xx>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              ) ('\n') ('Author santa <me@company.xx> maps to Santa Claus <santa.claus@northpole.xx>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              ) ('\n') ('Author nick2 <nick2@company.xx> maps to Other Author <other@author.xx>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              ) ('\n') ('Author nick2 <bugs@company.xx> maps to Other Author <other@author.xx>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              ) ('\n') ('Author nick1 <bugs@company.xx> maps to Some Dude <some@dude.xx>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              ) ('\n') ('Author A U Thor <author@example.com> maps to A U Thor <author@example.com>\n') 
              (
'Committer C O Mitter <committer@example.com> maps to Committed <committer@example.com>\n'
              )
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [645]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Log output (complex mapping)'>)} 
      {
        (SQ <'\n'> 
          <
'\tgit log --pretty=format:"Author %an <%ae> maps to %aN <%aE>%nCommitter %cn <%ce> maps to %cN <%cE>%n" >actual &&\n'
          > <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[665])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Author: CTO <cto@company.xx>\n') ('Author: Santa Claus <santa.claus@northpole.xx>\n') 
              ('Author: Santa Claus <santa.claus@northpole.xx>\n') ('Author: Other Author <other@author.xx>\n') ('Author: Other Author <other@author.xx>\n') 
              ('Author: Some Dude <some@dude.xx>\n') ('Author: A U Thor <author@example.com>\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [668]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Log output with --use-mailmap'>)} 
      {
        (SQ <'\n'> <'\tgit log --use-mailmap | grep Author >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[688])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Author: CTO <cto@company.xx>\n') ('Author: Santa Claus <santa.claus@northpole.xx>\n') 
              ('Author: Santa Claus <santa.claus@northpole.xx>\n') ('Author: Other Author <other@author.xx>\n') ('Author: Other Author <other@author.xx>\n') 
              ('Author: Some Dude <some@dude.xx>\n') ('Author: A U Thor <author@example.com>\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [691]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Log output with log.mailmap'>)} 
      {
        (SQ <'\n'> <'\tgit -c log.mailmap=True log | grep Author >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[711])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Author: Santa Claus <santa.claus@northpole.xx>\n') 
              ('Author: Santa Claus <santa.claus@northpole.xx>\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [714]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Grep author with --use-mailmap'>)} 
      {
        (SQ <'\n'> <'\tgit log --use-mailmap --author Santa | grep Author >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[733])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('Author: Santa Claus <santa.claus@northpole.xx>\n') 
              ('Author: Santa Claus <santa.claus@northpole.xx>\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [736]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Grep author with log.mailmap'>)} 
      {
        (SQ <'\n'> <'\tgit -c log.mailmap=True log --author Santa | grep Author >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      redirects: [(Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[754])]
    )
    (C {(test_expect_success)} {(SQ <'Only grep replaced author with --use-mailmap'>)} 
      {
        (SQ <'\n'> <'\tgit log --use-mailmap --author "<cto@coompany.xx>" >actual &&\n'> 
          <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[776])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: 
            {('^OBJI (A U Thor     DATE 1) one\n') ('OBJID (Some Dude    DATE 2) two\n') 
              ('OBJID (Other Author DATE 3) three\n') ('OBJID (Other Author DATE 4) four\n') ('OBJID (Santa Claus  DATE 5) five\n') 
              ('OBJID (Santa Claus  DATE 6) six\n') ('OBJID (CTO          DATE 7) seven\n')
            }
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [779]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'Blame output (complex mapping)'>)} 
      {
        (SQ <'\n'> <'\tgit blame one >actual &&\n'> <'\tfuzz_blame actual >actual.fuzz &&\n'> 
          <'\ttest_cmp expect actual.fuzz\n'>
        )
      }
    )
    (SimpleCommand
      words: [{(cat)}]
      redirects: [
        (Redir op_id:Redir_Great fd:16777215 arg_word:{(expect)} spids:[799])
        (HereDoc
          op_id: Redir_DLess
          fd: 16777215
          body: {('Some Dude <some@dude.xx>\n')}
          do_expansion: False
          here_end: EOF
          was_filled: T
          spids: [802]
        )
      ]
    )
    (C {(test_expect_success)} {(SQ <'commit --author honors mailmap'>)} 
      {
        (SQ <'\n'> <'\ttest_must_fail git commit --author "nick" --allow-empty -meight &&\n'> 
          <'\tgit commit --author "Some Dude" --allow-empty -meight &&\n'> <'\tgit show --pretty=format:"%an <%ae>%n" >actual &&\n'> <'\ttest_cmp expect actual\n'>
        )
      }
    )
    (C {(test_done)})
  ]
)