summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--tests/Kvisibility30
-rw-r--r--testsuite.py39
2 files changed, 68 insertions, 1 deletions
diff --git a/tests/Kvisibility b/tests/Kvisibility
index 11e15ad..715d098 100644
--- a/tests/Kvisibility
+++ b/tests/Kvisibility
@@ -275,3 +275,33 @@ config HEX_m
hex "hex"
endif
+
+# Menu 'visible if' visibility
+
+menu "n-visible menu"
+ visible if n
+config VISIBLE_IF_n
+ tristate "visible if n"
+endmenu
+
+menu "m-visible menu"
+ visible if m
+config VISIBLE_IF_m
+ tristate "visible if m"
+endmenu
+
+menu "y-visible menu"
+ visible if y
+config VISIBLE_IF_y
+ tristate "visible if m"
+endmenu
+
+menu "m-visible menu 2"
+ visible if y || n
+ visible if m && y
+ visible if y
+if y
+config VISIBLE_IF_m_2
+ tristate "visible if m 2"
+endif
+endmenu
diff --git a/testsuite.py b/testsuite.py
index 69d08c4..dd69ffe 100644
--- a/testsuite.py
+++ b/testsuite.py
@@ -523,7 +523,7 @@ def run_selftests():
format(menu.get_title(), module_vis, menu_vis))
menu_n, menu_m, menu_y, menu_if_n, menu_if_m, menu_if_y, \
- menu_if_m_and_y = c.get_menus()[4:-1]
+ menu_if_m_and_y = c.get_menus()[4:-5]
verify(menu_n.get_title() == "menu n", "Ops - testing the wrong menus")
verify_menu_visibility(menu_n, "n", "n")
@@ -534,6 +534,43 @@ def run_selftests():
verify_menu_visibility(menu_if_y, "y", "y")
verify_menu_visibility(menu_if_m_and_y, "n", "m")
+ # Menu 'visible if' visibility
+
+ menu_visible_if_n, menu_visible_if_m, menu_visible_if_y, \
+ menu_visible_if_m_2 = c.get_menus()[12:]
+
+ def verify_visible_if_visibility(menu, no_module_vis, module_vis):
+ c["MODULES"].set_user_value("n")
+ menu_vis = menu.get_visible_if_visibility()
+ verify(menu_vis == no_module_vis,
+ "menu \"{0}\" should have 'visible if' visibility '{1}' "
+ "without modules, has 'visible if' visibility '{2}'".
+ format(menu.get_title(), no_module_vis, menu_vis))
+
+ c["MODULES"].set_user_value("y")
+ menu_vis = menu.get_visible_if_visibility()
+ verify(menu_vis == module_vis,
+ "menu \"{0}\" should have 'visible if' visibility '{1}' "
+ "with modules, has 'visible if' visibility '{2}'".
+ format(menu.get_title(), module_vis, menu_vis))
+
+ # Ordinary visibility should not affect 'visible if' visibility
+ verify_visible_if_visibility(menu_n, "y", "y")
+ verify_visible_if_visibility(menu_if_n, "y", "y")
+ verify_visible_if_visibility(menu_m, "y", "y")
+ verify_visible_if_visibility(menu_if_m, "y", "y")
+
+ verify_visible_if_visibility(menu_visible_if_n, "n", "n")
+ verify_visible_if_visibility(menu_visible_if_m, "n", "m")
+ verify_visible_if_visibility(menu_visible_if_y, "y", "y")
+ verify_visible_if_visibility(menu_visible_if_m_2, "n", "m")
+
+ # Verify that 'visible if' visibility gets propagated to contained symbols
+ verify_sym_visibility("VISIBLE_IF_n", "n", "n")
+ verify_sym_visibility("VISIBLE_IF_m", "n", "m")
+ verify_sym_visibility("VISIBLE_IF_y", "y", "y")
+ verify_sym_visibility("VISIBLE_IF_m_2", "n", "m")
+
# Comment visibility
def verify_comment_visibility(comment, no_module_vis, module_vis):