1#!/bin/sh
   2test_description='test log with i18n features'
   4. ./test-lib.sh
   5# two forms of é
   7utf8_e=$(printf '\303\251')
   8latin1_e=$(printf '\351')
   9test_expect_success 'create commits in different encodings' '
  11        test_tick &&
  12        cat >msg <<-EOF &&
  13        utf8
  14        t${utf8_e}st
  16        EOF
  17        git add msg &&
  18        git -c i18n.commitencoding=utf8 commit -F msg &&
  19        cat >msg <<-EOF &&
  20        latin1
  21        t${latin1_e}st
  23        EOF
  24        git add msg &&
  25        git -c i18n.commitencoding=ISO-8859-1 commit -F msg
  26'
  27test_expect_success 'log --grep searches in log output encoding (utf8)' '
  29        cat >expect <<-\EOF &&
  30        latin1
  31        utf8
  32        EOF
  33        git log --encoding=utf8 --format=%s --grep=$utf8_e >actual &&
  34        test_cmp expect actual
  35'
  36test_expect_success !MINGW 'log --grep searches in log output encoding (latin1)' '
  38        cat >expect <<-\EOF &&
  39        latin1
  40        utf8
  41        EOF
  42        git log --encoding=ISO-8859-1 --format=%s --grep=$latin1_e >actual &&
  43        test_cmp expect actual
  44'
  45test_expect_success !MINGW 'log --grep does not find non-reencoded values (utf8)' '
  47        git log --encoding=utf8 --format=%s --grep=$latin1_e >actual &&
  48        test_must_be_empty actual
  49'
  50test_expect_success 'log --grep does not find non-reencoded values (latin1)' '
  52        git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual &&
  53        test_must_be_empty actual
  54'
  55test_done