diff --git a/packages/hydrojudge/src/judge/default.ts b/packages/hydrojudge/src/judge/default.ts index f411d17df..c4f89a3a9 100644 --- a/packages/hydrojudge/src/judge/default.ts +++ b/packages/hydrojudge/src/judge/default.ts @@ -28,6 +28,7 @@ function judgeCase(c: NormalizedCase) { let { status } = res; let message: any = ''; let score = 0; + const detail = ctx.config.detail ?? true; if (status === STATUS.STATUS_ACCEPTED) { if (time > c.time) { status = STATUS.STATUS_TIME_LIMIT_EXCEEDED; @@ -42,11 +43,11 @@ function judgeCase(c: NormalizedCase) { user_stdout: fileIds.stdout ? { fileId: fileIds.stdout } : { content: '' }, user_stderr: fileIds.stderr ? { fileId: fileIds.stderr } : { content: '' }, score: c.score, - detail: ctx.config.detail ?? true, + detail, env: { ...ctx.env, HYDRO_TESTCASE: c.id.toString() }, })); } - } else if (status === STATUS.STATUS_RUNTIME_ERROR && code) { + } else if (status === STATUS.STATUS_RUNTIME_ERROR && code && detail) { if (code < 32 && signalled) message = signals[code]; else message = { message: 'Your program returned {0}.', params: [code] }; } diff --git a/packages/hydrojudge/src/judge/interactive.ts b/packages/hydrojudge/src/judge/interactive.ts index d60413847..5ec37b58e 100644 --- a/packages/hydrojudge/src/judge/interactive.ts +++ b/packages/hydrojudge/src/judge/interactive.ts @@ -37,11 +37,12 @@ function judgeCase(c: NormalizedCase) { let status: number; let score = 0; let message: any = ''; + const detail = ctx.config.detail ?? true; if (time > c.time) { status = STATUS.STATUS_TIME_LIMIT_EXCEEDED; } else if (memory > c.memory * 1024) { status = STATUS.STATUS_MEMORY_LIMIT_EXCEEDED; - } else if ((code && code !== 13/* Broken Pipe */) || (code === 13 && !resInteractor.code)) { + } else if (detail && ((code && code !== 13/* Broken Pipe */) || (code === 13 && !resInteractor.code))) { status = STATUS.STATUS_RUNTIME_ERROR; if (code < 32 && signalled) message = signals[code]; else message = { message: 'Your program returned {0}.', params: [code] };