OVMS3-idf/tools/kconfig_new/test/gen_kconfig_doc/test_target_visibility.py

112 lines
4 KiB
Python
Executable file

#!/usr/bin/env python
import os
import sys
import unittest
try:
from . import kconfiglib
except Exception:
sys.path.insert(0, os.path.normpath(os.path.join(os.path.dirname(os.path.realpath(__file__)), '../..')))
import kconfiglib
import gen_kconfig_doc
class ConfigTargetVisibilityTestCase(unittest.TestCase):
def setUp(self):
self.target = os.environ['IDF_TARGET']
self.config = kconfiglib.Kconfig('Kconfig')
self.v = gen_kconfig_doc.ConfigTargetVisibility(self.config, self.target)
def _get_config(self, name):
sym = self.config.syms.get(name)
if sym:
return sym.nodes[0]
choice = self.config.named_choices.get(name)
if choice:
return choice.nodes[0]
raise RuntimeError('Unimplemented {}'.format(name))
def visible(self, config_name):
self.assertTrue(self.v.visible(self._get_config(config_name)))
def invisible(self, config_name):
self.assertFalse(self.v.visible(self._get_config(config_name)))
class ConfigTargetVisibilityChipA(ConfigTargetVisibilityTestCase):
@classmethod
def setUpClass(cls):
os.environ['IDF_TARGET'] = 'chipa'
def test_config_visibility(self):
self.invisible('IDF_TARGET')
self.invisible('IDF_TARGET_CHIPA')
self.visible('ALWAYS_VISIBLE')
self.visible('ALWAYS_VISIBLE_CHOICE')
self.visible('CONFIG_FOR_CHIPA')
self.invisible('CONFIG_FOR_CHIPB')
self.visible('CHOICE_FOR_CHIPA')
self.invisible('CHOICE_FOR_CHIPB')
self.visible('EXT_CONFIG1_FOR_CHIPA_MENU')
self.visible('EXT_CONFIG2_FOR_CHIPA_MENU')
self.visible('EXT_CONFIG3_FOR_CHIPA')
self.invisible('EXT_CONFIG1_FOR_CHIPB_MENU')
self.invisible('EXT_CONFIG2_FOR_CHIPB_MENU')
self.invisible('EXT_CONFIG3_FOR_CHIPB')
self.visible('EXT_CONFIG4')
self.visible('DEEP_DEPENDENT_CONFIG')
self.visible('DEEP_DEPENDENT_CONFIG_INV')
self.visible('DEEP_DEPENDENT_CHOICE')
self.invisible('INVISIBLE1')
self.visible('VISIBLE1')
self.visible('CONFIG_FOR_CHIPA_DEPENDS_VAR1')
self.visible('CONFIG_FOR_CHIPA_DEPENDS_VAR2')
self.visible('CONFIG_FOR_CHIPA_DEPENDS_VAR3')
self.visible('CONFIG_DEPENDS_ENV_VAR1')
self.visible('CONFIG_DEPENDS_ENV_VAR2')
self.visible('CHIPA_VERSION')
self.invisible('CHIPA_REV_MIN')
self.visible('CHIPA_FEATURE_FROM_V1')
self.visible('CHIPA_FEATURE_FROM_V3')
class ConfigTargetVisibilityChipB(ConfigTargetVisibilityTestCase):
@classmethod
def setUpClass(cls):
os.environ['IDF_TARGET'] = 'chipb'
def test_config_visibility(self):
self.invisible('IDF_TARGET')
self.invisible('IDF_TARGET_CHIPA')
self.visible('ALWAYS_VISIBLE')
self.visible('ALWAYS_VISIBLE_CHOICE')
self.invisible('CONFIG_FOR_CHIPA')
self.visible('CONFIG_FOR_CHIPB')
self.invisible('CHOICE_FOR_CHIPA')
self.visible('CHOICE_FOR_CHIPB')
self.invisible('EXT_CONFIG1_FOR_CHIPA_MENU')
self.invisible('EXT_CONFIG2_FOR_CHIPA_MENU')
self.invisible('EXT_CONFIG3_FOR_CHIPA')
self.visible('EXT_CONFIG1_FOR_CHIPB_MENU')
self.visible('EXT_CONFIG2_FOR_CHIPB_MENU')
self.visible('EXT_CONFIG3_FOR_CHIPB')
self.visible('EXT_CONFIG4')
self.invisible('DEEP_DEPENDENT_CONFIG')
self.visible('DEEP_DEPENDENT_CONFIG_INV')
self.invisible('DEEP_DEPENDENT_CHOICE')
self.invisible('INVISIBLE1')
self.visible('VISIBLE1')
self.invisible('CONFIG_FOR_CHIPA_DEPENDS_VAR1')
self.invisible('CONFIG_FOR_CHIPA_DEPENDS_VAR2')
self.invisible('CONFIG_FOR_CHIPA_DEPENDS_VAR3')
self.visible('CONFIG_DEPENDS_ENV_VAR1')
self.visible('CONFIG_DEPENDS_ENV_VAR2')
self.invisible('CHIPA_VERSION')
self.invisible('CHIPA_REV_MIN')
self.invisible('CHIPA_FEATURE_FROM_V1')
self.invisible('CHIPA_FEATURE_FROM_V3')
if __name__ == "__main__":
unittest.main()