diff --git a/spec/imbecile_spec.rb b/spec/imbecile_spec.rb index c34fc9d..645daac 100644 --- a/spec/imbecile_spec.rb +++ b/spec/imbecile_spec.rb @@ -1,20 +1,25 @@ require "fileutils" -def write_grammar(grammar) - File.write("spec/run/testparser.i", grammar) -end - -def build_parser - result = system(*%w[./imbecile.sh spec/run/testparser.i spec/run/testparser.d]) - expect(result).to be_truthy -end - -def compile(test_file) - result = system(*%w[gdc -o spec/run/testparser spec/run/testparser.d], test_file) - expect(result).to be_truthy -end - describe Imbecile do + def write_grammar(grammar) + File.write("spec/run/testparser.i", grammar) + end + + def build_parser + result = system(*%w[./imbecile.sh spec/run/testparser.i spec/run/testparser.d]) + expect(result).to be_truthy + end + + def compile(test_file) + result = system(*%w[gdc -funittest -o spec/run/testparser spec/run/testparser.d], test_file) + expect(result).to be_truthy + end + + def run + result = system("spec/run/testparser") + expect(result).to be_truthy + end + before(:each) do FileUtils.rm_rf("spec/run") FileUtils.mkdir_p("spec/run") @@ -31,5 +36,6 @@ rule Start [] << EOF build_parser compile("spec/test_d_lexer.d") + run end end diff --git a/spec/test_d_lexer.d b/spec/test_d_lexer.d index 905869d..a2bb5ee 100644 --- a/spec/test_d_lexer.d +++ b/spec/test_d_lexer.d @@ -2,3 +2,8 @@ int main() { return 0; } + +unittest +{ + assert(true); +}