diff --git a/test/CNTestLib.py b/test/CNTestLib.py index 5896fc2aea12808001243e98fbb59aa180eca00c..ef7125aea4408fbe7fc91092d307784e83431099 100644 --- a/test/CNTestLib.py +++ b/test/CNTestLib.py @@ -22,6 +22,7 @@ For more information about the OpenAirInterface (OAI) Software Alliance: import shutil import time +import re from common import * from docker_api import DockerApi @@ -137,7 +138,21 @@ class CNTestLib: log_dir = get_log_dir() if folder: log_dir = os.path.join(log_dir, folder) - self.docker_api.store_all_logs(log_dir, all_services) + cnList = self.docker_api.store_all_logs(log_dir, all_services) + for filename in cnList: + if re.search('mysql', filename) is not None or re.search('oai-ext-dn', filename) is not None or re.search('trace_dummy', filename) is not None: + continue + name_split = filename.split('logs/') + byeMessagePresent = False + with open(filename, 'r') as f: + for line in f: + result = re.search('system.*info.* Bye. Shutdown Procedure took (?P<duration>[0-9]+) ms', line) + if result is not None and not byeMessagePresent: + byeMessagePresent = True + duration = int(result.group('duration')) + print(f'{name_split[1]} container properly shutdown in {duration} ms.') + if not byeMessagePresent: + print(f'{name_split[1]} container did NOT properly shutdown.') def configure_default_qos(self, five_qi=9, session_ambr=50): print("TODO implement me") diff --git a/test/docker_api.py b/test/docker_api.py index 1c43e7c89205aafab79f0bd7e07b5b6476df69c9..dad81d2103112f5df7e4bbf999ac816684e3846c 100644 --- a/test/docker_api.py +++ b/test/docker_api.py @@ -76,6 +76,7 @@ class DockerApi: def store_all_logs(self, log_dir, container_list=None): containers = self.client.containers(all=True) + listOfLogFiles = [] for container in containers: name = container["Names"][0][1:] if container_list and name not in container_list: @@ -87,6 +88,8 @@ class DockerApi: os.makedirs(log_dir) with open(file_name, "w") as f: f.write(log) + listOfLogFiles.append(file_name) + return listOfLogFiles def get_log(self, container): return self.client.logs(container).decode()