aboutsummaryrefslogtreecommitdiffstats
path: root/scripts/kconfig/tests/choice_randomize/__init__.py
blob: d380045be79c0bd1317231b075de0192218f50b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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