diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 3802092fe..291a996c7 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.12.7", + "version": "2.12.8", "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 d7e9cd473..1f7540717 100644 --- a/packages/hydrojudge/src/cases.ts +++ b/packages/hydrojudge/src/cases.ts @@ -113,20 +113,21 @@ async function read1(folder: string, files: string[], checkFile, cfg, rst) { for (const REG of RE1) { if (REG.reg.test(file)) { const data = REG.reg.exec(file); + const sid = REG.subtask(data); const c = { input: file, output: '', id: REG.id(data) }; for (const func of REG.output) { if (cfg.noOutputFile) c.output = '/dev/null'; else c.output = func(data); if (c.output === '/dev/null' || fs.existsSync(path.resolve(folder, c.output))) { - if (!subtask[REG.subtask(data)]) { - subtask[REG.subtask(data)] = [{ + if (!subtask[sid]) { + subtask[sid] = { time: parseTimeMS(cfg.time || '1s'), memory: parseMemoryMB(cfg.memory || '256m'), type: 'min', cases: [c], - }]; - } else if (!subtask[REG.subtask(data)].cases) subtask[REG.subtask(data)].cases = [c]; - else subtask[REG.subtask(data)].cases.push(c); + }; + } else if (!subtask[sid].cases) subtask[sid].cases = [c]; + else subtask[sid].cases.push(c); break; } }