From 0ec852110a866e8895e10978f32950658598d046 Mon Sep 17 00:00:00 2001 From: Hisham Muhammad Date: Tue, 17 Oct 2017 15:29:43 -0700 Subject: [PATCH] tests: add test for 'elseif' generation --- spec/coder_spec.lua | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/spec/coder_spec.lua b/spec/coder_spec.lua index 7c4efca..6dcf878 100644 --- a/spec/coder_spec.lua +++ b/spec/coder_spec.lua @@ -305,6 +305,28 @@ describe("Titan code generator ", function() assert.truthy(ok, err) end) + it("generates code for 'elseif'", function() + local code = [[ + function getval(a: integer): integer + if a == 1 then + return 10 + elseif a == 2 then + return 20 + else + return 30 + end + end + ]] + local ast, err = parser.parse(code) + assert.truthy(ast, err) + local ok, err = checker.check(ast, code, "test.titan") + assert.truthy(ok, err) + local ok, err = generate(ast, "titan_test") + assert.truthy(ok, err) + local ok, err = call("titan_test", "assert(titan_test.getval(1) == 10);assert(titan_test.getval(2) == 20);assert(titan_test.getval(3) == 30)") + assert.truthy(ok, err) + end) + pending("handles coercion to integer", function() local code = [[ function fn(): integer