Actions
Bug #11780
closedTestIO_Console#test_getpass failed on Solaris
Description
Solaris 10 にて、TestIO_Console#test_getpass が以下のエラーで失敗します。
1) Error:
TestIO_Console#test_getpass:
Errno::EINVAL: Invalid argument
/XXXXX/test/io/console/test_io_console.rb:190:in `getpass'
/XXXXX/test/io/console/test_io_console.rb:190:in `block in test_getpass'
/XXXXX/test/io/console/test_io_console.rb:277:in `helper'
/XXXXX/test/io/console/test_io_console.rb:185:in `test_getpass'
(r52912 にて確認)
getpass自体は特に問題なく、テストコードのバグだと思います。
まず、m と s の役割が逆の気がします。
たとえば、同ファイル内の test_noecho や test_noecho2 では s.noecho のテストをしていますが、m に対してはecho関係の操作は行なっていません。
getpass は端的に言えば内部で noecho してから gets 相当を行なっているだけと思うので、テストも同様に(test_noecho は簡潔すぎるので)test_noecho2 を元にして書けばよさそうに思いました。
それに加えて、現在のコードでは、Threadとassertのタイミング問題が発生しそうな予感がします。
Updated by ngoto (Naohisa Goto) over 8 years ago
- Status changed from Open to Closed
Applied in changeset r52937.
- test/io/console/test_io_console.rb (test_getpass): s.getpass
should be tested. Narrow ensure block. This reverts r52911.
[Bug #11780] [ruby-dev:49412]
Actions
Like0
Like0