c7633de038
sanitycheck takes any "extra_config" list found in the testcase.yaml
file and generates an "overlay" file from it. This file is placed in
the per-test build directory and passed to cmake/kconfig.cmake through a
-DOVERLAY_CONF= option set in the (also) generated sanity-out/Makefile.
This commit moves this generated config overlay to a subdirectory one
level down from the build directory, otherwise kconfig.cmake picks it
up *twice*: once from the -DOVERLAY_CONF= option already mentioned above
and a second time because kconfig.cmake scans the build directory and
blindly picks up ALL files ending with .conf[*]. The second pickup is
problematic because kconfig.cmake currently gives it the top precedence,
even higher than anything the user espressed with --extra-args=CONFIG_*
Here's a quick and simple demonstration of the issue fixed by this
commit:
cd $ZEPHYR_BASE/samples/net/sockets/net_mgmt/
sanitycheck -T. -p qemu_x86 -b -v # --extra-args=CONFIG_USERSPACE=y|n
grep CONFIG_USERSPACE $(find sanity-out/ -name .config)
.net_mgmt.kernelmode/zephyr/.config: # CONFIG_USERSPACE is not set
.net_mgmt.usermode/zephyr/.config: CONFIG_USERSPACE=y
grep 'Merged configuration' $(find sanity-out/ -name build.log)
Without this commit, attemps to override anything with
--extra-args=CONFIG_ are silently dropped on the floor.
For more background this issue was found while using the recipe in
commit message
|
||
---|---|---|
.. | ||
app | ||
backports | ||
compiler | ||
emu | ||
flash | ||
ide | ||
linker/ld | ||
reports | ||
toolchain | ||
usage | ||
util | ||
boards.cmake | ||
ccache.cmake | ||
cfb.cmake | ||
dts.cmake | ||
extensions.cmake | ||
extra_flags.cmake | ||
fpu-for-gcc-m-cpu.cmake | ||
gcc-m-cpu.cmake | ||
generic_toolchain.cmake | ||
git.cmake | ||
hex.cmake | ||
host-tools.cmake | ||
kconfig.cmake | ||
kobj.cmake | ||
pristine.cmake | ||
python.cmake | ||
target_toolchain.cmake | ||
version.cmake | ||
zephyr_module.cmake |