From 4ce8439e99c16555f156927337f1c9654f5b388e Mon Sep 17 00:00:00 2001 From: undefined Date: Wed, 23 Mar 2022 18:18:21 +0800 Subject: [PATCH] judge: add user_code to checker context (#325) --- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/judge/default.ts | 2 +- packages/hydrojudge/src/judge/interactive.ts | 5 ++++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index e0a1b91fe..7f518f8a7 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.8", + "version": "2.14.9", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/judge/default.ts b/packages/hydrojudge/src/judge/default.ts index bf33ac86f..21ca1ebfa 100644 --- a/packages/hydrojudge/src/judge/default.ts +++ b/packages/hydrojudge/src/judge/default.ts @@ -154,7 +154,7 @@ export const judge = async (ctx: Context) => { if (['default', 'strict'].includes(ctx.config.checker_type || 'default')) { return { execute: '', copyIn: {}, clean: () => Promise.resolve(null) }; } - const copyIn = {}; + const copyIn = { user_code: { content: ctx.code } }; for (const file of ctx.config.judge_extra_files) { copyIn[parseFilename(file)] = { src: file }; } diff --git a/packages/hydrojudge/src/judge/interactive.ts b/packages/hydrojudge/src/judge/interactive.ts index f34bad513..fbbaa3858 100644 --- a/packages/hydrojudge/src/judge/interactive.ts +++ b/packages/hydrojudge/src/judge/interactive.ts @@ -106,7 +106,10 @@ export const judge = async (ctx: Context) => { return compile(ctx.getLang(ctx.lang), ctx.code, copyIn, ctx.next); })(), (() => { - const copyIn = { 'testlib.h': { src: testlibSrc } }; + const copyIn = { + 'testlib.h': { src: testlibSrc }, + user_code: { content: ctx.code }, + }; for (const file of ctx.config.judge_extra_files) { copyIn[parseFilename(file)] = { src: file }; }