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