Exemplo n.º 1
0
        static void Exec(string code, string ret)
        {
            KarinEngine eng = new KarinEngine();

            eng.SetFunction(new KarinFunction("console", args => {
                Console.WriteLine(args[0].ToString());
                return(null);
            }));

            Stopwatch sw = new Stopwatch();

            sw.Start();

            string ans;
            bool   ok;

            try {
                ans = "" + eng.Execute(code);
                ok  = ans == ret;
            }catch (Exception ex) {
                ans = ex.Message;
                if (ex is KarinException)
                {
                    ans += $"{Environment.NewLine}{(ex as KarinException).ScriptStackTrace}";
                }
                ok = false;
            }

            sw.Stop();
            Console.WriteLine($"{(ok?"OK":"NG")} : {ans} : {sw.ElapsedMilliseconds}ms");
        }
Exemplo n.º 2
0
        private async Task <string> RunAsync(string script)
        {
            var t = new Task <string>(() => {
                try {
                    var ret = karin.Execute(script);
                    return($"{ret}");
                } catch (KarinException ex) {
                    return($"{ex.Message}{Environment.NewLine}{ex.ScriptStackTrace}");
                } catch (Exception ex) {
                    return(ex.ToString());
                }
            });

            t.Start();
            return(await t);
        }
Exemplo n.º 3
0
        static void ExecNg(string code)
        {
            KarinEngine eng = new KarinEngine();

            string ans = "";
            bool   ok  = false;

            try {
                eng.Execute(code);
            } catch (KarinException ex) {
                ans = ex.Message;
                ok  = true;
            } catch (Exception ex) {
                ans = ex.Message;
            }

            Console.WriteLine($"{(ok ? "OK" : "NG")} : {ans}");
        }