public void TestSources()
		{
			var logger = new Logger("logs");
			AppDomain.CurrentDomain.SetData("DataDirectory", Path.GetFullPath(@"..\App_Data\"));

			var parallelOptions = new ParallelOptions // if server, sandboxerRunner and test run in one machine
			{
				MaxDegreeOfParallelism = Environment.ProcessorCount
			};

			var res = Parallel.ForEach(GetSources(), parallelOptions, async source =>
			{
				var id = String.Format("{0:D10}", source.Id);
				var executionService = new CsSandboxExecutionService();
				SubmissionResult runResult = null;
				try
				{
					runResult = await executionService.Submit(source.Code, id);
				}
				catch (Exception ex)
				{
					logger.Write(source, ex);
				}
				if (runResult != null && !IsCorrectSolution(source, runResult))
					logger.Write(source, runResult);
			});

			while (!res.IsCompleted)
			{
				Thread.Sleep(60*1000);
			}
		}
Exemplo n.º 2
0
		private IEnumerable<TestCaseData> GetSlidesTestCases()
		{
			var executionService = new CsSandboxExecutionService();
			var courseManager = WebCourseManager.Instance;
			Assert.That(courseManager.GetCourses().Count() >= 2);
			return 
				from course in courseManager.GetCourses() 
				from slide in course.Slides.OfType<ExerciseSlide>() 
				select new TestCaseData(slide, executionService).SetName(course.Id + " - " + slide.Info.UnitName + " - " + slide.Title);
		}