|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- #!/bin/bash
-
- # 待执行的评测文件
- sourceClassNames="$3"
-
- # 执行命令
- executeCommand="python3"
-
- # 获取测试用例的输入(请勿改动此行语句)
- input=$2; OLD_IFS="$IFS"; IFS=,; ins=($input); IFS="$OLD_IFS"
-
- compileResult=$(echo -n "compile successfully" | base64)
-
- # 执行函数
- execute(){
- # 当前关卡的执行目标文件
- sourceClassName=${sourceClassNames[$1 - 1]}
- # 当前关卡号
- challengeStage=$1
- # 循环获取各测试用例下的实际输出
- res_usage="{\"testSetUsages\":["
- output=''
- i=0
- while [[ i -lt ${#ins[*]} ]]; do
- #echo 0 > /sys/fs/cgroup/memory/memory.max_usage_in_bytes
- startCpuUsage=$(cat /sys/fs/cgroup/cpuacct/cpuacct.usage)
- result=$(echo "${ins[$i]}" | base64 -d | $executeCommand $sourceClassName 2>&1 | tee /data/workspace/user.out | base64)
- #拼接输出结果
- endCpuUsage=$(cat /sys/fs/cgroup/cpuacct/cpuacct.usage)
- let testSetCpuUsage=$endCpuUsage-$startCpuUsage
- maxMemUsage=$(cat /sys/fs/cgroup/memory/memory.max_usage_in_bytes)
- res_usage="$res_usage{\"testSetTime\":\"$testSetCpuUsage\",\"testSetMem\":\"$maxMemUsage\"},"
- output=$output\"$result\",
- let i++
- done
- output="[${output%?}]"
- }
- execute $1
- res_usage="${res_usage::-1}"
- res_usage="$res_usage]}"
- res_usage=$(echo -ne "$res_usage"|base64)
-
- # 返回评测结果
- returnResult(){
- result="{\"compileResult\":\"$compileResult\",\"out\":$output}"
- echo $result
- }
- returnResult
|