# HG changeset patch # User Matt Mackall # Date 1285526492 18000 # Node ID 09c6dd129f82c2c8269b41584ab6bc97cd9321fe # Parent 1aba1c38a85b243465fb98bd811845c21242bccb tests: unify test-encoding-align diff -r 1aba1c38a85b -r 09c6dd129f82 tests/test-encoding-align --- a/tests/test-encoding-align Sun Sep 26 13:41:32 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -#!/bin/sh - -######################################## - -HGENCODING=utf-8 -export HGENCODING - -hg init t -cd t - -python << EOF -# (byte, width) = (6, 4) -s = "\xe7\x9f\xad\xe5\x90\x8d" -# (byte, width) = (7, 7): odd width is good for alignment test -m = "MIDDLE_" -# (byte, width) = (18, 12) -l = "\xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d" - -f = file('s', 'w'); f.write(s); f.close() -f = file('m', 'w'); f.write(m); f.close() -f = file('l', 'w'); f.write(l); f.close() - -# instant extension to show list of options -f = file('showoptlist.py', 'w'); f.write("""# encoding: utf-8 -def showoptlist(ui, repo, *pats, **opts): - '''dummy command to show option descriptions''' - return 0 - -cmdtable = { - 'showoptlist': - (showoptlist, - [('s', 'opt1', '', 'short width', '""" + s + """'), - ('m', 'opt2', '', 'middle width', '""" + m + """'), - ('l', 'opt3', '', 'long width', '""" + l + """') - ], - "" - ) -} -""") -f.close() -EOF - -S=`cat s` -M=`cat m` -L=`cat l` - -######################################## -#### alignment of: -#### - option descriptions in help - -cat < .hg/hgrc -[extensions] -ja_ext = `pwd`/showoptlist.py -EOF -echo '% check alignment of option descriptions in help' -hg help showoptlist - -######################################## -#### alignment of: -#### - user names in annotate -#### - file names in diffstat - -rm -f s; touch s -rm -f m; touch m -rm -f l; touch l - -#### add files - -cp s $S -hg add $S -cp m $M -hg add $M -cp l $L -hg add $L - -#### commit(1) - -echo 'first line(1)' >> s; cp s $S -echo 'first line(2)' >> m; cp m $M -echo 'first line(3)' >> l; cp l $L -hg commit -m 'first commit' -u $S - -#### commit(2) - -echo 'second line(1)' >> s; cp s $S -echo 'second line(2)' >> m; cp m $M -echo 'second line(3)' >> l; cp l $L -hg commit -m 'second commit' -u $M - -#### commit(3) - -echo 'third line(1)' >> s; cp s $S -echo 'third line(2)' >> m; cp m $M -echo 'third line(3)' >> l; cp l $L -hg commit -m 'third commit' -u $L - -#### check - -echo '% check alignment of user names in annotate' -hg annotate -u $M -echo '% check alignment of filenames in diffstat' -hg diff -c tip --stat - -######################################## -#### alignment of: -#### - branch names in list -#### - tag names in list - -#### add branches/tags - -hg branch $S -hg tag $S -hg branch $M -hg tag $M -hg branch $L -hg tag $L - -#### check - -echo '% check alignment of branches' -hg tags -echo '% check alignment of tags' -hg tags - -######################################## - -exit 0 diff -r 1aba1c38a85b -r 09c6dd129f82 tests/test-encoding-align.out --- a/tests/test-encoding-align.out Sun Sep 26 13:41:32 2010 -0500 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -% check alignment of option descriptions in help -hg showoptlist - -dummy command to show option descriptions - -options: - - -s --opt1 短名 short width - -m --opt2 MIDDLE_ middle width - -l --opt3 長い長い名前 long width - -use "hg -v help showoptlist" to show global options -% check alignment of user names in annotate - 短名: first line(2) - MIDDLE_: second line(2) -長い長い名前: third line(2) -% check alignment of filenames in diffstat - MIDDLE_ | 1 + - 短名 | 1 + - 長い長い名前 | 1 + - 3 files changed, 3 insertions(+), 0 deletions(-) -marked working directory as branch 短名 -marked working directory as branch MIDDLE_ -marked working directory as branch 長い長い名前 -% check alignment of branches -tip 5:d745ff46155b -長い長い名前 4:9259be597f19 -MIDDLE_ 3:b06c5b6def9e -短名 2:64a70663cee8 -% check alignment of tags -tip 5:d745ff46155b -長い長い名前 4:9259be597f19 -MIDDLE_ 3:b06c5b6def9e -短名 2:64a70663cee8 diff -r 1aba1c38a85b -r 09c6dd129f82 tests/test-encoding-align.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-encoding-align.t Sun Sep 26 13:41:32 2010 -0500 @@ -0,0 +1,137 @@ +Test alignment of multibyte characters + + $ HGENCODING=utf-8 + $ export HGENCODING + $ hg init t + $ cd t + $ python << EOF + > # (byte, width) = (6, 4) + > s = "\xe7\x9f\xad\xe5\x90\x8d" + > # (byte, width) = (7, 7): odd width is good for alignment test + > m = "MIDDLE_" + > # (byte, width) = (18, 12) + > l = "\xe9\x95\xb7\xe3\x81\x84\xe9\x95\xb7\xe3\x81\x84\xe5\x90\x8d\xe5\x89\x8d" + > f = file('s', 'w'); f.write(s); f.close() + > f = file('m', 'w'); f.write(m); f.close() + > f = file('l', 'w'); f.write(l); f.close() + > # instant extension to show list of options + > f = file('showoptlist.py', 'w'); f.write("""# encoding: utf-8 + > def showoptlist(ui, repo, *pats, **opts): + > '''dummy command to show option descriptions''' + > return 0 + > cmdtable = { + > 'showoptlist': + > (showoptlist, + > [('s', 'opt1', '', 'short width', '""" + s + """'), + > ('m', 'opt2', '', 'middle width', '""" + m + """'), + > ('l', 'opt3', '', 'long width', '""" + l + """') + > ], + > "" + > ) + > } + > """) + > f.close() + > EOF + $ S=`cat s` + $ M=`cat m` + $ L=`cat l` + +alignment of option descriptions in help + + $ cat < .hg/hgrc + > [extensions] + > ja_ext = `pwd`/showoptlist.py + > EOF + +check alignment of option descriptions in help + + $ hg help showoptlist + hg showoptlist + + dummy command to show option descriptions + + options: + + -s --opt1 短名 short width + -m --opt2 MIDDLE_ middle width + -l --opt3 長い長い名前 long width + + use "hg -v help showoptlist" to show global options + + + $ rm -f s; touch s + $ rm -f m; touch m + $ rm -f l; touch l + +add files + + $ cp s $S + $ hg add $S + $ cp m $M + $ hg add $M + $ cp l $L + $ hg add $L + +commit(1) + + $ echo 'first line(1)' >> s; cp s $S + $ echo 'first line(2)' >> m; cp m $M + $ echo 'first line(3)' >> l; cp l $L + $ hg commit -m 'first commit' -u $S + +commit(2) + + $ echo 'second line(1)' >> s; cp s $S + $ echo 'second line(2)' >> m; cp m $M + $ echo 'second line(3)' >> l; cp l $L + $ hg commit -m 'second commit' -u $M + +commit(3) + + $ echo 'third line(1)' >> s; cp s $S + $ echo 'third line(2)' >> m; cp m $M + $ echo 'third line(3)' >> l; cp l $L + $ hg commit -m 'third commit' -u $L + +check alignment of user names in annotate + + $ hg annotate -u $M + 短名: first line(2) + MIDDLE_: second line(2) + 長い長い名前: third line(2) + +check alignment of filenames in diffstat + + $ hg diff -c tip --stat + MIDDLE_ | 1 + + 短名 | 1 + + 長い長い名前 | 1 + + 3 files changed, 3 insertions(+), 0 deletions(-) + +add branches/tags + + $ hg branch $S + marked working directory as branch 短名 + $ hg tag $S + $ hg branch $M + marked working directory as branch MIDDLE_ + $ hg tag $M + $ hg branch $L + marked working directory as branch 長い長い名前 + $ hg tag $L + +check alignment of branches + + $ hg tags + tip 5:d745ff46155b + 長い長い名前 4:9259be597f19 + MIDDLE_ 3:b06c5b6def9e + 短名 2:64a70663cee8 + +check alignment of tags + + $ hg tags + tip 5:d745ff46155b + 長い長い名前 4:9259be597f19 + MIDDLE_ 3:b06c5b6def9e + 短名 2:64a70663cee8