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