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
|
require 'spec_helper'
require 'open3'
describe "Regression on" do
Dir["example/*.rb"].each do |example|
context example do
# Generates a product path for a given example file.
def product_path(str, ext)
str.
gsub('.rb', ".#{ext}").
gsub('example/','example/output/')
end
it "runs successfully" do
_, stdout, stderr = Open3.popen3("ruby #{example}")
handle_map = {
stdout => :out,
stderr => :err
}
expectation_found = handle_map.any? do |io, ext|
name = product_path(example, ext)
if File.exist?(name)
io.read.strip.should == File.read(name).strip
true
end
end
unless expectation_found
fail "Example doesn't have either an .err or an .out file. "+
"Please create in examples/output!"
end
end
end
end
end
|