hydrojudge: fix checker message (#1185)

This commit is contained in:
panda authored and GitHub committed 2026-06-23 13:56:13 +08:00
1 parent bf8c83894a
commit 98538cafd7
1 file changed
+9 -7
+9 -7
View File
@@ -23,13 +23,13 @@ function judgeCase(c: NormalizedCase) {
addressSpaceLimit: address_space_limit, addressSpaceLimit: address_space_limit,
processLimit: process_limit, processLimit: process_limit,
}, },
`judgeCase[${c.id}]${mp.i ? `[pass=${mp.i}]` : ''}<${ctx.rid}>`, `judgeCase[${c.id}]${mp.i ? `{pass=${mp.i}}` : ''}<${ctx.rid}>`,
); );
const { const {
code, signalled, time, memory, fileIds, code, signalled, time, memory, fileIds,
} = res; } = res;
let { status } = res; let { status } = res;
let message: any = mp.i ? `[Pass ${mp.i}] ` : ''; let message: any = '';
let score = 0; let score = 0;
let nextPass: any; let nextPass: any;
if (status === STATUS.STATUS_ACCEPTED) { if (status === STATUS.STATUS_ACCEPTED) {
@@ -38,7 +38,9 @@ function judgeCase(c: NormalizedCase) {
} else if (memory > c.memory * 1024) { } else if (memory > c.memory * 1024) {
status = STATUS.STATUS_MEMORY_LIMIT_EXCEEDED; status = STATUS.STATUS_MEMORY_LIMIT_EXCEEDED;
} else { } else {
const resChecker = await checkers[ctx.config.checker_type]({ ({
status, score, message, nextPass,
} = await checkers[ctx.config.checker_type]({
execute: ctx.checker.execute, execute: ctx.checker.execute,
copyIn: { copyIn: {
...ctx.checker.copyIn, ...ctx.checker.copyIn,
@@ -58,13 +60,13 @@ function judgeCase(c: NormalizedCase) {
HYDRO_MEMORY_USAGE: Math.floor(memory / 1024).toString(), HYDRO_MEMORY_USAGE: Math.floor(memory / 1024).toString(),
...(mp.i ? { HYDRO_MULTI_PASS: mp.i.toString() } : {}), ...(mp.i ? { HYDRO_MULTI_PASS: mp.i.toString() } : {}),
}, },
}); }));
({ status, score, nextPass } = resChecker); if (mp.i && typeof message === 'string') message = `${message} [Pass ${mp.i}]`;
message += resChecker.message;
} }
} else if (status === STATUS.STATUS_RUNTIME_ERROR && code && ctx.config.detail === 'full') { } else if (status === STATUS.STATUS_RUNTIME_ERROR && code && ctx.config.detail === 'full') {
if (code < 32 && signalled) message = signals[code]; if (code < 32 && signalled) message = signals[code];
else message = { message: `${message}Your program returned {0}.`, params: [code] }; else message = { message: 'Your program returned {0}.', params: [`${code}${mp.i ? ` [Pass ${mp.i}]` : ''}`] };
if (mp.i && typeof message === 'string') message = `${message} [Pass ${mp.i}]`;
} }
if (nextPass) { if (nextPass) {
if (mp.i < ctx.config.multi_pass) { if (mp.i < ctx.config.multi_pass) {