public void Run(string testCaseName, string testCourceList) { // Explicit encoding setup, since system console encoding could be not utf8 (Windows OS). // Note, netcoredbg aimed to interact with utf8 encoding usage only for all protocols. Console.OutputEncoding = System.Text.Encoding.UTF8; Console.InputEncoding = System.Text.Encoding.UTF8; string testSuiteRoot = Path.GetFullPath( Path.Combine(Directory.GetCurrentDirectory(), "../../../..") ); var Env = new NetcoreDbgTestCore.Environment(); Env.TestName = testCaseName; string[] testFileArray = testCourceList.Split(";"); foreach (var FileName in testFileArray) { Env.SourceFilesPath += Path.Combine(testSuiteRoot, testCaseName, FileName + ";"); } Env.SourceFilesPath = Env.SourceFilesPath.Remove(Env.SourceFilesPath.Length - 1); Env.TargetAssemblyPath = Path.Combine(testSuiteRoot, testCaseName + "/bin/Debug/netcoreapp3.1/", testCaseName + ".dll"); string fullDebuggerPath = Path.GetFullPath(Path.Combine(testSuiteRoot, DebuggerPath)); if (testCaseName.StartsWith("MI")) { LocalDebugger = new LocalDebuggerProcess(fullDebuggerPath, @" --interpreter=mi"); LocalDebugger.Start(); DebuggerClient = new MILocalDebuggerClient(LocalDebugger.Input, LocalDebugger.Output); } else if (testCaseName.StartsWith("VSCode")) { LocalDebugger = new LocalDebuggerProcess(fullDebuggerPath, @" --interpreter=vscode"); LocalDebugger.Start(); DebuggerClient = new VSCodeLocalDebuggerClient(LocalDebugger.Input, LocalDebugger.Output); } else { throw new System.Exception(); } Xunit.Assert.True(DebuggerClient.DoHandshake(5000)); var Script = new ControlScript(Env.SourceFilesPath, DebuggerClient.Protocol); new ControlPart().Run(Script, DebuggerClient, Env); }
public void Run(string testCaseName, string testCourceList) { string testSuiteRoot = Path.GetFullPath( Path.Combine(Directory.GetCurrentDirectory(), "../../../..") ); var Env = new NetcoreDbgTestCore.Environment(); Env.TestName = testCaseName; string[] testFileArray = testCourceList.Split(";"); foreach (var FileName in testFileArray) { Env.SourceFilesPath += Path.Combine(testSuiteRoot, testCaseName, FileName + ";"); } Env.SourceFilesPath = Env.SourceFilesPath.Remove(Env.SourceFilesPath.Length - 1); Env.TargetAssemblyPath = Path.Combine(testSuiteRoot, testCaseName + "/bin/Debug/netcoreapp3.1/", testCaseName + ".dll"); string fullDebuggerPath = Path.GetFullPath(Path.Combine(testSuiteRoot, DebuggerPath)); if (testCaseName.StartsWith("MI")) { LocalDebugger = new LocalDebuggerProcess(fullDebuggerPath, @" --interpreter=mi"); LocalDebugger.Start(); DebuggerClient = new MILocalDebuggerClient(LocalDebugger.Input, LocalDebugger.Output); } else if (testCaseName.StartsWith("VSCode")) { LocalDebugger = new LocalDebuggerProcess(fullDebuggerPath, @" --interpreter=vscode"); LocalDebugger.Start(); DebuggerClient = new VSCodeLocalDebuggerClient(LocalDebugger.Input, LocalDebugger.Output); } else { throw new System.Exception(); } Xunit.Assert.True(DebuggerClient.DoHandshake(200)); var Script = new DebuggeeScript(Env.SourceFilesPath, DebuggerClient.Protocol); Debuggee.Run(Script, DebuggerClient, Env); }