Work on new execution start path

This commit is contained in:
2018-11-26 16:55:10 +01:00
parent 15ce180b8c
commit 74da87d936
20 changed files with 197 additions and 264 deletions

View File

@@ -1,4 +1,5 @@
using System;
using Upsilon;
using Upsilon.Evaluator;
using Xunit;
@@ -13,15 +14,14 @@ namespace UpsilonTests.StandardLibraryTests
[Fact]
public void AssertTest()
{
new Script("assert(true)", BoundScope, StaticScope).Evaluate();
Assert.Throws<Exception>(() => new Script("assert(false)", BoundScope, StaticScope).Evaluate());
Executor.EvaluateScript("assert(true)", Options);
Assert.Throws<Exception>(() => Executor.EvaluateScript("assert(true)", Options));
}
[Fact]
public void Error()
{
var e = Assert.Throws<Exception>(() =>
new Script(@"error(""test_error"")", BoundScope, StaticScope).Evaluate());
var e = Assert.Throws<Exception>(() => Executor.EvaluateScript(@"error(""test_error"")", Options));
Assert.Equal("test_error", e.Message);
}
@@ -36,10 +36,7 @@ for key, val in ipairs(arr) do
end
return value
";
var script = new Script(input, BoundScope, StaticScope);
Assert.Empty(script.Diagnostics.Messages);
var result = script.Evaluate<long>();
Assert.Empty(script.Diagnostics.Messages);
var result = Executor.EvaluateScript<long>(input, Options);
Assert.Equal(184, result);
}
@@ -49,10 +46,7 @@ return value
const string input = @"
return tonumber(""100"")
";
var script = new Script(input, BoundScope, StaticScope);
Assert.Empty(script.Diagnostics.Messages);
var result = script.Evaluate<long>();
Assert.Empty(script.Diagnostics.Messages);
var result = Executor.EvaluateScript<long>(input, Options);
Assert.Equal(100, result);
}
@@ -67,10 +61,7 @@ for key, val in pairs(arr) do
end
return value
";
var script = new Script(input, BoundScope, StaticScope);
Assert.Empty(script.Diagnostics.Messages);
var result = script.Evaluate<long>();
Assert.Empty(script.Diagnostics.Messages);
var result = Executor.EvaluateScript<long>(input, Options);
Assert.Equal(284, result);
}
@@ -80,10 +71,7 @@ return value
const string input = @"
return tostring(100)
";
var script = new Script(input, BoundScope, StaticScope);
Assert.Empty(script.Diagnostics.Messages);
var result = script.Evaluate<string>();
Assert.Empty(script.Diagnostics.Messages);
var result = Executor.EvaluateScript<string>(input, Options);
Assert.Equal("100", result);
}
@@ -93,10 +81,7 @@ return tostring(100)
const string input = @"
return type(100)
";
var script = new Script(input, BoundScope, StaticScope);
Assert.Empty(script.Diagnostics.Messages);
var result = script.Evaluate<string>();
Assert.Empty(script.Diagnostics.Messages);
var result = Executor.EvaluateScript<string>(input, Options);
Assert.Equal("Number", result);
}