Re: [PATCH v2] kunit: tool: reconfigure when the used kunitconfig changes

From: Brendan Higgins
Date: Tue Dec 07 2021 - 17:49:54 EST


On Fri, Nov 19, 2021 at 6:23 PM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote:
>
> 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@xxxxxxxxxx/
>
> Signed-off-by: Daniel Latypov <dlatypov@xxxxxxxxxx>

When you first presented this, I wasn't a huge fan, but you convinced
me. I think the only reason I didn't initially like this is because of
how used-to kunit_tool's eccentricities I have gotten.

Reviewed-by: Brendan Higgins <brendanhiggins@xxxxxxxxxx>