summaryrefslogtreecommitdiffstats
path: root/web/server/h2o/libh2o/deps/mruby-dir/test/dir.rb
blob: cb1f1e31b926cf3aa1c28f182c48b77ad2796b74 (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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
assert('Dir') do
  assert_equal(Class, Dir.class)
end

assert('DirTest.setup') do
  DirTest.setup
end

assert('Dir.chdir') do
  assert_equal 0, Dir.chdir(DirTest.sandbox)
end

assert('Dir.entries') do
  a = Dir.entries(DirTest.sandbox)
  assert_true a.include? "a"
  assert_true a.include? "b"
end

assert('Dir.exist?') do
  assert_true Dir.exist?(DirTest.sandbox)
  assert_false Dir.exist?(DirTest.sandbox + "/nosuchdir")
end

assert('Dir.foreach') do
  a = []
  Dir.foreach(DirTest.sandbox) { |s| a << s }
  assert_true a.include? "a"
  assert_true a.include? "b"
end

assert('Dir.getwd') do
  s = Dir.getwd
  assert_true s.kind_of? String
end

assert('Dir.mkdir') do
  m1 = DirTest.sandbox + "/mkdir1"
  m2 = DirTest.sandbox + "/mkdir2"
  assert_equal 0, Dir.mkdir(m1)
  assert_equal 0, Dir.mkdir(m2, 0765)
end

assert('Dir.delete') do
  s = DirTest.sandbox + "/delete"
  Dir.mkdir(s)
  assert_true Dir.exist?(s)

  Dir.delete(s)
  assert_false Dir.exist?(s)
end

assert('Dir.open') do
  a = []
  Dir.open(DirTest.sandbox) { |d|
    d.each { |s| a << s }
  }
  assert_true a.include? "a"
  assert_true a.include? "b"
end

assert('Dir#initialize and Dir#close') do
  d = Dir.new(".")
  assert_true d.instance_of? Dir
  assert_nil d.close
end

assert('Dir#close') do
  d = Dir.new(".")
end

assert('Dir#each') do
  a = []
  d = Dir.open(DirTest.sandbox)
  d.each { |s| a << s }
  d.close
  assert_true a.include? "a"
  assert_true a.include? "b"
end

assert('Dir#read') do
  a = []
  d = Dir.open(DirTest.sandbox)
  while s = d.read
    a << s
  end
  d.close
  assert_true a.include? "a"
  assert_true a.include? "b"
end

assert('Dir#rewind') do
  d = Dir.open(DirTest.sandbox)
  while d.read; end

  assert_equal d, d.rewind

  a = []
  while s = d.read
    a << s
  end
  d.close
  assert_true a.include? "a"
  assert_true a.include? "b"
end

# Note: behaviors of seekdir(3) and telldir(3) are so platform-dependent
# that we cannot write portable tests here.

assert('Dir#tell') do
  n = nil
  Dir.open(DirTest.sandbox) { |d|
    n = d.tell
  }
  assert_true n.is_a? Integer
end

assert('Dir#seek') do
  d1 = Dir.open(DirTest.sandbox)
  d1.read
  n = d1.tell
  d1.read
  d2 = d1.seek(n)
  assert_equal d1, d2
end

assert('DirTest.teardown') do
  DirTest.teardown
end