From a716dedeb630adb2a341ebe01cfe7429a2dbda56 Mon Sep 17 00:00:00 2001 From: Josh Holtrop Date: Sat, 26 Jun 2021 16:17:24 -0400 Subject: [PATCH] Start on test framework to compile and run generated parser --- .gitignore | 1 + spec/imbecile_spec.rb | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 spec/imbecile_spec.rb diff --git a/.gitignore b/.gitignore index d6c01c4..e5337dc 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /spec/reports/ /tmp/ /.rspec_status +/spec/run/ diff --git a/spec/imbecile_spec.rb b/spec/imbecile_spec.rb new file mode 100644 index 0000000..71b1b6b --- /dev/null +++ b/spec/imbecile_spec.rb @@ -0,0 +1,35 @@ +require "fileutils" + +def write_grammar(grammar) + File.write("spec/run/test.i", grammar) +end + +def build_parser + result = system(*%w[./imbecile.sh spec/run/test.i spec/run/test.d]) + expect(result).to be_truthy +end + +def compile + result = system(*%w[gdc -o spec/run/test spec/run/test.d]) + expect(result).to be_truthy +end + +describe Imbecile do + before(:each) do + FileUtils.rm_rf("spec/run") + FileUtils.mkdir_p("spec/run") + end + + it "generates a D lexer" do + write_grammar <> +EOF + build_parser + compile + end +end