From 5ca9d7689f0c6e8f90b865b977dbe209e43c492d Mon Sep 17 00:00:00 2001 From: undefined Date: Sat, 19 Nov 2022 22:08:03 +0800 Subject: [PATCH] judge: checker: testlib: catch errors --- packages/hydrojudge/src/checkers.ts | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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); }, }, {