зеркало из https://github.com/github/ruby.git
IO#readpartial rejects bad args
Sometimes a sleepy developer will want to swap read_nonblock for readpartial forget to remove "exception: false" * io.c (io_getpartial): remove unused kwarg from template * test/ruby/test_io.rb (test_readpartial_bad_args): new [Bug #11885] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53329 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
Родитель
509cfc4c37
Коммит
edea151a4b
|
@ -1,3 +1,9 @@
|
||||||
|
Sun Dec 27 15:14:20 2015 Eric Wong <e@80x24.org>
|
||||||
|
|
||||||
|
* io.c (io_getpartial): remove unused kwarg from template
|
||||||
|
* test/ruby/test_io.rb (test_readpartial_bad_args): new
|
||||||
|
[Bug #11885]
|
||||||
|
|
||||||
Sun Dec 27 11:50:53 2015 Kuniaki IGARASHI <igaiga@gmail.com>
|
Sun Dec 27 11:50:53 2015 Kuniaki IGARASHI <igaiga@gmail.com>
|
||||||
|
|
||||||
* test/ruby/test_string.rb (test_rstrip, test_lstrip): Add tests
|
* test/ruby/test_string.rb (test_rstrip, test_lstrip): Add tests
|
||||||
|
|
2
io.c
2
io.c
|
@ -2506,7 +2506,7 @@ io_getpartial(int argc, VALUE *argv, VALUE io, VALUE opts, int nonblock)
|
||||||
long n, len;
|
long n, len;
|
||||||
struct read_internal_arg arg;
|
struct read_internal_arg arg;
|
||||||
|
|
||||||
rb_scan_args(argc, argv, "11:", &length, &str, NULL);
|
rb_scan_args(argc, argv, "11", &length, &str);
|
||||||
|
|
||||||
if ((len = NUM2LONG(length)) < 0) {
|
if ((len = NUM2LONG(length)) < 0) {
|
||||||
rb_raise(rb_eArgError, "negative length %ld given", len);
|
rb_raise(rb_eArgError, "negative length %ld given", len);
|
||||||
|
|
|
@ -3186,6 +3186,17 @@ End
|
||||||
}
|
}
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_readpartial_bad_args
|
||||||
|
IO.pipe do |r, w|
|
||||||
|
w.write '.'
|
||||||
|
buf = String.new
|
||||||
|
assert_raise(ArgumentError) { r.readpartial(1, buf, exception: false) }
|
||||||
|
assert_raise(TypeError) { r.readpartial(1, exception: false) }
|
||||||
|
assert_equal [[r],[],[]], IO.select([r], nil, nil, 1)
|
||||||
|
assert_equal '.', r.readpartial(1)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_sysread_unlocktmp_ensure
|
def test_sysread_unlocktmp_ensure
|
||||||
bug8669 = '[ruby-core:56121] [Bug #8669]'
|
bug8669 = '[ruby-core:56121] [Bug #8669]'
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче