From 7faf8ca30caa22f8bd97b3197a4ff9f71c99002b Mon Sep 17 00:00:00 2001 From: undefined Date: Fri, 11 Mar 2022 13:40:51 +0800 Subject: [PATCH] judge: set spj return status whitelist --- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/testlib.ts | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index e3b260986..a18252e43 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.14.5", + "version": "2.14.6", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/testlib.ts b/packages/hydrojudge/src/testlib.ts index 6e6f6f59d..fb0b560a6 100644 --- a/packages/hydrojudge/src/testlib.ts +++ b/packages/hydrojudge/src/testlib.ts @@ -35,12 +35,21 @@ export function parse(output: string, fullscore: number) { } while (operation.test(message)) { const [, op, val, rest] = message.match(operation); + message = rest; if (op === 'status') { - status = +val; - message = rest; + const s = +val; + if ([ + STATUS.STATUS_ACCEPTED, + STATUS.STATUS_WRONG_ANSWER, + STATUS.STATUS_COMPILE_ERROR, + STATUS.STATUS_RUNTIME_ERROR, + STATUS.STATUS_MEMORY_LIMIT_EXCEEDED, + STATUS.STATUS_TIME_LIMIT_EXCEEDED, + STATUS.STATUS_OUTPUT_LIMIT_EXCEEDED, + STATUS.STATUS_FORMAT_ERROR, + ].includes(s)) status = +val; } else if (op === 'score') { score = +val; - message = rest; } } return { status, score, message: builder(message) };