| # SPDX-License-Identifier: GPL-2.0-only | |
| """ | |
| Randomize all dependent choices | |
| This is a somewhat tricky case for randconfig; the visibility of one choice is | |
| determined by a member of another choice. Randconfig should be able to generate | |
| all possible patterns. | |
| """ | |
| def test(conf): | |
| expected0 = False | |
| expected1 = False | |
| expected2 = False | |
| for i in range(100): | |
| assert conf.randconfig(seed=i) == 0 | |
| if conf.config_matches('expected_config0'): | |
| expected0 = True | |
| elif conf.config_matches('expected_config1'): | |
| expected1 = True | |
| elif conf.config_matches('expected_config2'): | |
| expected2 = True | |
| else: | |
| assert False | |
| if expected0 and expected1 and expected2: | |
| break | |
| assert expected0 | |
| assert expected1 | |
| assert expected2 |