R19789 * transcode.c / test/ruby/test_transcode.rb

高野です。

以下のFailについてです。

  1. Failure:
    test_errors(TestTranscode)
    [/home/takano/ruby/test/fileutils/fileasserts.rb:8:in _wrap_assertion' /home/takano/ruby/test/fileutils/fileasserts.rb:8:in_wrap_assertion’
    /home/takano/ruby/test/ruby/test_transcode.rb:22:in `test_errors’]:
    exception expected but none was thrown.

22行目はこんな感じです。

assert_raise(ArgumentError) { ‘abc’.encode }
assert_raise(ArgumentError) { ‘abc’.encode! }

encode と encode! の引数のテストをしているようです。
どうやら無引数の呼び出しは許可していないようなので、
transcode.c のとこで str_encode と str_encode_bang のところをいじり、
rb_scan_args で引数の数をチェックするようにしたら通りました〜。

パッチを添付します。

深く読めてないところがあるかもしれないので、査読希望です :slight_smile:

e$BA0ED$G$9!#e(B

2008/10/15 16:42 TAKANO Mitsuhiro [email protected]:

encode e$B$He(B encode! e$B$N0z?t$N%F%9%H$r$7$F$$$k$h$&$G$9!#e(B
e$B$I$&$d$iL50z?t$N8F$S=P$7$O5v2D$7$F$$$J$$$h$&$J$N$G!"e(B
transcode.c e$B$N$H$3$Ge(B str_encode e$B$He(B str_encode_bang e$B$N$H$3$m$r$$$8$j!"e(B
rb_scan_args e$B$G0z?t$N?t$r%A%'%C%/$9$k$h$&$K$7$?$iDL$j$^$7$?!A!#e(B

e$B0U?^$5$l$?;EMMJQ99$G$O$J$$$G$7$g$&$+e(B?

Mon Oct 13 07:42:57 2008 Yukihiro M. [email protected]

   * transcode.c (str_transcode0): String#encode() with no encoding
     specified transcode the string into Encoding.default_internal.
     inspired by [ruby-core:19298].

e$B9bLn$G$9!#e(B

e$B$&$.$c$C!#e(B

e$B$G$O!"$3$N$U$?$D$N%F%9%H$OC1=c$K>C$7$F$7$^$&$@$1$G$h$5$=$&$G$9$M!#e(B

assert_raise(ArgumentError) { ‘abc’.encode }
assert_raise(ArgumentError) { ‘abc’.encode! }

Shugo M. e$B$5$s$O=q$-$^$7$?e(B: