Пример #1
0
        public Boolean Run()
        {
            // run lexer on input
            var lexer       = new SGLLexer(new ANTLRStringStream(Input));
            var tokenStream = new CommonTokenStream(lexer);

            // run parser on tokens
            var parser = new SGLParser(tokenStream);
            var ast    = (CommonTree)parser.main().Tree;

            // maybe test the tree
            if (testTree)
            {
                if (!ast.ToStringTree().Trim().Equals(ExpectedTree.Trim()))
                {
                    result += "Test " + name + "failed! Tree comparison failed!";
                    result += "Expected tree: " + ExpectedTree.Trim();
                    result += "Given tree: " + ast.ToStringTree().Trim();
                    return(false);
                }
            }

            var astStream = new CommonTreeNodeStream(ast);

            // run walker on AST
            GlobalMemory.Clear();
            var treewalker = new SGLTreeWalker(astStream, true);

            treewalker.main().Evaluate();
            //String output = treewalker.GetStoryboardCode().ToString();
            if (testOutput)
            {
                String output = GlobalMemory.Instance.StoryboardCode.ToString();
                if (!output.Trim().Equals(ExpectedOutput.Trim()))
                {
                    result += "Test " + name + "failed! Output comparison failed!";
                    result += "Expected output: \r\n" + ExpectedOutput.Trim();
                    result += "Given output: \r\n" + output.Trim();
                    return(false);
                }
            }

            if (testDebug)
            {
                String debug = GlobalMemory.Instance.StoryboardCode.ToString();
                if (!debug.Trim().Equals(ExpectedDebug.Trim()))
                {
                    result += "Test " + name + "failed! Debug comparison failed!";
                    result += "Expected debug: \r\n" + ExpectedDebug.Trim();
                    result += "Given debug: \r\n" + debug.Trim();
                    return(false);
                }
            }
            return(true);
        }
        private void AssertSuccessByExecutionForSingleTest()
        {
            Assert.IsNotNull(BodyCodeBlock);

            methodEmitter.ParseTree(BodyCodeBlock);
            methodEmitter.SetAsEntryPoint();
            Assert.IsTrue(assemblyEmitter.Save());

            PEVerifyRunner.Run(assemblyEmitter.OutputPath);
            var stdout = ManagedCodeRunner.CreateProcessAndRun(assemblyEmitter.OutputPath, new string[0] {
            });

            Assert.AreEqual(ExpectedOutput.Trim(), stdout.Trim());
        }
Пример #3
0
        private bool IsSuccess()
        {
            bool IsSuccessStatus()
            {
                return(Status == CodeRunStatus.Success);
            }

            bool IsSameOutput()
            {
                return(string.Equals(UserOutput.Trim(), ExpectedOutput.Trim(), StringComparison.InvariantCulture));
            }

            return(IsSuccessStatus() && IsSameOutput());
        }