annotate tests/test-encoding @ 3843:abaa2cd00d2b

make transcoding more robust default to ASCII abort if unknown encoding wrap abort strings with _ add test
author Matt Mackall <mpm@selenic.com>
date Sat, 09 Dec 2006 12:46:01 -0600
parents 3820385fb113
children 8958417abf62
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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`
3827
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
28 cp latin-1-tag .hg/branch
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
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
32 echo % ascii
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
33 hg --encoding ascii log
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
34 echo % latin-1
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
35 hg --encoding latin-1 log
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
36 echo % utf-8
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
37 hg --encoding utf-8 log
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
38 echo % ascii
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
39 HGENCODING=ascii hg tags
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
40 echo % latin-1
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
41 HGENCODING=latin-1 hg tags
3783
4421cef5d3f0 Make quoting in test-encoding simpler
Matt Mackall <mpm@selenic.com>
parents: 3780
diff changeset
42 echo % utf-8
3777
5da370c2f72d Add a charset encoding test case
Matt Mackall <mpm@selenic.com>
parents:
diff changeset
43 HGENCODING=utf-8 hg tags
3827
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
44 echo % ascii
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
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
46 echo % latin-1
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
3674ca805a5b log: convert branch names to the local encoding
Alexis S. L. Carvalho <alexis@cecm.usp.br>
parents: 3789
diff changeset
48 echo % utf-8
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
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
53 echo % utf-8
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
abaa2cd00d2b make transcoding more robust
Matt Mackall <mpm@selenic.com>
parents: 3839
diff changeset
56 HGENCODING=dolphin hg log