# frozen_string_literal: false require 'test/unit' module TestEOF def test_eof_0 open_file("") {|f| assert_equal("", f.read(0)) assert_equal("", f.read(0)) assert_equal("", f.read) assert_equal("", f.read(0)) assert_equal("", f.read(0)) } open_file("") {|f| assert_nil(f.read(1)) assert_equal("", f.read) assert_nil(f.read(1)) } open_file("") {|f| s = "x" assert_equal("", f.read(nil, s)) assert_equal("", s) } open_file("") {|f| s = "x" assert_nil(f.read(10, s)) assert_equal("", s) } end def test_eof_0_rw return unless respond_to? :open_file_rw open_file_rw("") {|f| assert_equal("", f.read) assert_equal("", f.read) assert_equal(0, f.syswrite("")) assert_equal("", f.read) } end def test_eof_1 open_file("a") {|f| assert_equal("", f.read(0)) assert_equal("a", f.read(1)) assert_equal("" , f.read(0)) assert_equal("" , f.read(0)) assert_equal("", f.read) assert_equal("", f.read(0)) assert_equal("", f.read(0)) } open_file("a") {|f| assert_equal("a", f.read(1)) assert_nil(f.read(1)) } open_file("a") {|f| assert_equal("a", f.read(2)) assert_nil(f.read(1)) assert_equal("", f.read) assert_nil(f.read(1)) } open_file("a") {|f| assert_equal("a", f.read) assert_nil(f.read(1)) assert_equal("", f.read) assert_nil(f.read(1)) } open_file("a") {|f| assert_equal("a", f.read(2)) assert_equal("", f.read) assert_equal("", f.read) } open_file("a") {|f| assert_equal("a", f.read) assert_equal("", f.read(0)) } open_file("a") {|f| s = "x" assert_equal("a", f.read(nil, s)) assert_equal("a", s) } open_file("a") {|f| s = "x" assert_equal("a", f.read(10, s)) assert_equal("a", s) } end def test_eof_2 open_file("") {|f| assert_equal("", f.read) assert_predicate(f, :eof?) } end def test_eof_3 open_file("") {|f| assert_predicate(f, :eof?) } end module Seek def open_file_seek(content, pos) open_file(content) do |f| f.seek(pos) yield f end end def test_eof_0_seek open_file_seek("", 10) {|f| assert_equal(10, f.pos) assert_equal("", f.read(0)) assert_equal("", f.read) assert_equal("", f.read(0)) assert_equal("", f.read) } end def test_eof_1_seek open_file_seek("a", 10) {|f| assert_equal("", f.read) assert_equal("", f.read) } open_file_seek("a", 1) {|f| assert_equal("", f.read) assert_equal("", f.read) } end end end >author
path: root/vm_method.c
AgeCommit message (Expand)Author
2015-02-19merge revision(s) 49222:naruse
2015-02-19merge revision(s) 49480,49493: [Backport #10765]naruse
2015-01-26merge revision(s) 49322: [Backport #10753]naruse
2015-01-19merge revision(s) 49184: [Backport #10707]naruse
2015-01-17merge revision(s) 49221: [Backport #10731]naruse
2015-01-17merge revision(s) 49182,49183: [Backport #10706]naruse
2014-11-25vm_method.c: preserve encodingsnobu
2014-11-25vm_method.c: preserve encodingsnobu
2014-11-05intern.h: deprecate disable and enable supernobu
2014-10-23vm_method.c: get rid of cachenobu
2014-10-23vm_method.c: no redefinition warnings for undefined methodsnobu
2014-09-18vm_method.c: configurable global method cache sizenobu
2014-09-17vm_method.c: single expressionnobu
2014-09-12vm_method.c: should not modify frozen objectsnobu
2014-08-12vm_method.c (release_method_definition): use rb_free_method_entrynormal
2014-07-30thread.c, vm_method.c: avoid inadvertent pin-downnobu
2014-07-09* parse.y: change Symbol <-> ID relationship to avoidko1
2014-06-18constify parametersnobu
2014-06-16vm_method.c: no RTEST on mere flagnobu
2014-06-15vm_method.c: separate ID selectionnobu