Ejemplo n.º 1
0
        static void Main(string[] args)
        {
            SparkConf    sparkConf    = new SparkConf();
            SparkContext sc           = new SparkContext(sparkConf);
            SqlContext   sqlContext   = new SqlContext(sc);
            var          scriptEngine = new RoslynScriptEngine(sc, sqlContext);
            var          repl         = new Repl(scriptEngine, new ConsoleIoHandler());

            repl.Init();
            repl.Run();
            scriptEngine.Close();
        }
Ejemplo n.º 2
0
 static void Main(string[] args)
 {
     SparkConf sparkConf = new SparkConf();
     SparkContext sc = new SparkContext(sparkConf);
     SqlContext sqlContext = new SqlContext(sc);
     var scriptEngine = new RoslynScriptEngine(sc, sqlContext);
     var repl = new Repl(scriptEngine, new ConsoleIoHandler());
     repl.Init();
     repl.Run();
     scriptEngine.Close();
 }
Ejemplo n.º 3
0
        public void Test()
        {
            var sc = new SparkContext("", "");
            var sqlContext = new SqlContext(sc);

            var scriptEngine = new RoslynScriptEngine(sc, sqlContext);
            var ioHandler = new TestIoHandler();

            var repl = new Repl(scriptEngine, ioHandler);

            repl.Init();
            var thread = new Thread(() => { repl.Run();}) { IsBackground = false };
            thread.Start();

            Thread.Sleep(1000);

            Assert.IsTrue(ioHandler.output.Any());
            Assert.AreEqual("> ", ioHandler.output.Last());

            ioHandler.output.Clear();

            // empty input
            ioHandler.input.Add(" ");

            // incomplete code block
            ioHandler.input.Add("if (true) {");
            ioHandler.input.Add("return 1024; }");

            // execution exception
            ioHandler.input.Add("new Exception(\"Test\")");

            // compile exception
            ioHandler.input.Add("var a=;");

            // load non-exist library
            ioHandler.input.Add(":load \"non-exist.dll\"");

            // load library
            var sampleDLL = scriptEngine.CompilationDumpPath(0);
            ioHandler.input.Add(":load \"" + sampleDLL + "\"");

            // invalid :load directive
            ioHandler.input.Add(":load x");

            // invalid directive
            ioHandler.input.Add(":invalid directive");

            // :help directive
            ioHandler.input.Add(":help");

            // quit REPL
            ioHandler.input.Add(":quit");
            thread.Join();
            scriptEngine.Close();

            Console.WriteLine(string.Join("\r\n", ioHandler.output));
            var seq = 0;
            Assert.AreEqual("> ", ioHandler.output[seq++]);
            Assert.AreEqual(". ", ioHandler.output[seq++]);
            Assert.AreEqual("1024", ioHandler.output[seq++]);
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // execution exception
            Assert.IsTrue(ioHandler.output[seq++].Contains("System.Exception: Test"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // compile exception
            Assert.IsTrue(ioHandler.output[seq++].Contains("Exception"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // load non-exist library
            Assert.IsTrue(ioHandler.output[seq++].Contains("Failed to load assebmly"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // load library
            Assert.IsTrue(ioHandler.output[seq++].Contains("Loaded assebmly"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // invalid :load directive
            Assert.IsTrue(ioHandler.output[seq++].Contains("Invalid :load directive"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // invalid directive
            Assert.IsTrue(ioHandler.output[seq++].Contains("Invalid directive"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);

            // help directive
            Assert.IsTrue(ioHandler.output[seq++].Contains("Commands"));
            Assert.AreEqual("> ", ioHandler.output[seq++]);
        }