tests/test-encoding
author Matt Mackall <mpm@selenic.com>
Thu, 12 Aug 2010 18:09:03 -0500
changeset 11832 7fa36341e7a0
parent 9483 29d2a7e3a88b
child 12156 4c94b6d0fb1c
permissions -rwxr-xr-x
merge with stable
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     1
#!/bin/sh
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     2
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     3
hg init t
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     4
cd t
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     5
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     6
# we need a repo with some legacy latin-1 changesets
3780
d0a48313b0f6 test-encoding: copy a bundle from TESTDIR rather than constructing one
Matt Mackall <mpm@selenic.com>
parents: 3779
diff changeset
     7
hg unbundle $TESTDIR/legacy-encoding.hg
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     8
hg co
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
     9
3789
734b1d6ba3dc Use python instead of shell printf with \x sequences for test-encoding.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3783
diff changeset
    10
python << EOF
734b1d6ba3dc Use python instead of shell printf with \x sequences for test-encoding.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3783
diff changeset
    11
f = file('latin-1', 'w'); f.write("latin-1 e' encoded: \xe9"); f.close()
734b1d6ba3dc Use python instead of shell printf with \x sequences for test-encoding.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3783
diff changeset
    12
f = file('utf-8', 'w'); f.write("utf-8 e' encoded: \xc3\xa9"); f.close()
734b1d6ba3dc Use python instead of shell printf with \x sequences for test-encoding.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3783
diff changeset
    13
f = file('latin-1-tag', 'w'); f.write("\xe9"); f.close()
734b1d6ba3dc Use python instead of shell printf with \x sequences for test-encoding.
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3783
diff changeset
    14
EOF
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
    15
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    16
echo % should fail with encoding error
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    17
echo "plain old ascii" > a
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    18
hg st
3839
3820385fb113 Fixes test-encoding for python2.3 and minor cleanups:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3835
diff changeset
    19
HGENCODING=ascii hg ci -l latin-1 -d "1000000 0"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    20
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    21
echo % these should work
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    22
echo "latin-1" > a
3839
3820385fb113 Fixes test-encoding for python2.3 and minor cleanups:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3835
diff changeset
    23
HGENCODING=latin-1 hg ci -l latin-1 -d "1000000 0"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    24
echo "utf-8" > a
3839
3820385fb113 Fixes test-encoding for python2.3 and minor cleanups:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3835
diff changeset
    25
HGENCODING=utf-8 hg ci -l utf-8 -d "1000000 0"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    26
3839
3820385fb113 Fixes test-encoding for python2.3 and minor cleanups:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3835
diff changeset
    27
HGENCODING=latin-1 hg tag -d "1000000 0" `cat latin-1-tag`
3862
46abbed02b2d Use UTF-8 in .hg/branch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3845
diff changeset
    28
HGENCODING=latin-1 hg branch `cat latin-1-tag`
3839
3820385fb113 Fixes test-encoding for python2.3 and minor cleanups:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3835
diff changeset
    29
HGENCODING=latin-1 hg ci -d "1000000 0" -m 'latin1 branch'
3827
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
    30
rm .hg/branch
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    31
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    32
echo "% hg log (ascii)"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    33
hg --encoding ascii log
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    34
echo "% hg log (latin-1)"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    35
hg --encoding latin-1 log
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    36
echo "% hg log (utf-8)"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    37
hg --encoding utf-8 log
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    38
echo "% hg tags (ascii)"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    39
HGENCODING=ascii hg tags
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    40
echo "% hg tags (latin-1)"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    41
HGENCODING=latin-1 hg tags
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    42
echo "% hg tags (utf-8)"
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
    43
HGENCODING=utf-8 hg tags
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    44
echo "% hg branches (ascii)"
3827
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
    45
HGENCODING=ascii hg branches
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    46
echo "% hg branches (latin-1)"
3827
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
    47
HGENCODING=latin-1 hg branches
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    48
echo "% hg branches (utf-8)"
3827
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
    49
HGENCODING=utf-8 hg branches
3835
d1ce5461beed Allow the user to specify the fallback encoding for the changelog
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3827
diff changeset
    50
d1ce5461beed Allow the user to specify the fallback encoding for the changelog
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3827
diff changeset
    51
echo '[ui]' >> .hg/hgrc
3839
3820385fb113 Fixes test-encoding for python2.3 and minor cleanups:
Thomas Arendsen Hein <thomas@intevation.de>
parents: 3835
diff changeset
    52
echo 'fallbackencoding = koi8-r' >> .hg/hgrc
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    53
echo "% hg log (utf-8)"
3835
d1ce5461beed Allow the user to specify the fallback encoding for the changelog
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3827
diff changeset
    54
HGENCODING=utf-8 hg log
3843
abaa2cd00d2b make transcoding more robust
Matt Mackall <mpm@selenic.com>
parents: 3839
diff changeset
    55
9483
29d2a7e3a88b test-encoding: make test output easier to follow
Martin Geisler <mg@lazybytes.net>
parents: 3862
diff changeset
    56
echo "% hg log (dolphin)"
3845
8958417abf62 Make test-encoding return 0
Matt Mackall <mpm@selenic.com>
parents: 3843
diff changeset
    57
HGENCODING=dolphin hg log
8958417abf62 Make test-encoding return 0
Matt Mackall <mpm@selenic.com>
parents: 3843
diff changeset
    58
3862
46abbed02b2d Use UTF-8 in .hg/branch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3845
diff changeset
    59
HGENCODING=ascii hg branch `cat latin-1-tag`
46abbed02b2d Use UTF-8 in .hg/branch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3845
diff changeset
    60
cp latin-1-tag .hg/branch
46abbed02b2d Use UTF-8 in .hg/branch
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3845
diff changeset
    61
HGENCODING=latin-1 hg ci -d "1000000 0" -m 'should fail'
3845
8958417abf62 Make test-encoding return 0
Matt Mackall <mpm@selenic.com>
parents: 3843
diff changeset
    62
exit 0