Skip to content

Commit 3a7b126

Browse files
committed
fix eval_output's sandbox index
1 parent a2e99cd commit 3a7b126

6 files changed

Lines changed: 13 additions & 11 deletions

File tree

cms/grading/tasktypes/Batch.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -368,7 +368,7 @@ def _evaluate_step(self, job, file_cacher, output_file_params, outcome, text, st
368368
assert (output_file_params is None) == (outcome is not None)
369369
if output_file_params is not None:
370370
box_success, outcome, text, admin_text = eval_output(
371-
file_cacher, job,
371+
file_cacher, job, 1,
372372
self.CHECKER_CODENAME
373373
if self._uses_checker() else None,
374374
**output_file_params, extra_args=extra_args)

cms/grading/tasktypes/OutputOnly.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ def evaluate(self, job, file_cacher):
125125

126126
# First and only step: eval the user output.
127127
box_success, outcome, text, admin_text = eval_output(
128-
file_cacher, job,
128+
file_cacher, job, 0,
129129
OutputOnly.CHECKER_CODENAME if self._uses_checker() else None,
130130
user_output_digest=job.files[user_output_filename].digest)
131131

cms/grading/tasktypes/TwoSteps.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ def evaluate(self, job: EvaluationJob, file_cacher: FileCacher):
341341
# Otherwise evaluate the output file.
342342
else:
343343
box_success, outcome, text, admin_text = eval_output(
344-
file_cacher, job,
344+
file_cacher, job, 2,
345345
TwoSteps.CHECKER_CODENAME
346346
if self._uses_checker() else None,
347347
user_output_path=second_sandbox.relative_path(

cms/grading/tasktypes/util.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,7 @@ def check_manager_present(job: Job, codename: str) -> bool:
215215
def eval_output(
216216
file_cacher: FileCacher,
217217
job: Job,
218+
box_index: int,
218219
checker_codename: str | None,
219220
user_output_path: str | None = None,
220221
user_output_digest: str | None = None,
@@ -225,6 +226,7 @@ def eval_output(
225226
226227
file_cacher: file cacher to use to get files.
227228
job: the job triggering this checker run.
229+
box_index: which sandbox index to use for the checker.
228230
checker_codename: codename of the checker amongst the manager,
229231
or None to use white diff.
230232
user_output_path: full path of the user output file, None if
@@ -258,7 +260,7 @@ def eval_output(
258260
return False, None, None, None
259261

260262
# Create a brand-new sandbox just for checking.
261-
sandbox = create_sandbox(0, file_cacher, name="check")
263+
sandbox = create_sandbox(box_index, file_cacher, name="check")
262264
job.sandboxes.append(sandbox.get_root_path())
263265

264266
# Put user output in the sandbox.

cmstestsuite/unit_tests/grading/tasktypes/BatchTest.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -360,7 +360,7 @@ def test_stdio_diff_success(self):
360360
multiprocess=True)
361361
# Check eval_output was called correctly.
362362
self.eval_output.assert_called_once_with(
363-
self.file_cacher, job, None,
363+
self.file_cacher, job, 1, None,
364364
user_output_path="/path/0/output.txt", user_output_filename="", extra_args=None)
365365
# Results put in job and sandbox deleted.
366366
self.assertResultsInJob(job)
@@ -480,7 +480,7 @@ def test_fileio_diff_success(self):
480480
multiprocess=True)
481481
# Check eval_output was called correctly.
482482
self.eval_output.assert_called_once_with(
483-
self.file_cacher, job, None, user_output_path="/path/0/myout",
483+
self.file_cacher, job, 1, None, user_output_path="/path/0/myout",
484484
user_output_filename="myout", extra_args=None)
485485
# Results put in job and sandbox deleted.
486486
self.assertResultsInJob(job)
@@ -495,7 +495,7 @@ def test_stdio_checker_success(self):
495495

496496
# We only perform checks for the final eval step (checker).
497497
self.eval_output.assert_called_once_with(
498-
self.file_cacher, job, "checker",
498+
self.file_cacher, job, 1, "checker",
499499
user_output_path="/path/0/output.txt", user_output_filename="", extra_args=None)
500500
# Results put in job and sandbox deleted.
501501
self.assertResultsInJob(job)
@@ -510,7 +510,7 @@ def test_fileio_checker_success(self):
510510

511511
# We only perform checks for the final eval step (checker).
512512
self.eval_output.assert_called_once_with(
513-
self.file_cacher, job, "checker",
513+
self.file_cacher, job, 1, "checker",
514514
user_output_path="/path/0/myout",
515515
user_output_filename="myout", extra_args=None)
516516
# Results put in job and sandbox deleted.

cmstestsuite/unit_tests/grading/tasktypes/OutputOnlyTest.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def test_diff_success(self):
7676
tt.evaluate(job, self.file_cacher)
7777

7878
self.eval_output.assert_called_once_with(
79-
self.file_cacher, job, None, user_output_digest="digest of 023")
79+
self.file_cacher, job, 0, None, user_output_digest="digest of 023")
8080
self.assertResultsInJob(job, True, str(OUTCOME), TEXT, {})
8181

8282
def test_diff_missing_file(self):
@@ -100,7 +100,7 @@ def test_diff_failure(self):
100100
tt.evaluate(job, self.file_cacher)
101101

102102
self.eval_output.assert_called_once_with(
103-
self.file_cacher, job, None, user_output_digest="digest of 023")
103+
self.file_cacher, job, 0, None, user_output_digest="digest of 023")
104104
self.assertResultsInJob(job, False, None, None, None)
105105

106106
def test_comparator_success(self):
@@ -112,7 +112,7 @@ def test_comparator_success(self):
112112
tt.evaluate(job, self.file_cacher)
113113

114114
self.eval_output.assert_called_once_with(
115-
self.file_cacher, job, "checker",
115+
self.file_cacher, job, 0, "checker",
116116
user_output_digest="digest of 023")
117117
self.assertResultsInJob(job, True, str(OUTCOME), TEXT, {})
118118

0 commit comments

Comments
 (0)