DEFINE_FLEX_test: EXPECTATION FAILED at lib/overflow_kunit.c:1200:

From: Naresh Kamboju
Date: Tue Nov 19 2024 - 05:48:46 EST


The overflow_DEFINE_FLEX_test KUnit test case. This test consistently
passes when built with GCC-13 but fails when using Clang-19 or
Clang-nightly.

Test Case: overflow_DEFINE_FLEX_test
Compilers: Passing: GCC-13
Failing: Clang-19, Clang-nightly
Observed Behavior: The test failure is reproducible with Clang builds,
while GCC builds produce consistent success.

This inconsistency suggests a potential issue either in the Clang toolchain
or in the test implementation that is exposed by Clang's compilation behavior.

Test log:
----------
<6>[ 92.471692] # castable_to_type_test: 103 castable_to_type()
tests finished
<6>[ 92.474933] ok 21 castable_to_type_test
<3>[ 92.476715] # DEFINE_FLEX_test: EXPECTATION FAILED at
lib/overflow_kunit.c:1200
<3>[ 92.476715] Expected
__builtin_dynamic_object_size(two_but_zero, 0) == expected_raw_size,
but
<3>[ 92.476715] __builtin_dynamic_object_size(two_but_zero,
0) == 12 (0xc)
<3>[ 92.476715] expected_raw_size == 8 (0x8)
<6>[ 92.480178] not ok 22 DEFINE_FLEX_test
<6>[ 92.483020] # overflow: pass:21 fail:1 skip:0 total:22


Test failed log with clang-19 and clang-nightly :
-----------------------------------------
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908897/suite/kunit/test/overflow_DEFINE_FLEX_test/log
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908897/suite/kunit/test/overflow_DEFINE_FLEX_test/details/
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908335/suite/kunit/test/overflow_DEFINE_FLEX_test/log
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908335/suite/kunit/test/overflow_DEFINE_FLEX_test/details/

Test history:
----------
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908897/suite/kunit/test/overflow_DEFINE_FLEX_test/history/

Test pass log with gcc-13
----------
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908488/suite/kunit/test/overflow_DEFINE_FLEX_test/log
- https://qa-reports.linaro.org/lkft/linux-next-master/build/next-20241119/testrun/25908488/suite/kunit/test/overflow_DEFINE_FLEX_test/details/

Build image:
-----------
- https://storage.tuxsuite.com/public/linaro/lkft/builds/2p3Z8y7TVGQ8pXwjhYTnnMNxFpZ/

Steps to reproduce test run:
------------
- https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/tests/2p3ZAtZdJgM7AbNB5vGAGDf73vx/reproducer
- https://tuxapi.tuxsuite.com/v1/groups/linaro/projects/lkft/tests/2p3ZAtZdJgM7AbNB5vGAGDf73vx/tux_plan

Steps to reproduce builds:
----------
- tuxmake --runtime podman \
--target-arch arm64 \
--toolchain clang-19 \
--kconfig defconfig \
--kconfig-add CONFIG_KASAN=y \
--kconfig-add CONFIG_KUNIT=y \
--kconfig-add CONFIG_KUNIT_ALL_TESTS=y LLVM=1 LLVM_IAS=1

metadata:
----
git repo: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
git sha: 414c97c966b69e4a6ea7b32970fa166b2f9b9ef0
kernel config:
https://storage.tuxsuite.com/public/linaro/lkft/builds/2p3Z8y7TVGQ8pXwjhYTnnMNxFpZ/config
build url: https://storage.tuxsuite.com/public/linaro/lkft/builds/2p3Z8y7TVGQ8pXwjhYTnnMNxFpZ/
toolchain: clang-19 and clang-nightly
config: defconfig + KASAN + KUNIT + KUNIT_ALL_TESTS
arch: arm64, armv5

Please let me know if more information or logs are required.

--
Linaro LKFT
https://lkft.linaro.org