112 lines
4 KiB
Python
112 lines
4 KiB
Python
|
#!/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()
|