t / t4210-log-i18n.shon commit t3404: rebase -i: demonstrate short SHA-1 collision (66ae9a5)
   1#!/bin/sh
   2
   3test_description='test log with i18n features'
   4. ./test-lib.sh
   5
   6# two forms of é
   7utf8_e=$(printf '\303\251')
   8latin1_e=$(printf '\351')
   9
  10test_expect_success 'create commits in different encodings' '
  11        test_tick &&
  12        cat >msg <<-EOF &&
  13        utf8
  14
  15        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
  22        t${latin1_e}st
  23        EOF
  24        git add msg &&
  25        git -c i18n.commitencoding=ISO-8859-1 commit -F msg
  26'
  27
  28test_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'
  36
  37test_expect_success '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'
  45
  46test_expect_success 'log --grep does not find non-reencoded values (utf8)' '
  47        >expect &&
  48        git log --encoding=utf8 --format=%s --grep=$latin1_e >actual &&
  49        test_cmp expect actual
  50'
  51
  52test_expect_success 'log --grep does not find non-reencoded values (latin1)' '
  53        >expect &&
  54        git log --encoding=ISO-8859-1 --format=%s --grep=$utf8_e >actual &&
  55        test_cmp expect actual
  56'
  57
  58test_done