add language: Node

This commit is contained in:
MeiK 2020-11-05 19:12:21 +08:00
parent 1b1114a5d0
commit a162ed4e43
3 changed files with 14 additions and 7 deletions

View File

@ -1,6 +1,8 @@
{
"requires": true,
"name": "js",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"esprima": {
"version": "4.0.1",

View File

@ -16,12 +16,14 @@ pub fn gen_rules() -> Vec<SyscallRuleSet> {
allow_syscall(libc::SYS_close),
allow_syscall(libc::SYS_connect),
allow_syscall(libc::SYS_copy_file_range),
allow_syscall(libc::SYS_epoll_create1),
allow_syscall(libc::SYS_epoll_ctl),
allow_syscall(libc::SYS_epoll_pwait),
allow_syscall(libc::SYS_dup),
allow_syscall(libc::SYS_dup2),
allow_syscall(libc::SYS_dup3),
allow_syscall(libc::SYS_epoll_create1),
allow_syscall(libc::SYS_epoll_ctl),
allow_syscall(libc::SYS_epoll_pwait),
allow_syscall(libc::SYS_eventfd2),
allow_syscall(libc::SYS_epoll_wait),
allow_syscall(libc::SYS_execve),
allow_syscall(libc::SYS_exit),
allow_syscall(libc::SYS_exit_group),

View File

@ -41,7 +41,7 @@ pub async fn judger(
Some(Language::Cpp) => "./a.out",
Some(Language::Python) => "/usr/bin/python3.8 main.py",
Some(Language::Rust) => "./a.out",
Some(Language::Node) => "node main.js",
Some(Language::Node) => "/usr/bin/node main.js",
Some(Language::TypeScript) => "node main.js",
Some(Language::Go) => "./a.out",
Some(Language::Java) => "/usr/bin/java -cp . Main",
@ -60,7 +60,10 @@ pub async fn judger(
let mut runner = process.runner.clone();
// 为 Java 虚拟机取消内存限制和 trace万恶的 JVM
// 看起来虚拟机语言都有同样的问题
if request.language == Language::Java as i32 || request.language == Language::Go as i32 {
if request.language == Language::Java as i32
|| request.language == Language::Go as i32
|| request.language == Language::Node as i32
{
runner.memory_limit = -1;
runner.traceme = false;
}
@ -144,7 +147,7 @@ pub async fn compile(
&v,
// 编译的资源限制为固定的
10000,
256 * 1024,
1024 * 1024,
)?;
let mut runner = process.runner.clone();