scripts/kconfig/tests/choice_randomize/__init__.py

Source file repositories/reference/linux-study-clean/scripts/kconfig/tests/choice_randomize/__init__.py

File Facts

System
Linux kernel
Corpus path
scripts/kconfig/tests/choice_randomize/__init__.py
Extension
.py
Size
838 bytes
Lines
35
Domain
Support Tooling And Documentation
Bucket
scripts
Inferred role
Support Tooling And Documentation: scripts
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

# 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

Annotation

Implementation Notes