tests: unify test-encoding
authorMatt Mackall <mpm@selenic.com>
Sun, 26 Sep 2010 13:41:32 -0500
changeset 12417 1aba1c38a85b
parent 12416 1fcdd9b7f657
child 12418 09c6dd129f82
tests: unify test-encoding
tests/test-encoding
tests/test-encoding.out
tests/test-encoding.t
--- a/tests/test-encoding	Sun Sep 26 13:41:32 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
-#!/bin/sh
-
-hg init t
-cd t
-
-# we need a repo with some legacy latin-1 changesets
-hg unbundle $TESTDIR/legacy-encoding.hg
-hg co
-
-python << EOF
-f = file('latin-1', 'w'); f.write("latin-1 e' encoded: \xe9"); f.close()
-f = file('utf-8', 'w'); f.write("utf-8 e' encoded: \xc3\xa9"); f.close()
-f = file('latin-1-tag', 'w'); f.write("\xe9"); f.close()
-EOF
-
-echo % should fail with encoding error
-echo "plain old ascii" > a
-hg st
-HGENCODING=ascii hg ci -l latin-1
-
-echo % these should work
-echo "latin-1" > a
-HGENCODING=latin-1 hg ci -l latin-1
-echo "utf-8" > a
-HGENCODING=utf-8 hg ci -l utf-8
-
-HGENCODING=latin-1 hg tag `cat latin-1-tag`
-HGENCODING=latin-1 hg branch `cat latin-1-tag`
-HGENCODING=latin-1 hg ci -m 'latin1 branch'
-rm .hg/branch
-
-echo "% hg log (ascii)"
-hg --encoding ascii log
-echo "% hg log (latin-1)"
-hg --encoding latin-1 log
-echo "% hg log (utf-8)"
-hg --encoding utf-8 log
-echo "% hg tags (ascii)"
-HGENCODING=ascii hg tags
-echo "% hg tags (latin-1)"
-HGENCODING=latin-1 hg tags
-echo "% hg tags (utf-8)"
-HGENCODING=utf-8 hg tags
-echo "% hg branches (ascii)"
-HGENCODING=ascii hg branches
-echo "% hg branches (latin-1)"
-HGENCODING=latin-1 hg branches
-echo "% hg branches (utf-8)"
-HGENCODING=utf-8 hg branches
-
-echo '[ui]' >> .hg/hgrc
-echo 'fallbackencoding = koi8-r' >> .hg/hgrc
-echo "% hg log (utf-8)"
-HGENCODING=utf-8 hg log
-
-echo "% hg log (dolphin)"
-HGENCODING=dolphin hg log
-
-HGENCODING=ascii hg branch `cat latin-1-tag`
-cp latin-1-tag .hg/branch
-HGENCODING=latin-1 hg ci -m 'should fail'
-exit 0
--- a/tests/test-encoding.out	Sun Sep 26 13:41:32 2010 -0500
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,174 +0,0 @@
-adding changesets
-adding manifests
-adding file changes
-added 2 changesets with 2 changes to 1 files
-(run 'hg update' to get a working copy)
-1 files updated, 0 files merged, 0 files removed, 0 files unresolved
-% should fail with encoding error
-M a
-? latin-1
-? latin-1-tag
-? utf-8
-transaction abort!
-rollback completed
-abort: decoding near ' encoded: é': 'ascii' codec can't decode byte 0xe9 in position 20: ordinal not in range(128)!
-% these should work
-marked working directory as branch é
-% hg log (ascii)
-changeset:   5:093c6077d1c8
-branch:      ?
-tag:         tip
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin1 branch
-
-changeset:   4:94db611b4196
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     Added tag ? for changeset ca661e7520de
-
-changeset:   3:ca661e7520de
-tag:         ?
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     utf-8 e' encoded: ?
-
-changeset:   2:650c6f3d55dd
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin-1 e' encoded: ?
-
-changeset:   1:0e5b7e3f9c4a
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     koi8-r: ????? = u'\u0440\u0442\u0443\u0442\u044c'
-
-changeset:   0:1e78a93102a3
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     latin-1 e': ? = u'\xe9'
-
-% hg log (latin-1)
-changeset:   5:093c6077d1c8
-branch:      é
-tag:         tip
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin1 branch
-
-changeset:   4:94db611b4196
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     Added tag é for changeset ca661e7520de
-
-changeset:   3:ca661e7520de
-tag:         é
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     utf-8 e' encoded: é
-
-changeset:   2:650c6f3d55dd
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin-1 e' encoded: é
-
-changeset:   1:0e5b7e3f9c4a
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     koi8-r: ÒÔÕÔØ = u'\u0440\u0442\u0443\u0442\u044c'
-
-changeset:   0:1e78a93102a3
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     latin-1 e': é = u'\xe9'
-
-% hg log (utf-8)
-changeset:   5:093c6077d1c8
-branch:      é
-tag:         tip
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin1 branch
-
-changeset:   4:94db611b4196
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     Added tag é for changeset ca661e7520de
-
-changeset:   3:ca661e7520de
-tag:         é
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     utf-8 e' encoded: é
-
-changeset:   2:650c6f3d55dd
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin-1 e' encoded: é
-
-changeset:   1:0e5b7e3f9c4a
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     koi8-r: ÒÔÕÔØ = u'\u0440\u0442\u0443\u0442\u044c'
-
-changeset:   0:1e78a93102a3
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     latin-1 e': é = u'\xe9'
-
-% hg tags (ascii)
-tip                                5:093c6077d1c8
-?                                  3:ca661e7520de
-% hg tags (latin-1)
-tip                                5:093c6077d1c8
-é                                 3:ca661e7520de
-% hg tags (utf-8)
-tip                                5:093c6077d1c8
-é                                 3:ca661e7520de
-% hg branches (ascii)
-?                              5:093c6077d1c8
-default                        4:94db611b4196 (inactive)
-% hg branches (latin-1)
-é                             5:093c6077d1c8
-default                        4:94db611b4196 (inactive)
-% hg branches (utf-8)
-é                             5:093c6077d1c8
-default                        4:94db611b4196 (inactive)
-% hg log (utf-8)
-changeset:   5:093c6077d1c8
-branch:      é
-tag:         tip
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin1 branch
-
-changeset:   4:94db611b4196
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     Added tag é for changeset ca661e7520de
-
-changeset:   3:ca661e7520de
-tag:         é
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     utf-8 e' encoded: é
-
-changeset:   2:650c6f3d55dd
-user:        test
-date:        Thu Jan 01 00:00:00 1970 +0000
-summary:     latin-1 e' encoded: é
-
-changeset:   1:0e5b7e3f9c4a
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     koi8-r: ртуть = u'\u0440\u0442\u0443\u0442\u044c'
-
-changeset:   0:1e78a93102a3
-user:        test
-date:        Mon Jan 12 13:46:40 1970 +0000
-summary:     latin-1 e': И = u'\xe9'
-
-% hg log (dolphin)
-abort: unknown encoding: dolphin, please check your locale settings
-abort: decoding near 'é': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)!
-abort: branch name not in UTF-8!
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/test-encoding.t	Sun Sep 26 13:41:32 2010 -0500
@@ -0,0 +1,245 @@
+Test character encoding
+
+  $ hg init t
+  $ cd t
+
+we need a repo with some legacy latin-1 changesets
+
+  $ hg unbundle $TESTDIR/legacy-encoding.hg
+  adding changesets
+  adding manifests
+  adding file changes
+  added 2 changesets with 2 changes to 1 files
+  (run 'hg update' to get a working copy)
+  $ hg co
+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ python << EOF
+  > f = file('latin-1', 'w'); f.write("latin-1 e' encoded: \xe9"); f.close()
+  > f = file('utf-8', 'w'); f.write("utf-8 e' encoded: \xc3\xa9"); f.close()
+  > f = file('latin-1-tag', 'w'); f.write("\xe9"); f.close()
+  > EOF
+
+should fail with encoding error
+
+  $ echo "plain old ascii" > a
+  $ hg st
+  M a
+  ? latin-1
+  ? latin-1-tag
+  ? utf-8
+  $ HGENCODING=ascii hg ci -l latin-1
+  transaction abort!
+  rollback completed
+  abort: decoding near ' encoded: é': 'ascii' codec can't decode byte 0xe9 in position 20: ordinal not in range(128)!
+  [255]
+
+these should work
+
+  $ echo "latin-1" > a
+  $ HGENCODING=latin-1 hg ci -l latin-1
+  $ echo "utf-8" > a
+  $ HGENCODING=utf-8 hg ci -l utf-8
+  $ HGENCODING=latin-1 hg tag `cat latin-1-tag`
+  $ HGENCODING=latin-1 hg branch `cat latin-1-tag`
+  marked working directory as branch é
+  $ HGENCODING=latin-1 hg ci -m 'latin1 branch'
+  $ rm .hg/branch
+
+hg log (ascii)
+
+  $ hg --encoding ascii log
+  changeset:   5:093c6077d1c8
+  branch:      ?
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin1 branch
+  
+  changeset:   4:94db611b4196
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     Added tag ? for changeset ca661e7520de
+  
+  changeset:   3:ca661e7520de
+  tag:         ?
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     utf-8 e' encoded: ?
+  
+  changeset:   2:650c6f3d55dd
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin-1 e' encoded: ?
+  
+  changeset:   1:0e5b7e3f9c4a
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     koi8-r: ????? = u'\u0440\u0442\u0443\u0442\u044c'
+  
+  changeset:   0:1e78a93102a3
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     latin-1 e': ? = u'\xe9'
+  
+
+hg log (latin-1)
+
+  $ hg --encoding latin-1 log
+  changeset:   5:093c6077d1c8
+  branch:      é
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin1 branch
+  
+  changeset:   4:94db611b4196
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     Added tag é for changeset ca661e7520de
+  
+  changeset:   3:ca661e7520de
+  tag:         é
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     utf-8 e' encoded: é
+  
+  changeset:   2:650c6f3d55dd
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin-1 e' encoded: é
+  
+  changeset:   1:0e5b7e3f9c4a
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     koi8-r: ÒÔÕÔØ = u'\u0440\u0442\u0443\u0442\u044c'
+  
+  changeset:   0:1e78a93102a3
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     latin-1 e': é = u'\xe9'
+  
+
+hg log (utf-8)
+
+  $ hg --encoding utf-8 log
+  changeset:   5:093c6077d1c8
+  branch:      é
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin1 branch
+  
+  changeset:   4:94db611b4196
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     Added tag é for changeset ca661e7520de
+  
+  changeset:   3:ca661e7520de
+  tag:         é
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     utf-8 e' encoded: é
+  
+  changeset:   2:650c6f3d55dd
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin-1 e' encoded: é
+  
+  changeset:   1:0e5b7e3f9c4a
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     koi8-r: ÒÔÕÔØ = u'\u0440\u0442\u0443\u0442\u044c'
+  
+  changeset:   0:1e78a93102a3
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     latin-1 e': é = u'\xe9'
+  
+
+hg tags (ascii)
+
+  $ HGENCODING=ascii hg tags
+  tip                                5:093c6077d1c8
+  ?                                  3:ca661e7520de
+
+hg tags (latin-1)
+
+  $ HGENCODING=latin-1 hg tags
+  tip                                5:093c6077d1c8
+  é                                 3:ca661e7520de
+
+hg tags (utf-8)
+
+  $ HGENCODING=utf-8 hg tags
+  tip                                5:093c6077d1c8
+  é                                 3:ca661e7520de
+
+hg branches (ascii)
+
+  $ HGENCODING=ascii hg branches
+  ?                              5:093c6077d1c8
+  default                        4:94db611b4196 (inactive)
+
+hg branches (latin-1)
+
+  $ HGENCODING=latin-1 hg branches
+  é                             5:093c6077d1c8
+  default                        4:94db611b4196 (inactive)
+
+hg branches (utf-8)
+
+  $ HGENCODING=utf-8 hg branches
+  é                             5:093c6077d1c8
+  default                        4:94db611b4196 (inactive)
+  $ echo '[ui]' >> .hg/hgrc
+  $ echo 'fallbackencoding = koi8-r' >> .hg/hgrc
+
+hg log (utf-8)
+
+  $ HGENCODING=utf-8 hg log
+  changeset:   5:093c6077d1c8
+  branch:      é
+  tag:         tip
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin1 branch
+  
+  changeset:   4:94db611b4196
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     Added tag é for changeset ca661e7520de
+  
+  changeset:   3:ca661e7520de
+  tag:         é
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     utf-8 e' encoded: é
+  
+  changeset:   2:650c6f3d55dd
+  user:        test
+  date:        Thu Jan 01 00:00:00 1970 +0000
+  summary:     latin-1 e' encoded: é
+  
+  changeset:   1:0e5b7e3f9c4a
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     koi8-r: ртуть = u'\u0440\u0442\u0443\u0442\u044c'
+  
+  changeset:   0:1e78a93102a3
+  user:        test
+  date:        Mon Jan 12 13:46:40 1970 +0000
+  summary:     latin-1 e': И = u'\xe9'
+  
+
+hg log (dolphin)
+
+  $ HGENCODING=dolphin hg log
+  abort: unknown encoding: dolphin, please check your locale settings
+  [255]
+  $ HGENCODING=ascii hg branch `cat latin-1-tag`
+  abort: decoding near 'é': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)!
+  [255]
+  $ cp latin-1-tag .hg/branch
+  $ HGENCODING=latin-1 hg ci -m 'should fail'
+  abort: branch name not in UTF-8!
+  [255]