(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:'test log with i18n features' span_id:6))}
          spids: [4]
        )
      ]
    )
    (C {(.)} {(./test-lib.sh)})
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:utf8_e)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:18)
                command_list: 
                  (command.CommandList
                    children: [(C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\303\\251' span_id:22))})]
                  )
              )
            }
          spids: [17]
        )
      ]
    )
    (command.ShAssignment
      pairs: [
        (assign_pair
          lhs: (sh_lhs_expr.Name name:latin1_e)
          op: assign_op.Equal
          rhs: 
            {
              (command_sub
                left_token: (Token id:Id.Left_DollarParen val:'$(' span_id:27)
                command_list: 
                  (command.CommandList
                    children: [(C {(printf)} {(SQ (Token id:Id.Lit_Chars val:'\\351' span_id:31))})]
                  )
              )
            }
          spids: [26]
        )
      ]
    )
    (C {(test_expect_success)} 
      {(SQ (Token id:Id.Lit_Chars val:'create commits in different encodings' span_id:39))} 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:43) 
          (Token id:Id.Lit_Chars val:'\ttest_tick &&\n' span_id:44) (Token id:Id.Lit_Chars val:'\tcat >msg <<-EOF &&\n' span_id:45) 
          (Token id:Id.Lit_Chars val:'\tutf8\n' span_id:46) (Token id:Id.Lit_Chars val:'\n' span_id:47) (Token id:Id.Lit_Chars val:'\tt${utf8_e}st\n' span_id:48) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:49) (Token id:Id.Lit_Chars val:'\tgit add msg &&\n' span_id:50) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit -c i18n.commitencoding=utf8 commit -F msg &&\n'
            span_id: 51
          ) (Token id:Id.Lit_Chars val:'\tcat >msg <<-EOF &&\n' span_id:52) 
          (Token id:Id.Lit_Chars val:'\tlatin1\n' span_id:53) (Token id:Id.Lit_Chars val:'\n' span_id:54) 
          (Token id:Id.Lit_Chars val:'\tt${latin1_e}st\n' span_id:55) (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:56) 
          (Token id:Id.Lit_Chars val:'\tgit add msg &&\n' span_id:57) (Token id:Id.Lit_Chars val:'\tgit -c i18n.commitencoding=ISO-8859-1 commit -F msg\n' span_id:58)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log --grep searches in log output encoding (utf8)'
            span_id: 65
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:69) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:70) (Token id:Id.Lit_Chars val:'\tlatin1\n' span_id:71) (Token id:Id.Lit_Chars val:'\tutf8\n' span_id:72) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:73) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log --encoding=utf8 --format=%s --grep=$utf8_e >actual &&\n'
            span_id: 74
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:75)
        )
      }
    )
    (C {(test_expect_success)} {(Id.KW_Bang '!') (MINGW)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log --grep searches in log output encoding (latin1)'
            span_id: 85
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:89) 
          (Token id:Id.Lit_Chars val:'\tcat >expect <<-\\EOF &&\n' span_id:90) (Token id:Id.Lit_Chars val:'\tlatin1\n' span_id:91) (Token id:Id.Lit_Chars val:'\tutf8\n' span_id:92) 
          (Token id:Id.Lit_Chars val:'\tEOF\n' span_id:93) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log --encoding=ISO-8859-1 --format=%s --grep=$latin1_e >actual &&\n'
            span_id: 94
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:95)
        )
      }
    )
    (C {(test_expect_success)} {(Id.KW_Bang '!') (MINGW)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log --grep does not find non-reencoded values (utf8)'
            span_id: 105
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:109) 
          (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:110) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log --encoding=utf8 --format=%s --grep=$latin1_e >actual &&\n'
            span_id: 111
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:112)
        )
      }
    )
    (C {(test_expect_success)} 
      {
        (SQ 
          (Token
            id: Id.Lit_Chars
            val: 'log --grep does not find non-reencoded values (latin1)'
            span_id: 119
          )
        )
      } 
      {
        (SQ (Token id:Id.Lit_Chars val:'\n' span_id:123) 
          (Token id:Id.Lit_Chars val:'\t>expect &&\n' span_id:124) 
          (Token
            id: Id.Lit_Chars
            val: '\tgit log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual &&\n'
            span_id: 125
          ) (Token id:Id.Lit_Chars val:'\ttest_cmp expect actual\n' span_id:126)
        )
      }
    )
    (C {(test_done)})
  ]
)