mirror of
https://github.com/zhigang1992/RubyMotion.git
synced 2026-04-02 22:42:49 +08:00
83 lines
2.1 KiB
Ruby
83 lines
2.1 KiB
Ruby
test_begin "test_autoload"
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
|
|
# autoload :ZZZ, "./zzz.rb"
|
|
# ZZZ.ok
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
|
|
# autoload :ZZZ, "./zzz.rb"
|
|
# require "./zzz.rb"
|
|
# ZZZ.ok
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
|
|
# autoload :ZZZ, "./zzz.rb"
|
|
# proc{$SAFE=4; ZZZ.ok}.call
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
|
|
# autoload :ZZZ, "./zzz.rb"
|
|
# require "./zzz.rb"
|
|
# proc{$SAFE=4; ZZZ.ok}.call
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"}
|
|
# autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')
|
|
# module M; end
|
|
# Thread.new{M.instance_eval('$SAFE=4; ZZZ.new.hoge')}.value
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"}
|
|
# autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')
|
|
# module M; end
|
|
# Thread.new{$SAFE=4; M.instance_eval('ZZZ.new.hoge')}.value
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"}
|
|
# autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')
|
|
# Thread.new{$SAFE=4; eval('ZZZ.new.hoge')}.value
|
|
# }
|
|
|
|
# assert_equal 'ok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def hoge;:ok;end;end"}
|
|
# autoload :ZZZ, File.join(Dir.pwd, 'zzz.rb')
|
|
# module M; end
|
|
# Thread.new{eval('$SAFE=4; ZZZ.new.hoge')}.value
|
|
# }
|
|
|
|
# assert_equal 'okok', proc{
|
|
# open("zzz.rb", "w") {|f| f.puts "class ZZZ; def self.ok;:ok;end;end"}
|
|
# autoload :ZZZ, "./zzz.rb"
|
|
# t1 = Thread.new {ZZZ.ok}
|
|
# t2 = Thread.new {ZZZ.ok}
|
|
# [t1.value, t2.value].join
|
|
# }
|
|
|
|
# assert_finish 5, proc{
|
|
# autoload :ZZZ, File.expand_path(__FILE__)
|
|
# begin
|
|
# ZZZ
|
|
# rescue NameError
|
|
# end
|
|
# }, '[ruby-core:21696]'
|
|
|
|
# assert_equal 'A::C', proc{
|
|
# open("zzz.rb", "w") {}
|
|
# class A
|
|
# autoload :C, "./zzz"
|
|
# class C
|
|
# end
|
|
# C
|
|
# end
|
|
# }
|
|
|
|
test_end
|