Commit 6aa06e0b by Alexander Popov

test_engine: implement get_engine_result() for stdout

parent a1888d29
...@@ -13,6 +13,8 @@ This module performs unit-testing of the kconfig-hardened-check engine. ...@@ -13,6 +13,8 @@ This module performs unit-testing of the kconfig-hardened-check engine.
# pylint: disable=missing-function-docstring,line-too-long # pylint: disable=missing-function-docstring,line-too-long
import unittest import unittest
import io
import sys
from collections import OrderedDict from collections import OrderedDict
import json import json
from .engine import KconfigCheck, CmdlineCheck, VersionCheck, OR, AND, populate_with_data, perform_checks from .engine import KconfigCheck, CmdlineCheck, VersionCheck, OR, AND, populate_with_data, perform_checks
...@@ -63,8 +65,9 @@ class TestEngine(unittest.TestCase): ...@@ -63,8 +65,9 @@ class TestEngine(unittest.TestCase):
# print the table with the results # print the table with the results
print('TABLE:') print('TABLE:')
for opt in checklist: for opt in checklist:
opt.table_print(None, True) # default mode, with_results opt.table_print('verbose', True) # verbose mode, with_results
print() print()
print('=' * 121)
# print the results in JSON # print the results in JSON
print('JSON:') print('JSON:')
...@@ -76,11 +79,21 @@ class TestEngine(unittest.TestCase): ...@@ -76,11 +79,21 @@ class TestEngine(unittest.TestCase):
@staticmethod @staticmethod
def get_engine_result(checklist, result, result_type): def get_engine_result(checklist, result, result_type):
assert(result_type in ('table', 'json')), \ assert(result_type in ('json', 'stdout')), \
f'invalid result type "{result_type}"' f'invalid result type "{result_type}"'
if result_type == 'json': if result_type == 'json':
for opt in checklist: for opt in checklist:
result.append(opt.json_dump(True)) # with_results result.append(opt.json_dump(True)) # with_results
return
captured_output = io.StringIO()
stdout_backup = sys.stdout
sys.stdout = captured_output
for opt in checklist:
opt.table_print('verbose', True) # verbose mode, with_results
sys.stdout = stdout_backup
result.append(captured_output.getvalue())
def test_single_kconfig(self): def test_single_kconfig(self):
# 1. prepare the checklist # 1. prepare the checklist
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment