From a6cdee0b6d80fc8822dec5e3ba3bfb2914ac228c Mon Sep 17 00:00:00 2001 From: undefined Date: Thu, 4 Mar 2021 13:09:14 +0800 Subject: [PATCH] judge: add --show-sandbox-call option --- packages/hydrojudge/package.json | 2 +- packages/hydrojudge/src/checkers.ts | 1 - packages/hydrojudge/src/sandbox.ts | 7 +++++++ packages/hydrooj/src/service/server.ts | 2 +- 4 files changed, 9 insertions(+), 3 deletions(-) diff --git a/packages/hydrojudge/package.json b/packages/hydrojudge/package.json index 993d1abe3..b1350b455 100644 --- a/packages/hydrojudge/package.json +++ b/packages/hydrojudge/package.json @@ -1,7 +1,7 @@ { "name": "@hydrooj/hydrojudge", "bin": "bin/hydrojudge.js", - "version": "2.4.2", + "version": "2.4.3", "main": "package.json", "author": "undefined ", "repository": "https://github.com/hydro-dev/Hydro.git", diff --git a/packages/hydrojudge/src/checkers.ts b/packages/hydrojudge/src/checkers.ts index 9305d3ba0..5174c2ad4 100644 --- a/packages/hydrojudge/src/checkers.ts +++ b/packages/hydrojudge/src/checkers.ts @@ -180,7 +180,6 @@ const checkers: Record = { async testlib(config) { const { stderr, status } = await run('${dir}/checker ${dir}/in ${dir}/user_out ${dir}/answer', { copyIn: { - 'testlib.h': { src: resolve(__dirname, '../files/testlib.h') }, in: { src: config.input }, user_out: { src: config.user_stdout }, answer: { src: config.output }, diff --git a/packages/hydrojudge/src/sandbox.ts b/packages/hydrojudge/src/sandbox.ts index d0c139599..63c670646 100644 --- a/packages/hydrojudge/src/sandbox.ts +++ b/packages/hydrojudge/src/sandbox.ts @@ -1,10 +1,13 @@ import Axios from 'axios'; import fs from 'fs-extra'; +import { argv } from 'yargs'; import * as STATUS from './status'; import { SystemError } from './error'; import { cmd, parseMemoryMB } from './utils'; import { getConfig } from './config'; +import { Logger } from './log'; +const logger = new Logger('sandbox'); const env = ['PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin', 'HOME=/w']; const axios = Axios.create({ baseURL: getConfig('sandbox_host') }); @@ -87,7 +90,9 @@ export async function runMultiple(execute) { body.cmd[0].files[1] = null; body.cmd[1].files[0] = null; body.cmd[1].files[1] = null; + if (argv['show-sandbox-call']) logger.debug(JSON.stringify(body)); res = await axios.post('/run', body); + if (argv['show-sandbox-call']) logger.debug(JSON.stringify(res.data)); } catch (e) { throw new SystemError('Sandbox Error'); } @@ -106,7 +111,9 @@ export async function run(execute, params?) { if (typeof execute === 'object') return await runMultiple(execute); try { const body = { cmd: [proc({ execute, ...params })] }; + if (argv['show-sandbox-call']) logger.debug(JSON.stringify(body)); const res = await axios.post('/run', body); + if (argv['show-sandbox-call']) logger.debug(JSON.stringify(res.data)); [result] = res.data; } catch (e) { // FIXME request body larger than maxBodyLength limit diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index e87c0f9f5..f16c0d75f 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -12,7 +12,7 @@ import Router from 'koa-router'; import proxy from 'koa-proxies'; import cache from 'koa-static-cache'; import sockjs from 'sockjs'; -import { SetOption } from 'cookies'; +import type { SetOption } from 'cookies'; import serialize, { SerializeJSOptions } from 'serialize-javascript'; import { argv } from 'yargs'; import { lrucache } from '../utils';