Пример #1
0
        private static void InitialCodeIsNotSolutionForProjExercise(ExerciseSlide slide)
        {
            var exercise      = slide.Exercise as ProjectExerciseBlock;
            var directoryName = Path.Combine(exercise.SlideFolderPath.FullName, exercise.ExerciseDir);
            var excluded      = (exercise.PathsToExcludeForChecker ?? new string[0]).Concat(new[] { "bin/*", "obj/*" }).ToList();
            var exerciseDir   = new DirectoryInfo(directoryName);
            var bytes         = exerciseDir.ToZip(excluded, new[]
            {
                new FileContent
                {
                    Path = exercise.CsprojFileName,
                    Data = ProjModifier.ModifyCsproj(exerciseDir.GetFile(exercise.CsprojFileName),
                                                     proj => ProjModifier.PrepareForChecking(proj, exercise, excluded))
                }
            });
            var result = SandboxRunner.Run(new ProjRunnerSubmission
            {
                Id              = slide.Id.ToString(),
                ZipFileData     = bytes,
                ProjectFileName = exercise.CsprojFileName,
                Input           = "",
                NeedRun         = true
            });

            Console.WriteLine("Result = " + result);
            Assert.AreEqual(Verdict.Ok, result.Verdict);

            Assert.AreNotEqual("", result.Output);
        }
Пример #2
0
        private void InitialCodeIsNotSolutionForProjExercise(ExerciseSlide slide)
        {
            var exercise      = (ProjectExerciseBlock)slide.Exercise;
            var directoryName = Path.Combine(exercise.SlideFolderPath.FullName, exercise.ExerciseDir);
            var excluded      = (exercise.PathsToExcludeForChecker ?? new string[0]).Concat(new[] { "bin/*", "obj/*" }).ToList();
            var exerciseDir   = new DirectoryInfo(directoryName);
            var bytes         = exerciseDir.ToZip(excluded, new[]
            {
                new FileContent
                {
                    Path = exercise.CsprojFileName,
                    Data = ProjModifier.ModifyCsproj(exerciseDir.GetFile(exercise.CsprojFileName),
                                                     proj => ProjModifier.PrepareForChecking(proj, exercise, excluded))
                }
            });
            var result = SandboxRunner.Run(new ProjRunnerSubmission
            {
                Id              = slide.Id.ToString(),
                ZipFileData     = bytes,
                ProjectFileName = exercise.CsprojFileName,
                Input           = "",
                NeedRun         = true
            });
            var isOk = result.Verdict.IsOneOf(Verdict.Ok, Verdict.MemoryLimit, Verdict.TimeLimit);

            if (!isOk)
            {
                ReportSlideError(slide, "Exercise initial code verdict is not OK. RunResult = " + result);
            }
            else if (result.Verdict == Verdict.Ok && result.Output == "")
            {
                ReportSlideError(slide, "Exercise initial code (available to students) is solution!");
            }
        }