Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cygwinでtest55が失敗する #327

Closed
k-takata opened this issue Mar 5, 2013 · 10 comments
Closed

Cygwinでtest55が失敗する #327

k-takata opened this issue Mar 5, 2013 · 10 comments

Comments

@k-takata
Copy link
Member

k-takata commented Mar 5, 2013

#319 から派生です。

Cygwinでtest55を実行すると失敗します。(7.3.843)

rm -rf test55.failed test.ok test.out X* viminfo
cp test55.ok test.ok
# Sleep a moment to avoid that the xterm title is messed up
../vim.exe -u unix.vim -U NONE --noplugin -s dotest.in test55.in
# For flaky tests retry one time.
# Check if the test.out file matches test.ok.
18c18
< Vim(call):E737: ▒

---
> Vim(call):E737: 3
116c116
< Vim(call):E737: ▒

---
> Vim(call):E737: a
rm -rf X* test.ok viminfo

Test results:
test55 FAILED

以下のパッチで直ることは確認済み。

--- a/src/testdir/test55.in
+++ b/src/testdir/test55.in
@@ -3,6 +3,7 @@
 STARTTEST
 :so small.vim
 :fun Test(...)
+:lang C
 :" Creating List directly with different types
 :let l = [1, 'as''d', [1, 2, function("strlen")], {'a': 1},]
 :$put =string(l)
@k-takata
Copy link
Member Author

k-takata commented Mar 5, 2013

Linuxで試してみたところ、:lang Cを先頭に入れなくとも失敗しなかったので、なぜCygwinで失敗になったのか原因を調べておきたいところです。
Win32の場合は、日本語メッセージが有効にならず、うまく確認できていません。

@ynkdir
Copy link
Member

ynkdir commented Mar 6, 2013

私のとこでは失敗しないです

./configure --enable-multibyte --with-features=huge && make

VIM - Vi IMproved 7.3 (2010 Aug 15, compiled Mar  6 2013 11:54:16)
Included patches: 1-843
Compiled by yukihiro@icho
Huge version without GUI.  Features included (+) or not (-):
+arabic          +file_in_path    +mouse_sgr       +tag_binary
+autocmd         +find_in_path    -mouse_sysmouse  +tag_old_static
-balloon_eval    +float           +mouse_urxvt     -tag_any_white
-browse          +folding         +mouse_xterm     -tcl
++builtin_terms  -footer          +multi_byte      +terminfo
+byte_offset     +fork()          +multi_lang      +termresponse
+cindent         +gettext         -mzscheme        +textobjects
-clientserver    -hangul_input    +netbeans_intg   +title
+clipboard       +iconv           +path_extra      -toolbar
+cmdline_compl   +insert_expand   -perl            +user_commands
+cmdline_hist    +jumplist        +persistent_undo +vertsplit
+cmdline_info    +keymap          +postscript      +virtualedit
+comments        +langmap         +printer         +visual
+conceal         +libcall         +profile         +visualextra
+cryptv          +linebreak       -python          +viminfo
+cscope          +lispindent      -python3         +vreplace
+cursorbind      +listcmds        +quickfix        +wildignore
+cursorshape     +localmap        +reltime         +wildmenu
+dialog_con      -lua             +rightleft       +windows
+diff            +menu            -ruby            +writebackup
+digraphs        +mksession       +scrollbind      -X11
-dnd             +modify_fname    +signs           -xfontset
-ebcdic          +mouse           +smartindent     -xim
+emacs_tags      -mouseshape      -sniff           -xsmp
+eval            +mouse_dec       +startuptime     -xterm_clipboard
+ex_extra        -mouse_gpm       +statusline      -xterm_save
+extra_search    -mouse_jsbterm   -sun_workshop    
+farsi           +mouse_netterm   +syntax          
   system vimrc file: "$VIM/vimrc"
     user vimrc file: "$HOME/.vimrc"
      user exrc file: "$HOME/.exrc"
  fall-back for $VIM: "/usr/local/share/vim"
Compilation: gcc -c -I. -Iproto -DHAVE_CONFIG_H     -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1      
Linking: gcc   -L/usr/local/lib -Wl,--as-needed -o vim.exe               -lm -lncurses  -liconv -lintl                   

@ynkdir
Copy link
Member

ynkdir commented Mar 6, 2013

あーそうかこのissue派生か
ちなみに make test は ALL DONE です
configure オプション同じにしないと再現しないのかな
それとも 32bit or 64bit の違いとか

@k-takata
Copy link
Member Author

k-takata commented Mar 6, 2013

すみません。原因判明しました。runtime fileをCygwinのVim配布パッケージのものをそのまま使っていたのですが、Cygwinの配布パッケージのruntime fileは 7.3.000 から更新が無く、日本語メッセージファイルが古かったのが原因でした。

関連部分のメッセージは以下のようになっています。
7.3.000

msgid "E737: Key already exists: %s"
msgstr "E737: %s というキーは既に存在します"

7.3.843

msgid "E737: Key already exists: %s"
msgstr "E737: キーは既に存在します: %s"

これを次のようにして最後の1byteを取り出していたために、おかしなことになっていました。

:  $put =v:exception[:15] . v:exception[-1:-1]

メッセージの翻訳の仕方によって、他の言語でも同じ問題は発生しそうですので、修正は入れておいた方が良さそう?

@thinca
Copy link
Member

thinca commented Mar 6, 2013

エラーメッセージ本文をユーザへの表示以外の目的で使うのはまさに今回のような問題が発生するため好ましくないので、テストを修正すべきでしょうね。

@ynkdir
Copy link
Member

ynkdir commented Mar 6, 2013

お手間でなければ
個人的にはとりあえずまあいいかで閉じてしまっても…

@k-takata
Copy link
Member Author

k-takata commented Mar 6, 2013

@ynkdir
Copy link
Member

ynkdir commented Mar 6, 2013

gj!

@k-takata
Copy link
Member Author

k-takata commented Mar 7, 2013

7.3.847 で取り込まれました。
https://groups.google.com/d/topic/vim_dev/GPMrP4dO85g/discussion

@k-takata k-takata closed this as completed Mar 7, 2013
@h-east
Copy link
Member

h-east commented Mar 7, 2013

乙です。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants