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
|
$dir = File.join(Dir.tmpdir, "mruby-require-test-#{Time.now.to_i}.#{Time.now.usec}")
def test_setup
Dir.mkdir($dir)
File.open(File.join($dir, "loop1.rb"), "w") do |fp|
fp.puts "require 'loop2.rb'"
fp.puts "$loop1 = 'loop1'"
end
File.open(File.join($dir, "loop2.rb"), "w") do |fp|
fp.puts "require 'loop1.rb'"
fp.puts "$loop2 = 'loop2'"
end
$require_test_count = 10
(1..$require_test_count-1).each do |i|
File.open(File.join($dir, "#{i+1}.rb"), "w") do |fp|
fp.puts "require '#{i}'"
fp.puts "s = 0"
(0..100).each{|num| fp.puts "s += #{num}" }
end
end
File.open(File.join($dir, "1.rb"), "w") do |fp|
fp.puts "$require_test_0 = 123"
end
$LOAD_PATH = [$dir]
end
def test_cleanup
if $dir && File.exist?($dir)
Dir.entries($dir).each do |e|
next if ['.', '..'].include? e
File.unlink File.join($dir,e)
end
Dir.unlink $dir
end
end
#####
test_setup
#####
assert("require loop check") do
require 'loop1'
assert_equal 'loop1', $loop1
assert_equal 'loop2', $loop2
end
assert("require nest") do
before = $".size
require "#{$require_test_count}"
assert_equal before + $require_test_count, $".size
end
#####
test_cleanup
#####
|