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"); }
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); }
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}"); }