summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--testsuite.py20
1 files changed, 19 insertions, 1 deletions
diff --git a/testsuite.py b/testsuite.py
index fd3e529..afc3fbb 100644
--- a/testsuite.py
+++ b/testsuite.py
@@ -1302,13 +1302,31 @@ def run_selftests():
# For BOOL_M, the mode should have been promoted
select_and_verify_all(choice_bool_m)
- # Test "m" mode selection
+ # Test "m" mode selection...
+
+ # ...for a choice that can also be in "y" mode
+
+ for sym_name in ("T_1", "T_2"):
+ assign_and_verify_new_value(sym_name, "m", "m")
+ verify(choice_tristate.get_mode() == "m",
+ 'Selecting {0} to "m" should have changed the mode of the '
+ 'choice to "m"'.format(sym_name))
+
+ assign_and_verify_new_value(sym_name, "y", "y")
+ verify(choice_tristate.get_mode() == "y" and
+ choice_tristate.get_selection() is c[sym_name],
+ 'Selecting {0} to "y" should have changed the mode of the '
+ 'choice to "y" and made it the selection'.format(sym_name))
+
+ # ...for a choice that can only be in "m" mode
for sym_name in ("TM_1", "TM_2"):
assign_and_verify_new_value(sym_name, "m", "m")
assign_and_verify_new_value(sym_name, "n", "n")
# "y" should be truncated
assign_and_verify_new_value(sym_name, "y", "m")
+ verify(choice_tristate_m.get_mode() == "m",
+ 'A choice that can only be in "m" mode was not')
# Verify that choices with no explicitly specified type get the type of the
# first contained symbol with a type