On Fri, May 20, 2022 at 3:13 PM Daniel Latypov <dlatypov@xxxxxxxxxx> wrote: > Talking offline with David, we've come up with a small example. > > If we add this kconfig somewhere > +config X > + bool "X" > + default y > + > +config Y > + bool "Y" > + default y > + depends on X > + > > Then running this will fail > $ ./tools/testing/kunit/kunit.py config --kunitconfig xy_kunitconfig > --kconfig_add=CONFIG_X=n --kconfig_add=CONFIG_Y=n > > It will fail with this > This is probably due to unsatisfied dependencies. > Missing: # CONFIG_Y is not set > > The problem is that kunit.py is looking for an explicit line saying > CONFIG_Y is not set. > But CONFIG_Y's dependencies are not met, so Kconfig doesn't write it out. > > I assume we can treat the absence of it in the file as proof that it's not set. > I.e. the bug lies in the is_subset() logic we have in kunit.py? Ah no, this is just me trying to be clever and avoid a call to this logic. I tried to use set_diff() and check if that's empty as an alternative. But the set_diff() logic is not aware of how to treat the absence of options properly. I'll send a v2 w/ a fix.