From 0884b88480a1776ec8080f41bf1163d2bb775670 Mon Sep 17 00:00:00 2001 From: eeff <33566201+eeff@users.noreply.github.com> Date: Mon, 23 Oct 2023 15:41:06 +0800 Subject: [PATCH] test: ft api support restart neuron process --- tests/ft/neuron/common.py | 7 ++++--- tests/ft/neuron/process.py | 20 ++++++++++++++++++++ 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/tests/ft/neuron/common.py b/tests/ft/neuron/common.py index 7caf8c3b..d208cd08 100644 --- a/tests/ft/neuron/common.py +++ b/tests/ft/neuron/common.py @@ -39,9 +39,10 @@ def compare_float(v1, v2, delta=0.001): @pytest.fixture(autouse=True, scope='class') def class_setup_and_teardown(): process.remove_persistence() - p = process.start_neuron() - yield - process.stop_neuron(p) + p = process.NeuronProcess() + p.start() + yield p + p.stop() @pytest.fixture(autouse=True, scope='function') diff --git a/tests/ft/neuron/process.py b/tests/ft/neuron/process.py index 1db3d81b..79650a42 100644 --- a/tests/ft/neuron/process.py +++ b/tests/ft/neuron/process.py @@ -9,6 +9,21 @@ def remove_persistence(dir='build/'): os.system("mkdir -p " + dir + "/persistence") +class NeuronProcess: + def __init__(self, dir='build/'): + self.dir = dir + + def start(self): + self.p = start_neuron(self.dir) + + def restart(self): + self.p = restart_neuron(self.p, self.dir) + + def stop(self): + stop_neuron(self.p) + self.p = None + + def start_neuron(dir='build/'): process = subprocess.Popen( ['./neuron'], stderr=subprocess.PIPE, cwd=dir) @@ -17,6 +32,11 @@ def start_neuron(dir='build/'): return process +def restart_neuron(process, dir='build/'): + stop_neuron(process) + return start_neuron(dir) + + def stop_neuron(process): result = process.terminate() stderr = process.stderr.read().decode()