Skip to content

Commit ad70211

Browse files
committed
.murdock: drop Kconfig compile check
We want to remove Kconfig, so don't fail CI when the Kconfig build no longer aligns with the classic make based build.
1 parent 376d814 commit ad70211

1 file changed

Lines changed: 1 addition & 221 deletions

File tree

.murdock

Lines changed: 1 addition & 221 deletions
Original file line numberDiff line numberDiff line change
@@ -40,125 +40,6 @@ esac
4040
# is in
4141
: ${TEST_BOARDS_LLVM_COMPILE:="iotlab-m3 native nrf52dk mulle nucleo-f401re samr21-xpro slstk3402a"}
4242

43-
: ${TEST_KCONFIG_BOARDS_AVAILABLE:="
44-
adafruit-itsybitsy-m4
45-
arduino-due
46-
arduino-leonardo
47-
arduino-mkrzero
48-
arduino-mega2560
49-
arduino-nano
50-
atxmega-a1-xplained
51-
atxmega-a3bu-xplained
52-
avr-rss2
53-
avsextrem
54-
bastwan
55-
bluepill
56-
b-l475e-iot01a
57-
cc1352-launchpad
58-
cc2650-launchpad
59-
derfmega128
60-
dwm1001
61-
esp32-ci
62-
esp32-heltec-lora32-v2
63-
esp32-olimex-evb
64-
esp32c3-ci
65-
esp32c3-devkit
66-
esp32s3-ci
67-
esp32s3-devkit
68-
esp32s2-ci
69-
esp32s2-devkit
70-
esp8266-ci
71-
esp8266-esp-12x
72-
hamilton
73-
hifive1
74-
mbed_lpc1768
75-
mega-xplained
76-
microbit
77-
mulle
78-
native
79-
nrf52840dk
80-
nrf9160dk
81-
nucleo-f072rb
82-
nucleo-f103rb
83-
nucleo-f207zg
84-
nucleo-f334r8
85-
nucleo-f429zi
86-
nucleo-f767zi
87-
nucleo-g071rb
88-
nucleo-g474re
89-
nucleo-l011k4
90-
nucleo-l073rz
91-
nucleo-l152re
92-
nucleo-l433rc
93-
nucleo-l552ze-q
94-
pba-d-01-kw2x
95-
p-nucleo-wb55
96-
qn9080dk
97-
remote-revb
98-
rpi-pico
99-
same54-xpro
100-
samr21-xpro
101-
seeedstudio-gd32
102-
slstk3400a
103-
sltb001a
104-
slwstk6220a
105-
stm32f723e-disco
106-
stm32mp157c-dk2
107-
waspmote-pro
108-
waveshare-nrf52840-eval-kit
109-
weact-f401ce
110-
z1
111-
"}
112-
113-
: ${TEST_KCONFIG_ENFORCE_APP_GROUPS:="
114-
examples/hello-world
115-
tests/build_system/external_board_dirs
116-
tests/drivers/b*
117-
tests/drivers/f*
118-
tests/drivers/g*
119-
tests/drivers/h*
120-
tests/drivers/i*
121-
tests/drivers/j*
122-
tests/drivers/l*
123-
tests/drivers/o*
124-
tests/drivers/p*
125-
tests/drivers/q*
126-
tests/drivers/r*
127-
tests/drivers/s*
128-
tests/drivers/t*
129-
tests/drivers/u*
130-
tests/drivers/v*
131-
tests/net/ieee802154_hal
132-
tests/periph/*
133-
tests/pkg/elk
134-
tests/pkg/uzlib
135-
tests/sys/cb_mux*
136-
tests/sys/congure_*
137-
tests/sys/prng_*
138-
tests/sys/trace
139-
tests/sys/xtimer_*
140-
tests/sys/ztimer_*
141-
"}
142-
143-
# This list prevents boards from being tested by the TEST_KCONFIG_TEST_ALLOWLIST
144-
# This should only be used for boards that require a lot of work, such as,
145-
# requiring modelling of a clock tree.
146-
# As a rule of thumb, only add boards here if there are not differences in
147-
# modules or packages.
148-
# Eventually this list will be removed...
149-
#
150-
: ${TEST_KCONFIG_BOARD_BLOCKLIST:="
151-
"}
152-
153-
# This list will force all boards that are not in the TEST_KCONFIG_BOARD_BLOCKLIST
154-
# to be tested on the apps. The purpose is to prevent new boards from skipping
155-
# the kconfig implementations.
156-
: ${TEST_KCONFIG_TEST_ALLOWLIST:="
157-
examples/hello-world
158-
tests/drivers/saul
159-
tests/drivers/mtd_mapper
160-
"}
161-
16243
: ${TEST_WITH_CONFIG_SUPPORTED:="examples/suit_update tests/drivers/at86rf2xx_aes"}
16344

16445
export RIOT_CI_BUILD=1
@@ -251,54 +132,6 @@ fi
251132

252133
CFCR_ARGS="--upstreambranch ${CI_BASE_COMMIT}"
253134

254-
get_supported_kconfig_board_app() {
255-
local board=$1
256-
local appdir=$2
257-
if is_in_list "${board}" "${TEST_KCONFIG_BOARD_BLOCKLIST}"; then
258-
return 1
259-
fi
260-
261-
# On nightlies run all possible kconfig tests on all boards
262-
# Normally we don't want to do this as it adds quite a bit to build time
263-
# and the subset of boards we are testing for are pretty good at catching
264-
# any bugs...
265-
# This will be over one day, I promise.
266-
if [ ${NIGHTLY} -eq 1 ]; then
267-
if is_in_list "${appdir}" "${TEST_KCONFIG_ENFORCE_APP_GROUPS}"; then
268-
return 0
269-
fi
270-
if [ -f "${appdir}/app.config.test" ]; then
271-
return 0
272-
fi
273-
fi
274-
if is_in_list "${appdir}" "${TEST_KCONFIG_TEST_ALLOWLIST}"; then
275-
return 0
276-
fi
277-
if is_in_list "${board}" "${TEST_KCONFIG_BOARDS_AVAILABLE}"; then
278-
if is_in_list "${appdir}" "${TEST_KCONFIG_ENFORCE_APP_GROUPS}"; then
279-
return 0
280-
fi
281-
if [ -f "${appdir}/app.config.test" ]; then
282-
return 0
283-
fi
284-
fi
285-
return 1
286-
}
287-
288-
kconfig_module_packages_diff() {
289-
local board=$1
290-
local appdir=$2
291-
292-
make clean --no-print-directory -C ${appdir} BOARD=${board}
293-
mmp=$(make --no-print-directory info-modules info-packages -C ${appdir} BOARD=${board})
294-
295-
make clean --no-print-directory -C ${appdir} BOARD=${board}
296-
kmp=$(TEST_KCONFIG=1 make --no-print-directory info-modules info-packages -C ${appdir} BOARD=${board})
297-
298-
299-
bash -c "diff <(echo \"${mmp}\") <(echo \"${kmp}\")"
300-
}
301-
302135
# if RUN_TESTS is unset (e.g., not passed from the outside),
303136
# set to 1 if NIGHTLY=1 or if the label "CI: run tests" is set,
304137
# otherwise set 0.
@@ -531,67 +364,14 @@ compile() {
531364
# reduces disk IO.
532365
export CCACHE_TEMPDIR="$(pwd)/.ccache/tmp"
533366

534-
# We compile a first time with Kconfig based dependency
535-
# resolution for regression purposes. $TEST_KCONFIG contains a
536-
# list of board-application tuples that are currently modeled to
537-
# run with Kconfig
538-
539-
should_check_kconfig_hash=0
540-
541-
if get_supported_kconfig_board_app "${board}" "${appdir}"; then
542-
should_check_kconfig_hash=1
543-
# As we have some issues with occasional unrelated hash mismatches
544-
# we will stop the binary checks and rely only in a module/package
545-
# check to ensure kconfig is matching make.
546-
# Only nightlies will check the hash...
547-
# Once we figure out the problem we can check the hashes again or
548-
# better yet just finish!
549-
if [ ${NIGHTLY} -eq 1 ]; then
550-
BOARD=${board} make -C${appdir} clean
551-
CCACHE_BASEDIR="$(pwd)" BOARD=${board} TOOLCHAIN=${toolchain} RIOT_CI_BUILD=1 TEST_KCONFIG=1 \
552-
make -C${appdir} all test-input-hash -j${JOBS:-4}
553-
RES=$?
554-
if [ $RES -eq 0 ]; then
555-
kconfig_hashes="$(cat ${BINDIR}/test-input-hash.sha1)"
556-
else
557-
kconfig_hashes="kconfig-build-failed"
558-
echo "An error occurred while compiling using Kconfig";
559-
fi
560-
fi
561-
fi
562-
563-
# compile without Kconfig
564367
BOARD=${board} make -C${appdir} clean
565368
CCACHE_BASEDIR="$(pwd)" BOARD=$board TOOLCHAIN=$toolchain RIOT_CI_BUILD=1 \
566369
make -C${appdir} all test-input-hash -j${JOBS:-4}
567370
RES=$?
568371

569-
if [ ${NIGHTLY} -eq 1 ]; then
570-
no_kconfig_hashes="$(cat ${BINDIR}/test-input-hash.sha1)"
571-
fi
572-
# test hash is used to cache test results, not for comparing binaries
573-
# generated with and without KConfig
372+
# test hash is used to cache test results
574373
test_hash=$(test_hash_calc "$BINDIR")
575374

576-
577-
if [ ${should_check_kconfig_hash} != 0 ]; then
578-
if [ ${NIGHTLY} -eq 1 ]; then
579-
if [ "${kconfig_hashes}" != "${no_kconfig_hashes}" ]; then
580-
echo "Hashes of binaries with and without Kconfig mismatch for ${appdir} with ${board}";
581-
echo "Please check that all used modules are modelled in Kconfig and enabled";
582-
echo "Input without KConfig:"
583-
echo "${no_kconfig_hashes}"
584-
echo "Input with KConfig:"
585-
echo "${kconfig_hashes}"
586-
kconfig_module_packages_diff ${board} ${appdir}
587-
RES=1
588-
fi
589-
else
590-
kconfig_module_packages_diff ${board} ${appdir}
591-
RES=$(( $RES | $? ))
592-
fi
593-
fi
594-
595375
# run tests
596376
if [ $RES -eq 0 ]; then
597377
if is_in_list "$board" "$EMULATED_BOARDS_AVAILABLE"; then

0 commit comments

Comments
 (0)