(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:'git interpret-trailers' span_id:15))}
          spids: [13]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:setup span_id:34))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:38) 
          (Token id:Id.Lit_Chars val:'\t: >empty &&\n' span_id:39) (Token id:Id.Lit_Chars val:'\tcat >basic_message <<-\\EOF &&\n' span_id:40) 
          (Token id:Id.Lit_Chars val:'\t\tsubject\n' span_id:41) (Token id:Id.Lit_Chars val:'\n' span_id:42) (Token id:Id.Lit_Chars val:'\t\tbody\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:44) (Token id:Id.Lit_Chars val:'\tcat >complex_message_body <<-\\EOF &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\t\tmy subject\n' span_id:46) (Token id:Id.Lit_Chars val:'\n' span_id:47) 
          (Token id:Id.Lit_Chars val:'\t\tmy body which is long\n' span_id:48) (Token id:Id.Lit_Chars val:'\t\tand contains some special\n' span_id:49) 
          (Token id:Id.Lit_Chars val:'\t\tchars like : = ? !\n' span_id:50) (Token id:Id.Lit_Chars val:'\n' span_id:51) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:52) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >complex_message_trailers <<-\\EOF &&\n'
            span_id: 53
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:54) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by: Z\n' span_id:55) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:57) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:58) 
          (Token id:Id.Lit_Chars val:'\tcat >basic_patch <<-\\EOF\n' span_id:59) (Token id:Id.Lit_Chars val:'\t\t---\n' span_id:60) 
          (Token id:Id.Lit_Chars val:'\t\t foo.txt | 2 +-\n' span_id:61) (Token id:Id.Lit_Chars val:'\t\t 1 file changed, 1 insertion(+), 1 deletion(-)\n' span_id:62) 
          (Token id:Id.Lit_Chars val:'\n' span_id:63) (Token id:Id.Lit_Chars val:'\t\tdiff --git a/foo.txt b/foo.txt\n' span_id:64) 
          (Token id:Id.Lit_Chars val:'\t\tindex 0353767..1d91aa1 100644\n' span_id:65) (Token id:Id.Lit_Chars val:'\t\t--- a/foo.txt\n' span_id:66) 
          (Token id:Id.Lit_Chars val:'\t\t+++ b/foo.txt\n' span_id:67) (Token id:Id.Lit_Chars val:'\t\t@@ -1,3 +1,3 @@\n' span_id:68) 
          (Token id:Id.Lit_Chars val:'\n' span_id:69) (Token id:Id.Lit_Chars val:'\t\t-bar\n' span_id:70) 
          (Token id:Id.Lit_Chars val:'\t\t+baz\n' span_id:71) (Token id:Id.Lit_Chars val:'\n' span_id:72) (Token id:Id.Lit_Chars val:'\t\t--\n' span_id:73) 
          (Token id:Id.Lit_Chars val:'\t\t1.9.rc0.11.ga562ddc\n' span_id:74) (Token id:Id.Lit_Chars val:'\n' span_id:75) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:76)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'without config' span_id:83))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:87) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >expected <<-\\EOF &&\n'
            span_id: 88
          ) (Token id:Id.Lit_Chars val:'\n' span_id:89) (Token id:Id.Lit_Chars val:'\t\tack: Peff\n' span_id:90) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:91) (Token id:Id.Lit_Chars val:'\t\tAcked-by: Johan\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:93) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack = Peff" --trailer "Reviewed-by" \\\n'
            span_id: 94
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "Acked-by: Johan" empty >actual &&\n' span_id:95) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:96)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'without config in another order' span_id:103))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:107) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >expected <<-\\EOF &&\n'
            span_id: 108
          ) (Token id:Id.Lit_Chars val:'\n' span_id:109) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by: Johan\n' span_id:110) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:111) 
          (Token id:Id.Lit_Chars val:'\t\tack: Peff\n' span_id:112) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:113) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "Acked-by: Johan" --trailer "Reviewed-by" \\\n'
            span_id: 114
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack = Peff" empty >actual &&\n' span_id:115) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:116)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'--trim-empty without config' span_id:123))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:127) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:128) (Token id:Id.Lit_Chars val:'\n' span_id:129) (Token id:Id.Lit_Chars val:'\t\tack: Peff\n' span_id:130) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by: Johan\n' span_id:131) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:132) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer ack=Peff \\\n'
            span_id: 133
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Reviewed-by" --trailer "Acked-by: Johan" \\\n'
            span_id: 134
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "sob:" empty >actual &&\n' span_id:135) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:136)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with config option on the command line' span_id:143))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:147) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:148) (Token id:Id.Lit_Chars val:'\n' span_id:149) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by: Johan\n' span_id:150) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Peff\n' span_id:151) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:152) (Token id:Id.Lit_Chars val:'\t{ echo; echo "Acked-by: Johan"; } |\n' span_id:153) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c "trailer.Acked-by.ifexists=addifdifferent" interpret-trailers \\\n'
            span_id: 154
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Reviewed-by: Peff" --trailer "Acked-by: Johan" >actual &&\n'
            span_id: 155
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:156)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with only a title in the message' span_id:163))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:167) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:168) (Token id:Id.Lit_Chars val:'\t\tarea: change\n' span_id:169) 
          (Token id:Id.Lit_Chars val:'\n' span_id:170) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Peff\n' span_id:171) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by: Johan\n' span_id:172) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:173) 
          (Token id:Id.Lit_Chars val:'\techo "area: change" |\n' span_id:174) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers --trailer "Reviewed-by: Peff" \\\n' span_id:175) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Acked-by: Johan" >actual &&\n'
            span_id: 176
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:177)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with multiline title in the message' span_id:184))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:188) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:189) (Token id:Id.Lit_Chars val:'\t\tplace of\n' span_id:190) 
          (Token id:Id.Lit_Chars val:'\t\tcode: change\n' span_id:191) (Token id:Id.Lit_Chars val:'\n' span_id:192) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Peff\n' span_id:193) (Token id:Id.Lit_Chars val:'\t\tAcked-by: Johan\n' span_id:194) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:195) (Token id:Id.Lit_Chars val:'\tprintf "%s\\n" "place of" "code: change" |\n' span_id:196) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "Reviewed-by: Peff" \\\n'
            span_id: 197
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "Acked-by: Johan" >actual &&\n' span_id:198) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:199)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with config setup' span_id:206))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:210) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.key "Acked-by: " &&\n'
            span_id: 211
          ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:212) 
          (Token id:Id.Lit_Chars val:'\n' span_id:213) (Token id:Id.Lit_Chars val:'\t\tAcked-by: Peff\n' span_id:214) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:215) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "ack = Peff" empty >actual &&\n'
            span_id: 216
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:217) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit interpret-trailers --trim-empty --trailer "Acked-by = Peff" empty >actual &&\n'
            span_id: 218
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:219) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit interpret-trailers --trim-empty --trailer "Acked-by :Peff" empty >actual &&\n'
            span_id: 220
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:221)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with config setup and ":=" as separators' span_id:228))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:232) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.separators ":=" &&\n'
            span_id: 233
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.key "Acked-by= " &&\n' span_id:234) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:235) (Token id:Id.Lit_Chars val:'\n' span_id:236) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:237) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:238) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "ack = Peff" empty >actual &&\n'
            span_id: 239
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:240) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit interpret-trailers --trim-empty --trailer "Acked-by= Peff" empty >actual &&\n'
            span_id: 241
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:242) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit interpret-trailers --trim-empty --trailer "Acked-by : Peff" empty >actual &&\n'
            span_id: 243
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:244)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with config setup and "%" as separators' span_id:251))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:255) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.separators "%" &&\n'
            span_id: 256
          ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:257) 
          (Token id:Id.Lit_Chars val:'\n' span_id:258) (Token id:Id.Lit_Chars val:'\t\tbug% 42\n' span_id:259) 
          (Token id:Id.Lit_Chars val:'\t\tcount% 10\n' span_id:260) (Token id:Id.Lit_Chars val:'\t\tbug% 422\n' span_id:261) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:262) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "bug = 42" \\\n'
            span_id: 263
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer count%10 --trailer "test: stuff" \\\n' span_id:264) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug % 422" empty >actual &&\n'
            span_id: 265
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:266)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'with "%" as separators and a message with trailers'
            span_id: 273
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:277) 
          (Token id:Id.Lit_Chars val:'\tcat >special_message <<-\\EOF &&\n' span_id:278) (Token id:Id.Lit_Chars val:'\t\tSpecial Message\n' span_id:279) 
          (Token id:Id.Lit_Chars val:'\n' span_id:280) (Token id:Id.Lit_Chars val:'\t\tbug% 42\n' span_id:281) 
          (Token id:Id.Lit_Chars val:'\t\tcount% 10\n' span_id:282) (Token id:Id.Lit_Chars val:'\t\tbug% 422\n' span_id:283) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:284) (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:285) 
          (Token id:Id.Lit_Chars val:'\t\tSpecial Message\n' span_id:286) (Token id:Id.Lit_Chars val:'\n' span_id:287) (Token id:Id.Lit_Chars val:'\t\tbug% 42\n' span_id:288) 
          (Token id:Id.Lit_Chars val:'\t\tcount% 10\n' span_id:289) (Token id:Id.Lit_Chars val:'\t\tbug% 422\n' span_id:290) 
          (Token id:Id.Lit_Chars val:'\t\tcount% 100\n' span_id:291) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:292) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer count%100 \\\n'
            span_id: 293
          ) (Token id:Id.Lit_Chars val:'\t\tspecial_message >actual &&\n' span_id:294) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:295)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with config setup and ":=#" as separators' span_id:302))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:306) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.separators ":=#" &&\n'
            span_id: 307
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.bug.key "Bug #" &&\n' span_id:308) 
          (Token id:Id.Lit_Chars val:'\tcat >expected <<-\\EOF &&\n' span_id:309) (Token id:Id.Lit_Chars val:'\n' span_id:310) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:311) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:312) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "bug = 42" empty >actual &&\n'
            span_id: 313
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:314)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with commit basic message' span_id:321))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:325) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >expected &&\n' span_id:326) (Token id:Id.Lit_Chars val:'\techo >>expected &&\n' span_id:327) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers <basic_message >actual &&\n'
            span_id: 328
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:329)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with basic patch' span_id:336))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:340) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >input &&\n' span_id:341) (Token id:Id.Lit_Chars val:'\tcat basic_patch >>input &&\n' span_id:342) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >expected &&\n' span_id:343) (Token id:Id.Lit_Chars val:'\techo >>expected &&\n' span_id:344) 
          (Token id:Id.Lit_Chars val:'\tcat basic_patch >>expected &&\n' span_id:345) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers <input >actual &&\n' span_id:346) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:347)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with commit complex message as argument' span_id:354))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:358) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body complex_message_trailers >complex_message &&\n'
            span_id: 359
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:360) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 361
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:362) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:363) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:364) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:365) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:366) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers complex_message >actual &&\n'
            span_id: 367
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:368)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with 2 files arguments' span_id:375))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:379) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >>expected &&\n' span_id:380) (Token id:Id.Lit_Chars val:'\techo >>expected &&\n' span_id:381) 
          (Token id:Id.Lit_Chars val:'\tcat basic_patch >>expected &&\n' span_id:382) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers complex_message input >actual &&\n' span_id:383) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:384)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with message that has comments' span_id:391))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:395) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat basic_message >message_with_comments &&\n'
            span_id: 396
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>message_with_comments <<-\\EOF &&\n' span_id:397) 
          (Token id:Id.Lit_Chars val:'\t\t# comment\n' span_id:398) (Token id:Id.Lit_Chars val:'\n' span_id:399) 
          (Token id:Id.Lit_Chars val:'\t\t# other comment\n' span_id:400) (Token id:Id.Lit_Chars val:'\t\tCc: Z\n' span_id:401) 
          (Token id:Id.Lit_Chars val:'\t\t# yet another comment\n' span_id:402) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Johan\n' span_id:403) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:404) (Token id:Id.Lit_Chars val:'\t\t# last comment\n' span_id:405) 
          (Token id:Id.Lit_Chars val:'\n' span_id:406) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:407) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat basic_patch >>message_with_comments &&\n'
            span_id: 408
          ) (Token id:Id.Lit_Chars val:'\tcat basic_message >expected &&\n' span_id:409) 
          (Token id:Id.Lit_Chars val:'\tcat >>expected <<-\\EOF &&\n' span_id:410) (Token id:Id.Lit_Chars val:'\t\t# comment\n' span_id:411) (Token id:Id.Lit_Chars val:'\n' span_id:412) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Johan\n' span_id:413) (Token id:Id.Lit_Chars val:'\t\tCc: Peff\n' span_id:414) 
          (Token id:Id.Lit_Chars val:'\t\t# last comment\n' span_id:415) (Token id:Id.Lit_Chars val:'\n' span_id:416) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:417) 
          (Token id:Id.Lit_Chars val:'\tcat basic_patch >>expected &&\n' span_id:418) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit interpret-trailers --trim-empty --trailer "Cc: Peff" message_with_comments >actual &&\n'
            span_id: 419
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:420)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'with message that has an old style conflict block'
            span_id: 427
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:431) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat basic_message >message_with_comments &&\n'
            span_id: 432
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>message_with_comments <<-\\EOF &&\n' span_id:433) 
          (Token id:Id.Lit_Chars val:'\t\t# comment\n' span_id:434) (Token id:Id.Lit_Chars val:'\n' span_id:435) 
          (Token id:Id.Lit_Chars val:'\t\t# other comment\n' span_id:436) (Token id:Id.Lit_Chars val:'\t\tCc: Z\n' span_id:437) 
          (Token id:Id.Lit_Chars val:'\t\t# yet another comment\n' span_id:438) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Johan\n' span_id:439) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:440) (Token id:Id.Lit_Chars val:'\t\t# last comment\n' span_id:441) 
          (Token id:Id.Lit_Chars val:'\n' span_id:442) (Token id:Id.Lit_Chars val:'\t\tConflicts:\n' span_id:443) 
          (Token id:Id.Lit_Chars val:'\n' span_id:444) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:445) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >expected &&\n' span_id:446) (Token id:Id.Lit_Chars val:'\tcat >>expected <<-\\EOF &&\n' span_id:447) 
          (Token id:Id.Lit_Chars val:'\t\t# comment\n' span_id:448) (Token id:Id.Lit_Chars val:'\n' span_id:449) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Johan\n' span_id:450) (Token id:Id.Lit_Chars val:'\t\tCc: Peff\n' span_id:451) 
          (Token id:Id.Lit_Chars val:'\t\t# last comment\n' span_id:452) (Token id:Id.Lit_Chars val:'\n' span_id:453) 
          (Token id:Id.Lit_Chars val:'\t\tConflicts:\n' span_id:454) (Token id:Id.Lit_Chars val:'\n' span_id:455) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:456) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit interpret-trailers --trim-empty --trailer "Cc: Peff" message_with_comments >actual &&\n'
            span_id: 457
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:458)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with commit complex message and trailer args' span_id:465))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:469) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 470
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:471) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:472) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:473) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:474) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:475) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:476) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:477) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:478) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers --trailer "ack: Peff" \\\n' span_id:479) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug: 42" <complex_message >actual &&\n'
            span_id: 480
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:481)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with complex patch, args and --trim-empty' span_id:488))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:492) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message >complex_patch &&\n'
            span_id: 493
          ) (Token id:Id.Lit_Chars val:'\tcat basic_patch >>complex_patch &&\n' span_id:494) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 495
          ) (Token id:Id.Lit_Chars val:'\tcat >>expected <<-\\EOF &&\n' span_id:496) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:497) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:498) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:499) (Token id:Id.Lit_Chars val:'\tcat basic_patch >>expected &&\n' span_id:500) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "ack: Peff" \\\n'
            span_id: 501
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" <complex_patch >actual &&\n' span_id:502) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:503)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'in-place editing with basic patch' span_id:510))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:514) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >message &&\n' span_id:515) (Token id:Id.Lit_Chars val:'\tcat basic_patch >>message &&\n' span_id:516) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >expected &&\n' span_id:517) (Token id:Id.Lit_Chars val:'\techo >>expected &&\n' span_id:518) 
          (Token id:Id.Lit_Chars val:'\tcat basic_patch >>expected &&\n' span_id:519) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers --in-place message &&\n' span_id:520) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected message\n' span_id:521)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'in-place editing with additional trailer' span_id:528))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:532) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >message &&\n' span_id:533) (Token id:Id.Lit_Chars val:'\tcat basic_patch >>message &&\n' span_id:534) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >expected &&\n' span_id:535) (Token id:Id.Lit_Chars val:'\techo >>expected &&\n' span_id:536) 
          (Token id:Id.Lit_Chars val:'\tcat >>expected <<-\\EOF &&\n' span_id:537) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Alice\n' span_id:538) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:539) (Token id:Id.Lit_Chars val:'\tcat basic_patch >>expected &&\n' span_id:540) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "Reviewed-by: Alice" --in-place message &&\n'
            span_id: 541
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected message\n' span_id:542)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'in-place editing on stdin disallowed' span_id:549))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:553) 
          (Token
            id: Id.Lit_Chars
            val: 
'\ttest_must_fail git interpret-trailers --trailer "Reviewed-by: Alice" --in-place < basic_message\n'
            span_id: 554
          )
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'in-place editing on non-existing file' span_id:561))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:565) 
          (Token
            id: Id.Lit_Chars
            val: 
'\ttest_must_fail git interpret-trailers --trailer "Reviewed-by: Alice" --in-place nonexisting &&\n'
            span_id: 566
          ) (Token id:Id.Lit_Chars val:'\ttest_path_is_missing nonexisting\n' span_id:567)
        )
      }
    )
    (C {(test_expect_success)} {(POSIXPERM) (Id.Lit_Comma ',') (SANITY)} 
      {(DQ ("in-place editing doesn't clobber original file on error"))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:582) 
          (Token id:Id.Lit_Chars val:'\tcat basic_message >message &&\n' span_id:583) (Token id:Id.Lit_Chars val:'\tchmod -r message &&\n' span_id:584) 
          (Token
            id: Id.Lit_Chars
            val: 
'\ttest_must_fail git interpret-trailers --trailer "Reviewed-by: Alice" --in-place message &&\n'
            span_id: 585
          ) (Token id:Id.Lit_Chars val:'\tchmod +r message &&\n' span_id:586) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp message basic_message\n' span_id:587)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'using "where = before"' span_id:594))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:598) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.bug.where "before" &&\n'
            span_id: 599
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:600) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 601
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:602) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:603) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:604) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:605) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:606) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:607) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:608) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 609
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" complex_message >actual &&\n' span_id:610) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:611)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'using "where = after"' span_id:618))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:622) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.where "after" &&\n'
            span_id: 623
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:624) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 625
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:626) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:627) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:628) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:629) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:630) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:631) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:632) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 633
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" complex_message >actual &&\n' span_id:634) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:635)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'using "where = end"' span_id:642))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:646) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.review.key "Reviewed-by" &&\n'
            span_id: 647
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.review.where "end" &&\n' span_id:648) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 649
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:650) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:651) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:652) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:653) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:654) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:655) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Junio\n' span_id:656) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Johannes\n' span_id:657) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:658) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 659
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Reviewed-by: Junio" --trailer "Reviewed-by: Johannes" \\\n'
            span_id: 660
          ) (Token id:Id.Lit_Chars val:'\t\tcomplex_message >actual &&\n' span_id:661) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:662)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'using "where = start"' span_id:669))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:673) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.review.key "Reviewed-by" &&\n'
            span_id: 674
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.review.where "start" &&\n' span_id:675) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 676
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:677) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Johannes\n' span_id:678) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Junio\n' span_id:679) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:680) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:681) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:682) (Token id:Id.Lit_Chars val:'\t\tReviewed-by: Z\n' span_id:683) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:684) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:685) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 686
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Reviewed-by: Junio" --trailer "Reviewed-by: Johannes" \\\n'
            span_id: 687
          ) (Token id:Id.Lit_Chars val:'\t\tcomplex_message >actual &&\n' span_id:688) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:689)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "where = before" for a token in the middle of the message'
            span_id: 696
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:700) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.review.key "Reviewed-by:" &&\n'
            span_id: 701
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.review.where "before" &&\n' span_id:702) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 703
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:704) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:705) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:706) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:707) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:708) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:Johan\n' span_id:709) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:710) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:711) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:712) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "bug: 42" \\\n'
            span_id: 713
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "review: Johan" <complex_message >actual &&\n' span_id:714) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:715)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "where = before" and --trim-empty' span_id:722))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:726) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 727
          ) (Token id:Id.Lit_Chars val:'\tcat >>expected <<-\\EOF &&\n' span_id:728) 
          (Token id:Id.Lit_Chars val:'\t\tBug #46\n' span_id:729) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:730) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:731) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:Johan\n' span_id:732) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:733) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "ack: Peff" \\\n'
            span_id: 734
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" --trailer "review: Johan" \\\n' span_id:735) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Bug: 46" <complex_message >actual &&\n'
            span_id: 736
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:737)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'the default is "ifExists = addIfDifferentNeighbor"'
            span_id: 744
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:748) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 749
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:750) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:751) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:752) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:753) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:754) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:755) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:756) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:757) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:758) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:759) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "review:" \\\n'
            span_id: 760
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "ack: Junio" --trailer "bug: 42" --trailer "ack: Peff" \\\n'
            span_id: 761
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Peff" <complex_message >actual &&\n' span_id:762) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:763)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'default "ifExists" is now "addIfDifferent"' span_id:770))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:774) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ifexists "addIfDifferent" &&\n'
            span_id: 775
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:776) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 777
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:778) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:779) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:780) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:781) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:782) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:783) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:784) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:785) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "review:" \\\n'
            span_id: 786
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "ack: Junio" --trailer "bug: 42" --trailer "ack: Peff" \\\n'
            span_id: 787
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Peff" <complex_message >actual &&\n' span_id:788) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:789)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "ifExists = addIfDifferent" with "where = end"'
            span_id: 796
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:800) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "addIfDifferent" &&\n'
            span_id: 801
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.where "end" &&\n' span_id:802) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 803
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:804) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:805) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:806) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:807) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:808) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:809) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:810) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:811) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "review:" \\\n'
            span_id: 812
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" --trailer "ack: Peff" \\\n' span_id:813) 
          (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:814) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:815)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "ifExists = addIfDifferent" with "where = before"'
            span_id: 822
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:826) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "addIfDifferent" &&\n'
            span_id: 827
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.where "before" &&\n' span_id:828) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 829
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:830) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:831) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:832) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:833) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:834) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:835) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:836) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:837) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "review:" \\\n'
            span_id: 838
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" --trailer "ack: Peff" \\\n' span_id:839) 
          (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:840) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:841)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "ifExists = addIfDifferentNeighbor" with "where = end"'
            span_id: 848
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:852) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "addIfDifferentNeighbor" &&\n'
            span_id: 853
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.where "end" &&\n' span_id:854) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 855
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:856) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:857) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:858) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:859) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:860) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:861) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:862) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:863) (Token id:Id.Lit_Chars val:'\t\tTested-by: Jakub\n' span_id:864) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:865) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:866) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:867) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "review:" \\\n'
            span_id: 868
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Junio" --trailer "bug: 42" \\\n' span_id:869) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Tested-by: Jakub" --trailer "ack: Junio" \\\n'
            span_id: 870
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "ack: Junio" --trailer "ack: Peff" <complex_message >actual &&\n'
            span_id: 871
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:872)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "ifExists = addIfDifferentNeighbor"  with "where = after"'
            span_id: 879
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:883) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "addIfDifferentNeighbor" &&\n'
            span_id: 884
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.where "after" &&\n' span_id:885) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 886
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:887) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:888) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:889) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:890) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:891) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:892) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:893) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:894) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:895) 
          (Token id:Id.Lit_Chars val:'\t\tTested-by: Jakub\n' span_id:896) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:897) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" --trailer "review:" \\\n'
            span_id: 898
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Junio" --trailer "bug: 42" \\\n' span_id:899) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Tested-by: Jakub" --trailer "ack: Junio" \\\n'
            span_id: 900
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "ack: Junio" --trailer "ack: Peff" <complex_message >actual &&\n'
            span_id: 901
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:902)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "ifExists = addIfDifferentNeighbor" and --trim-empty'
            span_id: 909
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:913) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "addIfDifferentNeighbor" &&\n'
            span_id: 914
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:915) 
          (Token id:Id.Lit_Chars val:'\tcat >>expected <<-\\EOF &&\n' span_id:916) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:917) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:918) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:919) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:920) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:921) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trim-empty --trailer "ack: Peff" \\\n'
            span_id: 922
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "Acked-by= Peff" --trailer "review:" \\\n' span_id:923) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "ack: Junio" --trailer "bug: 42" \\\n'
            span_id: 924
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Peff" <complex_message >actual &&\n' span_id:925) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:926)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifExists = add" with "where = end"' span_id:933))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:937) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "add" &&\n'
            span_id: 938
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.where "end" &&\n' span_id:939) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 940
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:941) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:942) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:943) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:944) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:945) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:946) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:947) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:948) (Token id:Id.Lit_Chars val:'\t\tTested-by: Jakub\n' span_id:949) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:950) (Token id:Id.Lit_Chars val:'\t\tTested-by: Johannes\n' span_id:951) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:952) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:953) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 954
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "Acked-by= Peff" --trailer "review:" \\\n' span_id:955) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Tested-by: Jakub" --trailer "ack: Junio" \\\n'
            span_id: 956
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug: 42" --trailer "Tested-by: Johannes" \\\n'
            span_id: 957
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Peff" <complex_message >actual &&\n' span_id:958) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:959)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifExists = add" with "where = after"' span_id:966))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:970) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ack.ifExists "add" &&\n'
            span_id: 971
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.ack.where "after" &&\n' span_id:972) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 973
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:974) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:975) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:976) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:977) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:978) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:979) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:980) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:981) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:982) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:983) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:984) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 985
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "Acked-by= Peff" --trailer "review:" \\\n' span_id:986) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "ack: Junio" --trailer "bug: 42" \\\n'
            span_id: 987
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Peff" <complex_message >actual &&\n' span_id:988) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:989)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifExists = replace"' span_id:996))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1000) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.fix.key "Fixes: " &&\n'
            span_id: 1001
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.fix.ifExists "replace" &&\n' span_id:1002) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 1003
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:1004) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1005) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1006) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1007) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1008) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1009) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1010) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: 22\n' span_id:1011) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1012) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" \\\n'
            span_id: 1013
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "fix=53" --trailer "ack: Junio" --trailer "fix=22" \\\n'
            span_id: 1014
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" --trailer "ack: Peff" \\\n' span_id:1015) 
          (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1016) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1017)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'using "ifExists = replace" with "where = after"'
            span_id: 1024
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1028) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.fix.where "after" &&\n'
            span_id: 1029
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1030) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1031
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1032) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: 22\n' span_id:1033) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1034) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1035) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1036) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1037) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1038) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1039) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers --trailer "review:" \\\n' span_id:1040) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "fix=53" --trailer "ack: Junio" --trailer "fix=22" \\\n'
            span_id: 1041
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "bug: 42" --trailer "ack: Peff" \\\n' span_id:1042) 
          (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1043) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1044)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifExists = doNothing"' span_id:1051))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1055) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.fix.ifExists "doNothing" &&\n'
            span_id: 1056
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1057) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1058
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1059) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1060) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1061) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1062) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1063) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1064) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1065) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1066) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=53" \\\n'
            span_id: 1067
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Junio" --trailer "fix=22" \\\n' span_id:1068) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug: 42" --trailer "ack: Peff" \\\n'
            span_id: 1069
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1070) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1071)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'the default is "ifMissing = add"' span_id:1078))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1082) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.cc.key "Cc: " &&\n'
            span_id: 1083
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.cc.where "before" &&\n' span_id:1084) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 1085
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:1086) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1087) (Token id:Id.Lit_Chars val:'\t\tCc: Linus\n' span_id:1088) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1089) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1090) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1091) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1092) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1093) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1094) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1095) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=53" \\\n'
            span_id: 1096
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "cc=Linus" --trailer "ack: Junio" \\\n' span_id:1097) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "fix=22" --trailer "bug: 42" --trailer "ack: Peff" \\\n'
            span_id: 1098
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1099) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1100)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'when default "ifMissing" is "doNothing"' span_id:1107))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1111) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.ifmissing "doNothing" &&\n'
            span_id: 1112
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1113) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1114
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1115) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1116) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1117) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1118) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1119) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1120) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1121) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=53" \\\n'
            span_id: 1122
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "cc=Linus" --trailer "ack: Junio" \\\n' span_id:1123) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "fix=22" --trailer "bug: 42" --trailer "ack: Peff" \\\n'
            span_id: 1124
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1125) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual &&\n' span_id:1126) (Token id:Id.Lit_Chars val:'\tgit config trailer.ifmissing "add"\n' span_id:1127)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifMissing = add" with "where = end"' span_id:1134))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1138) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.cc.key "Cc: " &&\n'
            span_id: 1139
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.cc.where "end" &&\n' span_id:1140) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.cc.ifMissing "add" &&\n'
            span_id: 1141
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1142) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1143
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1144) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1145) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1146) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1147) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1148) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1149) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1150) 
          (Token id:Id.Lit_Chars val:'\t\tCc: Linus\n' span_id:1151) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1152) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=53" \\\n'
            span_id: 1153
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Junio" --trailer "fix=22" \\\n' span_id:1154) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug: 42" --trailer "cc=Linus" --trailer "ack: Peff" \\\n'
            span_id: 1155
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1156) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1157)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifMissing = add" with "where = before"' span_id:1164))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1168) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.cc.key "Cc: " &&\n'
            span_id: 1169
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.cc.where "before" &&\n' span_id:1170) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.cc.ifMissing "add" &&\n'
            span_id: 1171
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1172) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1173
          ) (Token id:Id.Lit_Chars val:'\t\tCc: Linus\n' span_id:1174) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1175) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1176) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1177) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1178) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1179) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1180) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1181) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1182) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=53" \\\n'
            span_id: 1183
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Junio" --trailer "fix=22" \\\n' span_id:1184) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug: 42" --trailer "cc=Linus" --trailer "ack: Peff" \\\n'
            span_id: 1185
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1186) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1187)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'using "ifMissing = doNothing"' span_id:1194))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1198) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.cc.ifMissing "doNothing" &&\n'
            span_id: 1199
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1200) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1201
          ) (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1202) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1203) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1204) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1205) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1206) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1207) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1208) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1209) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=53" \\\n'
            span_id: 1210
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "cc=Linus" --trailer "ack: Junio" \\\n' span_id:1211) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "fix=22" --trailer "bug: 42" --trailer "ack: Peff" \\\n'
            span_id: 1212
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1213) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1214)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'default "where" is now "after"' span_id:1221))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1225) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.where "after" &&\n'
            span_id: 1226
          ) (Token id:Id.Lit_Chars val:'\tgit config --unset trailer.ack.where &&\n' span_id:1227) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 1228
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n' span_id:1229) 
          (Token id:Id.Lit_Chars val:'\t\tBug #42\n' span_id:1230) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1231) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1232) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1233) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1234) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Junio\n' span_id:1235) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Peff\n' span_id:1236) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1237) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1238) (Token id:Id.Lit_Chars val:'\t\tTested-by: Jakub\n' span_id:1239) 
          (Token id:Id.Lit_Chars val:'\t\tTested-by: Johannes\n' span_id:1240) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1241) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "ack: Peff" \\\n'
            span_id: 1242
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "Acked-by= Peff" --trailer "review:" \\\n' span_id:1243) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "Tested-by: Jakub" --trailer "ack: Junio" \\\n'
            span_id: 1244
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\t\t--trailer "bug: 42" --trailer "Tested-by: Johannes" \\\n'
            span_id: 1245
          ) (Token id:Id.Lit_Chars val:'\t\t--trailer "ack: Peff" <complex_message >actual &&\n' span_id:1246) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1247)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with simple command' span_id:1254))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1258) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.sign.key "Signed-off-by: " &&\n'
            span_id: 1259
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.sign.where "after" &&\n' span_id:1260) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.sign.ifExists "addIfDifferentNeighbor" &&\n'
            span_id: 1261
          ) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.sign.command "echo \\"A U Thor <author@example.com>\\"" &&\n'
            span_id: 1262
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1263) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1264
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1265) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1266) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1267) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1268) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: A U Thor <author@example.com>\n' span_id:1269) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1270) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=22" \\\n'
            span_id: 1271
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1272) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1273)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with command using commiter information' span_id:1280))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1284) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.sign.ifExists "addIfDifferent" &&\n'
            span_id: 1285
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit config trailer.sign.command "echo \\"\\$GIT_COMMITTER_NAME <\\$GIT_COMMITTER_EMAIL>\\"" &&\n'
            span_id: 1286
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1287) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1288
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1289) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1290) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1291) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1292) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: C O Mitter <committer@example.com>\n' span_id:1293) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1294) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=22" \\\n'
            span_id: 1295
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1296) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1297)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with command using author information' span_id:1304))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1308) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.sign.key "Signed-off-by: " &&\n'
            span_id: 1309
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.sign.where "after" &&\n' span_id:1310) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.sign.ifExists "addIfDifferentNeighbor" &&\n'
            span_id: 1311
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit config trailer.sign.command "echo \\"\\$GIT_AUTHOR_NAME <\\$GIT_AUTHOR_EMAIL>\\"" &&\n'
            span_id: 1312
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1313) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-\\EOF &&\n'
            span_id: 1314
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1315) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1316) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1317) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1318) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: A U Thor <author@example.com>\n' span_id:1319) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1320) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=22" \\\n'
            span_id: 1321
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1322) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1323)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'setup a commit' span_id:1330))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1334) 
          (Token
            id: Id.Lit_Chars
            val: '\techo "Content of the first commit." > a.txt &&\n'
            span_id: 1335
          ) (Token id:Id.Lit_Chars val:'\tgit add a.txt &&\n' span_id:1336) 
          (Token id:Id.Lit_Chars val:'\tgit commit -m "Add file a.txt"\n' span_id:1337)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with command using $ARG' span_id:1344))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1348) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.fix.ifExists "replace" &&\n'
            span_id: 1349
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tgit config trailer.fix.command "git log -1 --oneline --format=\\"%h (%s)\\" --abbrev-commit --abbrev=14 \\$ARG" &&\n'
            span_id: 1350
          ) 
          (Token
            id: Id.Lit_Chars
            val: 
'\tFIXED=$(git log -1 --oneline --format="%h (%s)" --abbrev-commit --abbrev=14 HEAD) &&\n'
            span_id: 1351
          ) (Token id:Id.Lit_Chars val:'\tcat complex_message_body >expected &&\n' span_id:1352) 
          (Token
            id: Id.Lit_Chars
            val: '\tsed -e "s/ Z\\$/ /" >>expected <<-EOF &&\n'
            span_id: 1353
          ) (Token id:Id.Lit_Chars val:'\t\tFixes: $FIXED\n' span_id:1354) 
          (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1355) (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1356) 
          (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1357) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: A U Thor <author@example.com>\n' span_id:1358) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1359) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=HEAD" \\\n'
            span_id: 1360
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1361) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1362)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with failing command using $ARG' span_id:1369))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1373) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config trailer.fix.ifExists "replace" &&\n'
            span_id: 1374
          ) (Token id:Id.Lit_Chars val:'\tgit config trailer.fix.command "false \\$ARG" &&\n' span_id:1375) 
          (Token
            id: Id.Lit_Chars
            val: '\tcat complex_message_body >expected &&\n'
            span_id: 1376
          ) (Token id:Id.Lit_Chars val:'\tsed -e "s/ Z\\$/ /" >>expected <<-EOF &&\n' span_id:1377) 
          (Token id:Id.Lit_Chars val:'\t\tFixes: Z\n' span_id:1378) (Token id:Id.Lit_Chars val:'\t\tAcked-by= Z\n' span_id:1379) 
          (Token id:Id.Lit_Chars val:'\t\tReviewed-by:\n' span_id:1380) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: Z\n' span_id:1381) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tSigned-off-by: A U Thor <author@example.com>\n'
            span_id: 1382
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1383) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:" --trailer "fix=HEAD" \\\n'
            span_id: 1384
          ) (Token id:Id.Lit_Chars val:'\t\t<complex_message >actual &&\n' span_id:1385) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1386)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with empty tokens' span_id:1393))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1397) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config --unset trailer.fix.command &&\n'
            span_id: 1398
          ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-EOF &&\n' span_id:1399) 
          (Token id:Id.Lit_Chars val:'\n' span_id:1400) (Token id:Id.Lit_Chars val:'\t\tSigned-off-by: A U Thor <author@example.com>\n' span_id:1401) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1402) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer ":" --trailer ":test" >actual <<-EOF &&\n'
            span_id: 1403
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1404) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1405)
        )
      }
    )
    (C {(test_expect_success)} {(SQ (Token id:Id.Lit_Chars val:'with command but no key' span_id:1412))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1416) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config --unset trailer.sign.key &&\n'
            span_id: 1417
          ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-EOF &&\n' span_id:1418) 
          (Token id:Id.Lit_Chars val:'\n' span_id:1419) (Token id:Id.Lit_Chars val:'\t\tsign: A U Thor <author@example.com>\n' span_id:1420) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1421) (Token id:Id.Lit_Chars val:'\tgit interpret-trailers >actual <<-EOF &&\n' span_id:1422) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1423) (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1424)
        )
      }
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'with no command and no key' span_id:1431))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:1435) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit config --unset trailer.review.key &&\n'
            span_id: 1436
          ) (Token id:Id.Lit_Chars val:'\tcat >expected <<-EOF &&\n' span_id:1437) 
          (Token id:Id.Lit_Chars val:'\n' span_id:1438) (Token id:Id.Lit_Chars val:'\t\treview: Junio\n' span_id:1439) 
          (Token
            id: Id.Lit_Chars
            val: '\t\tsign: A U Thor <author@example.com>\n'
            span_id: 1440
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1441) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit interpret-trailers --trailer "review:Junio" >actual <<-EOF &&\n'
            span_id: 1442
          ) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:1443) 
          (Token id:Id.Lit_Chars val:'\ttest_cmp expected actual\n' span_id:1444)
        )
      }
    )
    (C {(test_done)})
  ]
)