24,27c24,27
< def pid_by_name(self, name):
< output = subprocess.check_output(['ps', 'ax']).decode()
< m = re.search(r'\s*(\d+).*' + name, output)
< return m if m is None else m.group(1)
---
> def pid_by_name(self, name, ppid):
> output = subprocess.check_output(['ps', 'ax', '-O', 'ppid']).decode()
> m = re.search(r'\s*(\d+)\s*' + str(ppid) + r'.*' + name, output)
> return None if m is None else m.group(1)
32c32
< def wait_for_process(self, process):
---
> def wait_for_process(self, process, unit_pid):
34c34
< found = self.pid_by_name(process)
---
> found = self.pid_by_name(process, unit_pid)
43c43,46
< def smoke_test(self):
---
> def find_proc(self, name, ppid, ps_output):
> return re.findall(str(ppid) + r'.*' + name, ps_output)
>
> def smoke_test(self, unit_pid):
53,56c56,59
< output = subprocess.check_output(['ps', 'ax']).decode()
< assert len(re.findall(self.PATTERN_ROUTER, output)) == 1
< assert len(re.findall(self.PATTERN_CONTROLLER, output)) == 1
< assert len(re.findall(self.app_name, output)) == 1
---
> out = subprocess.check_output(['ps', 'ax', '-O', 'ppid']).decode()
> assert len(self.find_proc(self.PATTERN_ROUTER, unit_pid, out)) == 1
> assert len(self.find_proc(self.PATTERN_CONTROLLER, unit_pid, out)) == 1
> assert len(self.find_proc(self.app_name, unit_pid, out)) == 1
58,59c61,62
< def test_respawn_router(self, skip_alert):
< pid = self.pid_by_name(self.PATTERN_ROUTER)
---
> def test_respawn_router(self, skip_alert, unit_pid):
> pid = self.pid_by_name(self.PATTERN_ROUTER, unit_pid)
64c67
< assert self.wait_for_process(self.PATTERN_ROUTER) is not None
---
> assert self.wait_for_process(self.PATTERN_ROUTER, unit_pid) is not None
66c69
< self.smoke_test()
---
> self.smoke_test(unit_pid)
68,69c71,72
< def test_respawn_controller(self, skip_alert):
< pid = self.pid_by_name(self.PATTERN_CONTROLLER)
---
> def test_respawn_controller(self, skip_alert, unit_pid):
> pid = self.pid_by_name(self.PATTERN_CONTROLLER, unit_pid)
74c77,79
< assert self.wait_for_process(self.PATTERN_CONTROLLER) is not None
---
> assert self.wait_for_process(
> self.PATTERN_CONTROLLER, unit_pid
> ) is not None
78c83
< self.smoke_test()
---
> self.smoke_test(unit_pid)
80,81c85,86
< def test_respawn_application(self, skip_alert):
< pid = self.pid_by_name(self.app_name)
---
> def test_respawn_application(self, skip_alert, unit_pid):
> pid = self.pid_by_name(self.app_name, unit_pid)
86c91
< assert self.wait_for_process(self.app_name) is not None
---
> assert self.wait_for_process(self.app_name, unit_pid) is not None
88c93
< self.smoke_test()
---
> self.smoke_test(unit_pid)