summaryrefslogtreecommitdiff
path: root/yaksh
diff options
context:
space:
mode:
authormahesh2017-04-27 12:13:22 +0530
committermahesh2017-04-27 12:13:22 +0530
commitc431c255738b741698adffcbf894930ae298b8c0 (patch)
treeedc60add3a49225af039c3b7c443ac08df9b4998 /yaksh
parent2c43a6b0555df1dea207bec88ef1f930aa66b0b9 (diff)
downloadonline_test-c431c255738b741698adffcbf894930ae298b8c0.tar.gz
online_test-c431c255738b741698adffcbf894930ae298b8c0.tar.bz2
online_test-c431c255738b741698adffcbf894930ae298b8c0.zip
added tests to check killing of stray processes in hook evaluator
Diffstat (limited to 'yaksh')
-rw-r--r--yaksh/evaluator_tests/test_bash_evaluation.py5
-rw-r--r--yaksh/evaluator_tests/test_c_cpp_evaluation.py5
-rw-r--r--yaksh/evaluator_tests/test_java_evaluation.py5
-rw-r--r--yaksh/hook_evaluator.py5
4 files changed, 17 insertions, 3 deletions
diff --git a/yaksh/evaluator_tests/test_bash_evaluation.py b/yaksh/evaluator_tests/test_bash_evaluation.py
index ee6949d..352e95f 100644
--- a/yaksh/evaluator_tests/test_bash_evaluation.py
+++ b/yaksh/evaluator_tests/test_bash_evaluation.py
@@ -536,6 +536,11 @@ class BashHookEvaluationTestCases(EvaluatorBaseTest):
# Then
self.assertFalse(result.get('success'))
self.assert_correct_output(self.timeout_msg, result.get('error'))
+ parent_proc = Process(os.getpid()).children()
+ if parent_proc:
+ self.assertFalse(any(Process(parent_proc[0].pid)\
+ .children(recursive=True)))
+
if __name__ == '__main__':
diff --git a/yaksh/evaluator_tests/test_c_cpp_evaluation.py b/yaksh/evaluator_tests/test_c_cpp_evaluation.py
index d3147f5..79227f5 100644
--- a/yaksh/evaluator_tests/test_c_cpp_evaluation.py
+++ b/yaksh/evaluator_tests/test_c_cpp_evaluation.py
@@ -977,7 +977,10 @@ class CppHookEvaluationTestCases(EvaluatorBaseTest):
# Then
self.assertFalse(result.get('success'))
self.assert_correct_output(self.timeout_msg, result.get('error'))
-
+ parent_proc = Process(os.getpid()).children()
+ if parent_proc:
+ self.assertFalse(any(Process(parent_proc[0].pid)\
+ .children(recursive=True)))
if __name__ == '__main__':
unittest.main()
diff --git a/yaksh/evaluator_tests/test_java_evaluation.py b/yaksh/evaluator_tests/test_java_evaluation.py
index 2c49a50..39c5ee9 100644
--- a/yaksh/evaluator_tests/test_java_evaluation.py
+++ b/yaksh/evaluator_tests/test_java_evaluation.py
@@ -844,8 +844,13 @@ class JavaHookEvaluationTestCases(EvaluatorBaseTest):
result = grader.evaluate(kwargs)
# Then
+
self.assertFalse(result.get('success'))
self.assert_correct_output(self.timeout_msg, result.get('error'))
+ parent_proc = Process(os.getpid()).children()
+ if parent_proc:
+ self.assertFalse(any(Process(parent_proc[0].pid)\
+ .children(recursive=True)))
if __name__ == '__main__':
diff --git a/yaksh/hook_evaluator.py b/yaksh/hook_evaluator.py
index b86640c..f5364d6 100644
--- a/yaksh/hook_evaluator.py
+++ b/yaksh/hook_evaluator.py
@@ -2,13 +2,14 @@
import sys
import traceback
import os
+import signal
+import psutil
# Local imports
from .file_utils import copy_files, delete_files
from .base_evaluator import BaseEvaluator
from .grader import TimeoutException
-import signal
-import psutil
+
class HookEvaluator(BaseEvaluator):
def __init__(self, metadata, test_case_data):