From ba3c6bb235a616851acaf9afe576b80d674a608c Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 12 May 2022 10:28:09 +0800 Subject: [PATCH] judge: fix checkFIle impl --- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/cases.ts | 2 +- packages/ui-default/package.json | 2 +- packages/ui-default/pages/problem_config.page.tsx | 3 +-- packages/utils/lib/common.ts | 4 ++-- packages/utils/package.json | 2 +- 6 files changed, 7 insertions(+), 8 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 1977f1c36..9f9b0ba29 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.19.2", + "version": "2.19.3", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/cases.ts b/packages/hydrojudge/src/cases.ts index ca824114b..c0b256a31 100644 --- a/packages/hydrojudge/src/cases.ts +++ b/packages/hydrojudge/src/cases.ts @@ -64,7 +64,7 @@ export default async function readCases(folder: string, cfg: Record result.count = result.outputs?.length || Math.sum((result.subtasks || []).map((s) => s.cases.length)); if (!result.count) { try { - result.subtasks = readSubtasksFromFiles(await collectFiles(folder), checkFile, cfg); + result.subtasks = readSubtasksFromFiles(await collectFiles(folder), cfg); result.count = Math.sum(result.subtasks.map((i) => i.cases.length)); if (cfg.isSelfSubmission) args.next?.({ message: { message: 'Found {0} testcases.', params: [result.count] } }); } catch (e) { diff --git a/packages/ui-default/package.json b/packages/ui-default/package.json index a3a4d343f..76e89b92e 100644 --- a/packages/ui-default/package.json +++ b/packages/ui-default/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/ui-default", - "version": "4.37.0", + "version": "4.37.1", "author": "undefined ", "license": "AGPL-3.0", "main": "hydro.js", diff --git a/packages/ui-default/pages/problem_config.page.tsx b/packages/ui-default/pages/problem_config.page.tsx index 7b6a40a53..f73dbad86 100644 --- a/packages/ui-default/pages/problem_config.page.tsx +++ b/packages/ui-default/pages/problem_config.page.tsx @@ -171,9 +171,8 @@ const page = new NamedPage('problem_config', () => { } if (state.config.subtasks) return; const testdata = (state.testdata || []).map((i) => i.name); - const checkFile = (file: string) => (testdata.includes(file) ? file : null); unsubscribe(); - const subtasks = readSubtasksFromFiles(testdata, checkFile, state.config); + const subtasks = readSubtasksFromFiles(testdata, state.config); store.dispatch({ type: 'CONFIG_AUTOCASES_UPDATE', subtasks: normalizeSubtasks(subtasks, (i) => i, state.config.time, state.config.memory, true), diff --git a/packages/utils/lib/common.ts b/packages/utils/lib/common.ts index f1eb71d69..9b0b834af 100644 --- a/packages/utils/lib/common.ts +++ b/packages/utils/lib/common.ts @@ -230,7 +230,7 @@ interface ParsedSubtask { if?: number[]; } -export function readSubtasksFromFiles(files: string[], checkFile, config) { +export function readSubtasksFromFiles(files: string[], config) { const subtask: Record = {}; for (const s of config.subtasks || []) if (s.id) subtask[s.id] = s; for (const file of files) { @@ -242,7 +242,7 @@ export function readSubtasksFromFiles(files: string[], checkFile, config) { for (const func of rule.output) { if (config.noOutputFile) c.output = '/dev/null'; else c.output = func(data); - if (c.output === '/dev/null' || checkFile(c.output)) { + if (c.output === '/dev/null' || files.includes(c.output)) { if (!subtask[sid]) { subtask[sid] = { time: config.time, diff --git a/packages/utils/package.json b/packages/utils/package.json index 72e45a397..be1e54208 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@hydrooj/utils", - "version": "1.2.2", + "version": "1.2.3", "description": "hydrooj utils", "main": "package.json", "repository": "https://github.com/hydro-dev/Hydro.git",