private SubmitRunResult Run(Task task, string input, string runString) { var runService = new RunService(_runnerPath, _workingDirectory); var configuration = new Configuration(runString, _workingDirectory, task.TimeLimitMilliseconds, task.MemoryLimitBytes); configuration.InputFile = input; configuration.OutputFile = "output.txt"; //TODO var runResult = runService.Run(configuration); var result = new SubmitRunResult { Description = runResult.Description, Output = runResult.Output, PeakMemoryBytes = runResult.PeakMemoryBytes, RunStatus = runResult.RunStatus, TextStatus = runResult.TextStatus, TimeConsumedMilliseconds = runResult.TimeConsumedMilliseconds, TimePassedMilliseconds = runResult.TimePassedMilliseconds }; if (runResult.RunStatus == RunStatus.Success) { var checkAnswerResult = CheckAnswer(configuration); result.CheckMessage = checkAnswerResult.Message; result.CheckStatus = checkAnswerResult.CheckStatus; } return(result); }
public void RunCmdTest() { var service = new RunService(_runnerPath, _workingDirectory); var configuration = new Configuration("cmd", _workingDirectory, 1000, 10 * 1024 * 1024); service.Run(configuration); }
public void MemoryLimitTest() { var service = new RunService(_runnerPath, _workingDirectory); var configuration = new Configuration(@"notepad", _workingDirectory, 1000, 10 * 1024); var result = service.Run(configuration); Assert.That(result.RunStatus, Is.EqualTo(RunStatus.MemoryLimitExceeded)); }
public void RuntimeErrorSolutionTest() { var service = new RunService(_runnerPath, _workingDirectory); var fileName = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestSolutions\RuntimeError.exe"); var configuration = new Configuration(fileName, _workingDirectory, 1000, 10 * 1024 * 1024); var result = service.Run(configuration); Assert.That(result.RunStatus, Is.EqualTo(RunStatus.RuntimeError)); }
public void InvocationFailedTest() { var service = new RunService(_runnerPath, _workingDirectory); var fileName = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestSolutions\AB.exe"); var configuration = new Configuration(fileName, _workingDirectory, 1000, 10 * 1024 * 1024) { InputFile = "input.txt", OutputFile = "output.txt" }; var result = service.Run(configuration); Assert.That(result.RunStatus, Is.EqualTo(RunStatus.InvocationFailed)); }
public void UseFilesTest() { using (var input = CreateFile("input.txt")) { input.Write("1 2"); } var service = new RunService(_runnerPath, _workingDirectory); var fileName = Path.Combine(TestContext.CurrentContext.TestDirectory, @"TestSolutions\AB.exe"); var configuration = new Configuration(fileName, _workingDirectory, 1000, 10 * 1024 * 1024) { InputFile = "input.txt", OutputFile = "output.txt" }; var result = service.Run(configuration); Assert.That(result.RunStatus, Is.EqualTo(RunStatus.Success)); }
public void MultiFocusTest() { TraceFile.SetName("MultiFocusTest"); AddAction(KeyModifier.Alt, "S", "Quit", () => RunService.Stop()); var testWindows = GetTestWindows.ToList(); var testWindowsCount = testWindows.Count; int currentPosition = -1; var screens = ScreenOsService.GetScreens(); IScreen screen = screens.Last(); foreach (var testWindow in testWindows) { this.LogLine("Window : {0}", testWindow.ToRepr()); } var trayWindows = GetTrayWindows; trayWindows = trayWindows.Where(w => RectangleService.Intersect(w.RectangleCurrent, screen.Rectangle) != null); foreach (var trayWindowItem in trayWindows) { this.LogLine("Tray Window : {0}", trayWindowItem.ToRepr()); } var trayWindow = trayWindows.First(); void focusNext() { currentPosition++; currentPosition %= testWindowsCount; this.LogLine(" -> Focusing {0}]", testWindows[currentPosition].ToRepr()); WindowOsServiceImpl.FocusWindowSync(testWindows[currentPosition]); } void focusPrev() { currentPosition += testWindowsCount; currentPosition--; currentPosition %= testWindowsCount; this.LogLine(" -> Focusing {0}]", testWindows[currentPosition].ToRepr()); WindowOsServiceImpl.FocusWindowSync(testWindows[currentPosition]); } void moveToNewPosition(int newPosition) { var currentWindow = testWindows[currentPosition]; testWindows.Remove(currentWindow); testWindows.Insert(newPosition, currentWindow); this.LogLine(" -> Moving {0}]", currentWindow.ToRepr()); DispatchOnScreen(testWindows, screen); currentPosition = newPosition; WindowOsServiceImpl.FocusWindowSync(currentWindow); } void moveToNext() { var newPosition = (currentPosition + 1) % testWindowsCount; moveToNewPosition(newPosition); } void moveToPrev() { var newPosition = (currentPosition + testWindowsCount - 1) % testWindowsCount; moveToNewPosition(newPosition); } AddAction(KeyModifier.Alt, "Left", "FocusPrev", focusPrev); AddAction(KeyModifier.Alt, "Right", "FocusNext", focusNext); AddAction(KeyModifier.Alt, "J", "MoveToPrev", moveToPrev); AddAction(KeyModifier.Alt, "K", "MoveToNext", moveToNext); DispatchOnScreen(testWindows, screen); WindowOsServiceImpl.HideSync(trayWindow); focusNext(); RunService.Run(); foreach (var testWindow in testWindows) { WindowOsServiceImpl.UnmanageSync(testWindow); } WindowOsServiceImpl.ShowSync(trayWindow); }