|
|
@@ -33,6 +33,7 @@ def judge():
|
|
|
data = json.loads(requestData)
|
|
|
code = data['code']
|
|
|
language = data['language']
|
|
|
+ cid = data['commitId']
|
|
|
time_limit = int(data['timeLimit'])
|
|
|
memory_limit = int(data['memoryLimit'])
|
|
|
input_list = data['inputList']
|
|
|
@@ -41,16 +42,50 @@ def judge():
|
|
|
return {"result_list": [{'result': "System Error"}],
|
|
|
'message': 'test data incompleted'}
|
|
|
td_total = len(input_list)
|
|
|
- save_test_cases(input_list, output_list, td_total)
|
|
|
- src_file = save_code(language, code)
|
|
|
- rst = judgement.judge(src_file, 'testcases', td_total, time_limit, memory_limit, language)
|
|
|
+ # save_test_cases(input_list, output_list, td_total)
|
|
|
+ # src_file = save_code(language, code)
|
|
|
+ save_test_cases_by_cid(cid, input_list, output_list, td_total)
|
|
|
+ src_file = save_code_by_cid(cid, language, code)
|
|
|
+ rst = judgement.judge(src_file, 'testcases-'+cid, td_total, time_limit, memory_limit, language)
|
|
|
os.remove(src_file)
|
|
|
shutil.rmtree('testcases')
|
|
|
- app.logger.info(time.time()-start)
|
|
|
+ app.logger.info(time.time() - start)
|
|
|
return rst
|
|
|
|
|
|
|
|
|
-def save_test_cases(input_list,output_list, td_total):
|
|
|
+def save_test_cases_by_cid(cid, input_list, output_list, td_total):
|
|
|
+ dir_name = 'testcases-' + cid
|
|
|
+ if os.path.exists(dir_name):
|
|
|
+ shutil.rmtree(dir_name)
|
|
|
+ os.mkdir(dir_name)
|
|
|
+ for i in range(0, td_total):
|
|
|
+ in_file = open(dir_name + '/' + str(i) + '.in', 'w')
|
|
|
+ in_file.write(input_list[i])
|
|
|
+ out_file = open(dir_name + '/' + str(i) + '.out', 'w')
|
|
|
+ out_file.write(output_list[i])
|
|
|
+
|
|
|
+
|
|
|
+def save_code_by_cid(cid, language, code):
|
|
|
+ dir_name = 'main-' + cid
|
|
|
+ if os.path.exists(dir_name):
|
|
|
+ shutil.rmtree(dir_name)
|
|
|
+ os.mkdir(dir_name)
|
|
|
+
|
|
|
+ src_file = None
|
|
|
+ if language == 'c':
|
|
|
+ src_file = open(dir_name+'/'+'main.c', 'w')
|
|
|
+ elif language == 'cpp':
|
|
|
+ src_file = open(dir_name+'/'+'main.cpp', 'w')
|
|
|
+ elif language == 'java':
|
|
|
+ src_file = open(dir_name+'/'+'Main.java', 'w')
|
|
|
+ elif language == 'python':
|
|
|
+ src_file = open(dir_name+'/'+'main.py', 'w')
|
|
|
+ app.logger.info(src_file.name)
|
|
|
+ src_file.write(code)
|
|
|
+ return src_file.name
|
|
|
+
|
|
|
+
|
|
|
+def save_test_cases(input_list, output_list, td_total):
|
|
|
if os.path.exists('testcases'):
|
|
|
shutil.rmtree('testcases')
|
|
|
os.mkdir('testcases')
|