comparison tests/test-encoding-align.t @ 12418:09c6dd129f82

tests: unify test-encoding-align
author Matt Mackall <mpm@selenic.com>
date Sun, 26 Sep 2010 13:41:32 -0500
parents tests/test-encoding-align@4c94b6d0fb1c
children 22f45e53bb21
comparison
equal deleted inserted replaced
12417:1aba1c38a85b 12418:09c6dd129f82
1 Test alignment of multibyte characters
2
3 $ HGENCODING=utf-8
4 $ export HGENCODING
5 $ hg init t
6 $ cd t
7 $ python << EOF
8 > # (byte, width) = (6, 4)
9 > s = "\xe7\x9f\xad\xe5\x90\x8d"
10 > # (byte, width) = (7, 7): odd width is good for alignment test
11 > m = "MIDDLE_"
12 > # (byte, width) = (18, 12)
13 > l = "\xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d"
14 > f = file('s', 'w'); f.write(s); f.close()
15 > f = file('m', 'w'); f.write(m); f.close()
16 > f = file('l', 'w'); f.write(l); f.close()
17 > # instant extension to show list of options
18 > f = file('showoptlist.py', 'w'); f.write("""# encoding: utf-8
19 > def showoptlist(ui, repo, *pats, **opts):
20 > '''dummy command to show option descriptions'''
21 > return 0
22 > cmdtable = {
23 > 'showoptlist':
24 > (showoptlist,
25 > [('s', 'opt1', '', 'short width', '""" + s + """'),
26 > ('m', 'opt2', '', 'middle width', '""" + m + """'),
27 > ('l', 'opt3', '', 'long width', '""" + l + """')
28 > ],
29 > ""
30 > )
31 > }
32 > """)
33 > f.close()
34 > EOF
35 $ S=`cat s`
36 $ M=`cat m`
37 $ L=`cat l`
38
39 alignment of option descriptions in help
40
41 $ cat <<EOF > .hg/hgrc
42 > [extensions]
43 > ja_ext = `pwd`/showoptlist.py
44 > EOF
45
46 check alignment of option descriptions in help
47
48 $ hg help showoptlist
49 hg showoptlist
50
51 dummy command to show option descriptions
52
53 options:
54
55 -s --opt1 短名 short width
56 -m --opt2 MIDDLE_ middle width
57 -l --opt3 長い長い名前 long width
58
59 use "hg -v help showoptlist" to show global options
60
61
62 $ rm -f s; touch s
63 $ rm -f m; touch m
64 $ rm -f l; touch l
65
66 add files
67
68 $ cp s $S
69 $ hg add $S
70 $ cp m $M
71 $ hg add $M
72 $ cp l $L
73 $ hg add $L
74
75 commit(1)
76
77 $ echo 'first line(1)' >> s; cp s $S
78 $ echo 'first line(2)' >> m; cp m $M
79 $ echo 'first line(3)' >> l; cp l $L
80 $ hg commit -m 'first commit' -u $S
81
82 commit(2)
83
84 $ echo 'second line(1)' >> s; cp s $S
85 $ echo 'second line(2)' >> m; cp m $M
86 $ echo 'second line(3)' >> l; cp l $L
87 $ hg commit -m 'second commit' -u $M
88
89 commit(3)
90
91 $ echo 'third line(1)' >> s; cp s $S
92 $ echo 'third line(2)' >> m; cp m $M
93 $ echo 'third line(3)' >> l; cp l $L
94 $ hg commit -m 'third commit' -u $L
95
96 check alignment of user names in annotate
97
98 $ hg annotate -u $M
99 短名: first line(2)
100 MIDDLE_: second line(2)
101 長い長い名前: third line(2)
102
103 check alignment of filenames in diffstat
104
105 $ hg diff -c tip --stat
106 MIDDLE_ | 1 +
107 短名 | 1 +
108 長い長い名前 | 1 +
109 3 files changed, 3 insertions(+), 0 deletions(-)
110
111 add branches/tags
112
113 $ hg branch $S
114 marked working directory as branch 短名
115 $ hg tag $S
116 $ hg branch $M
117 marked working directory as branch MIDDLE_
118 $ hg tag $M
119 $ hg branch $L
120 marked working directory as branch 長い長い名前
121 $ hg tag $L
122
123 check alignment of branches
124
125 $ hg tags
126 tip 5:d745ff46155b
127 長い長い名前 4:9259be597f19
128 MIDDLE_ 3:b06c5b6def9e
129 短名 2:64a70663cee8
130
131 check alignment of tags
132
133 $ hg tags
134 tip 5:d745ff46155b
135 長い長い名前 4:9259be597f19
136 MIDDLE_ 3:b06c5b6def9e
137 短名 2:64a70663cee8