|
|
@ -81,6 +81,7 @@ class StudentWorkController < ApplicationController
|
|
|
|
#根据传入的tIndex确定是第几次测试
|
|
|
|
#根据传入的tIndex确定是第几次测试
|
|
|
|
#之后如果觉得很卡 可以改成将结果传回JS再以参数形式传回来
|
|
|
|
#之后如果觉得很卡 可以改成将结果传回JS再以参数形式传回来
|
|
|
|
def program_test_ex
|
|
|
|
def program_test_ex
|
|
|
|
|
|
|
|
|
|
|
|
tStarttime = Time.now
|
|
|
|
tStarttime = Time.now
|
|
|
|
|
|
|
|
|
|
|
|
is_test = params[:is_test] == 'true'
|
|
|
|
is_test = params[:is_test] == 'true'
|
|
|
@ -106,11 +107,19 @@ class StudentWorkController < ApplicationController
|
|
|
|
tEndtime = Time.now
|
|
|
|
tEndtime = Time.now
|
|
|
|
tUsedtime = (tEndtime.to_i-tStarttime.to_i)*1000+(tEndtime.usec - tStarttime.usec)/1000
|
|
|
|
tUsedtime = (tEndtime.to_i-tStarttime.to_i)*1000+(tEndtime.usec - tStarttime.usec)/1000
|
|
|
|
logger.debug "program_test_ex user wait time = #{tUsedtime} 毫秒"
|
|
|
|
logger.debug "program_test_ex user wait time = #{tUsedtime} 毫秒"
|
|
|
|
|
|
|
|
#status 0:答案正确 -5program_test_ex 函数出错 -4judge代码出错 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
|
|
|
|
#status 0:答案正确 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
|
|
|
|
resultObj[:status] = -3
|
|
|
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
|
|
|
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>-3,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
|
|
|
|
|
|
|
|
rescue
|
|
|
|
|
|
|
|
#-4 judge代码 出错
|
|
|
|
|
|
|
|
logger.debug "program_test_error 1"
|
|
|
|
|
|
|
|
resultObj[:status] = -4
|
|
|
|
|
|
|
|
tmpstatus = -4
|
|
|
|
|
|
|
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
begin
|
|
|
|
|
|
|
|
if resultObj[:status] != -3 && resultObj[:status] != -4
|
|
|
|
if result["status"].to_i != -2
|
|
|
|
if result["status"].to_i != -2
|
|
|
|
#result["results"].first['output'] = result["results"].first['output'].gsub(" ","□")
|
|
|
|
#result["results"].first['output'] = result["results"].first['output'].gsub(" ","□")
|
|
|
|
#result["results"].first['result'] = result["results"].first['result'].gsub(" ","□")
|
|
|
|
#result["results"].first['result'] = result["results"].first['result'].gsub(" ","□")
|
|
|
@ -123,9 +132,9 @@ class StudentWorkController < ApplicationController
|
|
|
|
#-1 默认值 0全部正确并结束 2 超时 -2 编译错误
|
|
|
|
#-1 默认值 0全部正确并结束 2 超时 -2 编译错误
|
|
|
|
resultObj[:status] = -1
|
|
|
|
resultObj[:status] = -1
|
|
|
|
resultObj[:results] = result["results"].first #本次测试结果
|
|
|
|
resultObj[:results] = result["results"].first #本次测试结果
|
|
|
|
if result["status"].to_i == -2 #编译错误
|
|
|
|
# if result["status"].to_i == -2 #编译错误
|
|
|
|
result["error_msg"] = result["error_msg"][0..2047]
|
|
|
|
result["error_msg"] = result["error_msg"][0..2047]
|
|
|
|
end
|
|
|
|
# end
|
|
|
|
resultObj[:error_msg] = result["error_msg"] #编译错误时的信息
|
|
|
|
resultObj[:error_msg] = result["error_msg"] #编译错误时的信息
|
|
|
|
|
|
|
|
|
|
|
|
#该状态用于存入CodeTests
|
|
|
|
#该状态用于存入CodeTests
|
|
|
@ -204,13 +213,20 @@ class StudentWorkController < ApplicationController
|
|
|
|
end
|
|
|
|
end
|
|
|
|
#0:答案正确 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
|
|
|
|
#0:答案正确 -3http超时 -2:编译错误 -1:答案错误 2:程序运行超时
|
|
|
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>time_used,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
|
|
|
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>time_used,:wait_time=>tUsedtime,:student_work_id=>student_work.id)
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
end
|
|
|
|
|
|
|
|
rescue
|
|
|
|
|
|
|
|
#-5 program_test_ex 函数出错
|
|
|
|
|
|
|
|
logger.debug "program_test_error 2"
|
|
|
|
|
|
|
|
resultObj[:status] = -5
|
|
|
|
|
|
|
|
tmpstatus = -5
|
|
|
|
|
|
|
|
CodeTests.create(:homework_id=>@homework.id,:language=>@homework.homework_detail_programing.language,:status=>tmpstatus,:time_used=>0,:wait_time=>0,:student_work_id=>student_work.id)
|
|
|
|
|
|
|
|
end
|
|
|
|
#渲染返回结果
|
|
|
|
#渲染返回结果
|
|
|
|
render :json => resultObj
|
|
|
|
render :json => resultObj
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#找出该作业的所有提交作业
|
|
|
|
#找出该作业的所有提交作业
|
|
|
|
def find_all_student_work_by_homeid()
|
|
|
|
def find_all_student_work_by_homeid()
|
|
|
|