summaryrefslogtreecommitdiff
path: root/test/ruby/ut_eof.rb
blob: f1ce4f71989dfaf199f0ad3730be49ce521ad1fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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(nil, f.read(0))
      assert_equal(nil, f.read(0))
    }
    open_file("") {|f|
      assert_equal(nil, f.read(1))
      assert_equal(nil, f.read)
      assert_equal(nil, f.read(1))
    }
  end

  def test_eof_0_rw
    return unless respond_to? :open_file_rw
    open_file_rw("") {|f|
      assert_equal("", f.read)
      assert_equal(nil, f.read)
      assert_equal(0, f.syswrite(""))
      assert_equal(nil, 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(nil, f.read(0))
      assert_equal(nil, f.read(0))
    }
    open_file("a") {|f|
      assert_equal("a", f.read(1))
      assert_equal(nil, f.read(1))
    }
    open_file("a") {|f|
      assert_equal("a", f.read(2))
      assert_equal(nil, f.read(1))
      assert_equal(nil, f.read)
      assert_equal(nil, f.read(1))
    }
    open_file("a") {|f|
      assert_equal("a", f.read)
      assert_equal(nil, f.read(1))
      assert_equal(nil, f.read)
      assert_equal(nil, f.read(1))
    }
  end
end