• Daniel Latypov's avatar
    kunit: tool: reconfigure when the used kunitconfig changes · 4c2911f1
    Daniel Latypov authored
    Problem: currently, if you remove something from your kunitconfig,
    kunit.py will not regenerate the .config file.
    The same thing happens if you did --kunitconfig_add=CONFIG_KASAN=y [1]
    and then ran again without it. Your new run will still have KASAN.
    
    The reason is that kunit.py won't regenerate the .config file if it's a
    superset of the kunitconfig. This speeds it up a bit for iterating.
    
    This patch adds an additional check that forces kunit.py to regenerate
    the .config file if the current kunitconfig doesn't match the previous
    one.
    
    What this means:
    * deleting entries from .kunitconfig works as one would expect
    * dropping  a --kunitconfig_add also triggers a rebuild
    * you can still edit .config directly to turn on new options
    
    We implement this by creating a `last_used_kunitconfig` file in the
    build directory (so .kunit, by default) after we generate the .config.
    When comparing the kconfigs, we compare python sets, so duplicates and
    permutations don't trip us up.
    
    The majority of this patch is adding unit tests for the existing logic
    and for the new case where `last_used_kunitconfig` differs.
    
    [1] https://lore.kernel.org/linux-kselftest/20211106013058.2621799-2-dlatypov@google.com/Signed-off-by: default avatarDaniel Latypov <dlatypov@google.com>
    Reviewed-by: default avatarDavid Gow <davidgow@google.com>
    Reviewed-by: default avatarBrendan Higgins <brendanhiggins@google.com>
    Signed-off-by: default avatarShuah Khan <skhan@linuxfoundation.org>
    4c2911f1
start.rst 6.44 KB