public void ErrorContainsCorrectLineNumbers() { // Given RemoveListener(); Configurator configurator = GetConfigurator(); const string configScript = @" int z = 0; foo bar; "; // When ScriptCompilationException exception = null; try { configurator.Configure(configScript); } catch (ScriptCompilationException ex) { exception = ex; } // Then exception.ErrorMessages.Count.ShouldBe(1); exception.ErrorMessages[0].ShouldStartWith("Line 4"); }
public void ErrorAfterLambdaExpansionOnNewLineContainsCorrectLineNumbers() { // Given RemoveListener(); Configurator configurator = GetConfigurator(); const string configScript = @" Pipelines.Add( Content( @doc.Bool(""Key"") == false ) ); foo bar; "; // When ScriptCompilationException exception = null; try { configurator.Configure(configScript); } catch (ScriptCompilationException ex) { exception = ex; } // Then exception.ErrorMessages.Count.ShouldBe(1); exception.ErrorMessages[0].ShouldStartWith("Line 8"); }
public void ErrorAfterLambdaExpansionContainsCorrectLineNumbers() { // Given RemoveListener(); Configurator configurator = GetConfigurator(); string configScript = @" Pipelines.Add( Content(true && @doc.Bool(""Key"") == false ) ); foo bar; "; // When ScriptCompilationException exception = null; try { configurator.Configure(configScript); } catch (ScriptCompilationException ex) { exception = ex; } // Then Assert.AreEqual(1, exception.ErrorMessages.Count); StringAssert.StartsWith("Line 8", exception.ErrorMessages[0]); }
public void ErrorContainsCorrectLineNumbers() { // Given RemoveListener(); Configurator configurator = GetConfigurator(); string configScript = @" int z = 0; foo bar; "; // When ScriptCompilationException exception = null; try { configurator.Configure(configScript); } catch (ScriptCompilationException ex) { exception = ex; } // Then Assert.AreEqual(1, exception.ErrorMessages.Count); StringAssert.StartsWith("Line 4", exception.ErrorMessages[0]); }
public void ErrorAfterLambdaExpansionWithArgumentSeparatorNewLinesContainsCorrectLineNumbers() { // Given RemoveListener(); Configurator configurator = GetConfigurator(); string configScript = @" Pipelines.Add( If( @doc.Get<bool>(""Key""), Content(""Baz"") ) ); foo bar; "; // When ScriptCompilationException exception = null; try { configurator.Configure(configScript); } catch (ScriptCompilationException ex) { exception = ex; } // Then Assert.AreEqual(1, exception.ErrorMessages.Count); StringAssert.StartsWith("Line 9", exception.ErrorMessages[0]); }
public async void CompilationService_TestDuplicateEntryPoints(ScriptErrorType errorType) { EntityMetadata metadata = ScriptTestDataHelper.GetRandomMetadata(); metadata.ScriptText = ScriptTestDataHelper.GetInvalidCsxScript(errorType); var serviceInstance = CompilationServiceFactory.CreateService(metadata, ScriptOptions.Default); ICompilation compilation = await serviceInstance.GetCompilationAsync(); ScriptCompilationException ex = Assert.Throws <ScriptCompilationException>(() => { EntityMethodSignature methodSignature = compilation.GetEntryPointSignature(); }); Assert.NotEmpty(ex.CompilationOutput); }
public async void EntityInvoker_TestInvokeWithCompilationError(ScriptErrorType errorType) { EntityMetadata metadata = ScriptTestDataHelper.GetRandomMetadata(); metadata.ScriptText = ScriptTestDataHelper.GetInvalidCsxScript(errorType); using (EntityInvoker invoker = new EntityInvoker(metadata, ImmutableArray.Create <string>())) { ScriptCompilationException ex = await Assert.ThrowsAsync <ScriptCompilationException>(async() => { await invoker.InitializeEntryPointAsync(); int result = (int)await invoker.Invoke(new object[] { 3 }); Assert.Equal(9, result); }); Assert.NotEmpty(ex.CompilationOutput); } }
private static object CompileScript(IOperationTracker operationTracker, string scriptFilePath, string script) { Log.InfoFormat("Compiling '{0}'...", scriptFilePath); var evaluator = CSScript.Evaluator; evaluator.ReferenceAssembly(typeof(INode).Assembly); var operation = operationTracker.BeginCompileScript(scriptFilePath); try { var tmp = evaluator.LoadCode(script); operation.Success(); return(tmp); } catch (CompilerException e) { var tmp = new ScriptCompilationException(scriptFilePath, e); operation.Failed(e); throw tmp; } }