diff --git a/packages/hydrojudge/src/checkers.ts b/packages/hydrojudge/src/checkers.ts index 50734b9b..01b190ab 100644 --- a/packages/hydrojudge/src/checkers.ts +++ b/packages/hydrojudge/src/checkers.ts @@ -188,7 +188,7 @@ const checkers: Record = new Proxy({ }, async testlib(config) { - const { stderr, status } = await run(`${config.execute} /w/in /w/user_out /w/answer`, { + const { stderr, status, code } = await run(`${config.execute} /w/in /w/user_out /w/answer`, { copyIn: { in: config.input, user_out: config.user_stdout, @@ -204,6 +204,13 @@ const checkers: Record = new Proxy({ message: stderr, }; } + if (status === STATUS.STATUS_RUNTIME_ERROR) { + return { + status: STATUS.STATUS_WRONG_ANSWER, + score: 0, + message: `Checker exited with code ${code}`, + }; + } return parse(stderr, config.score); }, }, {