aboutsummaryrefslogtreecommitdiff
path: root/src/test.py
diff options
context:
space:
mode:
authorCharles Cabergs <me@cacharle.xyz>2020-10-01 16:39:47 +0200
committerCharles Cabergs <me@cacharle.xyz>2020-10-01 16:39:47 +0200
commit8a351c6d267c55445de7b7b40b1de3b16305bd02 (patch)
tree17e59ab15e809868acdcd14353521a3f11fffce5 /src/test.py
parent1f18e740539aed751865ecff9d0f3cba44230e54 (diff)
downloadphilosophers_test-8a351c6d267c55445de7b7b40b1de3b16305bd02.tar.gz
philosophers_test-8a351c6d267c55445de7b7b40b1de3b16305bd02.tar.bz2
philosophers_test-8a351c6d267c55445de7b7b40b1de3b16305bd02.zip
Readded some check
Diffstat (limited to 'src/test.py')
-rw-r--r--src/test.py27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/test.py b/src/test.py
index 49059f6..8aafc57 100644
--- a/src/test.py
+++ b/src/test.py
@@ -6,7 +6,7 @@
# By: charles <me@cacharle.xyz> +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2020/09/27 11:36:32 by charles #+# #+# #
-# Updated: 2020/10/01 11:41:21 by cacharle ### ########.fr #
+# Updated: 2020/10/01 16:27:21 by cacharle ### ########.fr #
# #
# ############################################################################ #
@@ -80,22 +80,23 @@ class Test:
process = subprocess.Popen(
self._argv(),
stdout=subprocess.PIPE,
- stderr=subprocess.STDOUT
+ stderr=subprocess.PIPE,
+ bufsize=0
+
)
if self._error_cmd is not None:
self._check_error(process)
return
- out = ""
try:
- out, _ = process.communicate(timeout=1)
- except subprocess.TimeoutExpired as e:
- out = e.stdout
+ out, err = process.communicate(timeout=config.TIMEOUT)
+ # process.terminate()
+ except subprocess.TimeoutExpired:
+ process.kill()
+ out, err = process.communicate()
end_time = current_ms()
- try:
- out = out.decode()
- except UnicodeDecodeError:
- pass # TODO
+ out = out.decode()
+ err = err.decode()
table = philo.Table(
self._philo_num,
@@ -110,13 +111,13 @@ class Test:
def _check_error(self, process):
try:
- out, _ = process.communicate(timeout=config.TIMEOUT_ERROR)
+ _, err = process.communicate(timeout=config.TIMEOUT_ERROR)
except subprocess.TimeoutExpired:
raise error.ShouldFail("no error message")
if process.returncode == 0:
raise error.ShouldFail("non zero status code: {}".format(process.returncode))
- if out.decode().count('\n') != 1:
- raise error.ShouldFail("no error message")
+ if err.decode().count('\n') != 1:
+ raise error.ShouldFail("no error message on stderr")
def _argv(self, basename=False):
exec_path = os.path.basename(Test._exec_path) if basename else Test._exec_path