24 lines
655 B
Ruby
24 lines
655 B
Ruby
require "fileutils"
|
|
require "open3"
|
|
|
|
describe "cxlc" do
|
|
def run_test(test_name)
|
|
stdout, stderr, status = Open3.capture3("../build/cxlc", "#{test_name}.cxl")
|
|
expect(status).to eq(0)
|
|
stdout, stderr, status = Open3.capture3("gcc", "-o", test_name, "#{test_name}.c")
|
|
if status != 0
|
|
$stderr.write(stderr)
|
|
end
|
|
expect(status).to eq(0)
|
|
stdout, stderr, status = Open3.capture3("./#{test_name}")
|
|
expect(stdout).to eq(File.read("#{test_name}.x"))
|
|
end
|
|
|
|
Dir["*.cxl"].sort.each do |test|
|
|
test_basename = File.basename(test, ".cxl")
|
|
it "passes test #{test_basename}" do
|
|
run_test(test_basename)
|
|
end
|
|
end
|
|
end
|