|
|
@@ -17,6 +17,48 @@ def hello_world():
|
|
|
return 'Hello World!'
|
|
|
|
|
|
|
|
|
+@app.route('/api/judgeTest', methods=['POST'])
|
|
|
+def judge_test():
|
|
|
+ start = time.time()
|
|
|
+ requestData = request.get_data(as_text=True)
|
|
|
+ data = json.loads(requestData)
|
|
|
+ code = data['code']
|
|
|
+ language = data['language']
|
|
|
+ cid = str(data['commitId'])
|
|
|
+ time_limit = int(data['timeLimit'])
|
|
|
+ memory_limit = int(data['memoryLimit'])
|
|
|
+ input_list = data['inputList']
|
|
|
+ output_list = data['outputList']
|
|
|
+
|
|
|
+ app_path = os.getcwd()
|
|
|
+ app.logger.info(app_path)
|
|
|
+
|
|
|
+ dir_name = 'commit-' + cid
|
|
|
+ if os.path.exists(dir_name):
|
|
|
+ shutil.rmtree(dir_name)
|
|
|
+ os.mkdir(dir_name)
|
|
|
+ os.chdir(app_path+'/'+dir_name)
|
|
|
+ app.logger.info(os.getcwd())
|
|
|
+
|
|
|
+ if len(input_list) != len(output_list):
|
|
|
+ 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_by_cid(cid, input_list, output_list, td_total)
|
|
|
+ # src_file = save_code_by_cid(cid, language, code)
|
|
|
+ # rst = judgement.judge_by_cid(src_file, 'testcases-'+cid, td_total, time_limit, memory_limit, language,cid)
|
|
|
+ os.remove(src_file)
|
|
|
+ shutil.rmtree('testcases')
|
|
|
+ os.chdir(app_path)
|
|
|
+ app.logger.info(os.getcwd())
|
|
|
+ app.logger.info(time.time() - start)
|
|
|
+ return rst
|
|
|
+
|
|
|
+
|
|
|
'''
|
|
|
code: string 源代码
|
|
|
language: string 编程语言{cpp,java,c,python}
|