Source code for conftest

#!/usr/bin/env python
#
# Author: Prem Karat (pkarat@mvista.com)
# License: MIT
# (C) Copyright MontaVista Software, LLC 2016-2017. All rights reserved.


from apis.utils import check_kernel_configs
from apis.utils import run_cmd
import os
import pytest
import re
import sys


[docs]def pytest_configure(config): """Provide additional environment details to pytest-html report""" # add environment details to the pytest-html plugin msd_files = ['/boot/kenv.sh', '/etc/mvl7/conf/local-content.conf', '/etc/mvlcgx2.4.0/conf/emitted.inc'] msd_file = None for f in msd_files: if os.path.isfile(f): msd_file = f break msd = 'Unknown' msd_version = 'Unknown' msd_output = run_cmd('cat %s' % msd_file, check_rc=False) if msd_output: match = re.findall(r'MSD.*VERSION="(.*)"', msd_output, re.M) if match: msd_version = match[0] if msd_file == "/etc/mvlcgx2.4.0/conf/emitted.inc": match = re.findall(r'MSD="(.*)"', msd_output, re.M) else: match = re.findall(r'.*MACHINE="(.*)"', msd_output, re.M) if match: msd = match[0] config._metadata['MSD'] = msd config._metadata['MSD Version'] = msd_version msd_release = run_cmd('cat /etc/mvl-release', check_rc=False) if not msd_release: msd_release = 'Unknown' config._metadata['MSD Release'] = msd_release hostname = run_cmd('hostname', check_rc=False) if not hostname: hostname = 'Unknown' config._metadata['Target'] = hostname kernel_preemption = 'Unknown' if check_kernel_configs('PREEMPT_RT_FULL', logging=False): kernel_preemption = 'PREEMPT_RT_FULL' elif check_kernel_configs('PREEMPT__LL', logging=False): kernel_preemption = 'PREEMPT__LL' elif check_kernel_configs('PREEMPT_NONE', logging=False): kernel_preemption = 'PREEMPT_NONE' config._metadata['Kernel Preemption'] = kernel_preemption uname_output = run_cmd('uname -mr', check_rc=False) kernel_release = 'Unknown' arch = 'Unknown' if uname_output: kernel_release, arch = uname_output.split() config._metadata['Kernel Release'] = kernel_release config._metadata['Arch'] = arch parameters = sys.argv if not parameters: test_name = 'Unknown' else: test_name = re.sub(r'.*test_','',''.join(filter(lambda x:'.py' in x, parameters)).replace(".py","")) if not test_name: test_name = 'Unknown' config._metadata['Test Name'] = test_name