Checkout of Instiki Trunk 1/21/2007.
This commit is contained in:
commit
69b62b6f33
1138 changed files with 139586 additions and 0 deletions
26
vendor/rails/actionpack/test/testing_sandbox.rb
vendored
Normal file
26
vendor/rails/actionpack/test/testing_sandbox.rb
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
module TestingSandbox
|
||||
|
||||
# This whole thing *could* be much simpler, but I don't think Tempfile,
|
||||
# popen and others exist on all platforms (like Windows).
|
||||
def execute_in_sandbox(code)
|
||||
test_name = "#{File.dirname(__FILE__)}/test.#{$$}.rb"
|
||||
res_name = "#{File.dirname(__FILE__)}/test.#{$$}.out"
|
||||
|
||||
File.open(test_name, "w+") do |file|
|
||||
file.write(<<-CODE)
|
||||
$:.unshift "../lib"
|
||||
block = Proc.new do
|
||||
#{code}
|
||||
end
|
||||
print block.call
|
||||
CODE
|
||||
end
|
||||
|
||||
system("ruby #{test_name} > #{res_name}") or raise "could not run test in sandbox"
|
||||
File.read(res_name)
|
||||
ensure
|
||||
File.delete(test_name) rescue nil
|
||||
File.delete(res_name) rescue nil
|
||||
end
|
||||
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue