Hi Cédric, Thomas,

On 29/3/24 10:27, Cédric Le Goater wrote:
The test mangles the GPIO address and the pin number in the
qtest_add_data_func data parameter. Doing so, it assumes that the host
pointer size is always 64-bit, which breaks on 32-bit :

../tests/qtest/stm32l4x5_gpio-test.c: In function ‘test_gpio_output_mode’:
../tests/qtest/stm32l4x5_gpio-test.c:272:25: error: cast from pointer to 
integer of different size [-Werror=pointer-to-int-cast]
   272 |     unsigned int pin = ((uint64_t)data) & 0xF;
       |                         ^
../tests/qtest/stm32l4x5_gpio-test.c:273:22: error: cast from pointer to 
integer of different size [-Werror=pointer-to-int-cast]
   273 |     uint32_t gpio = ((uint64_t)data) >> 32;
       |                      ^

Any clue why this isn't this covered by CI?


To fix, improve the mangling of the GPIO address and pin number fields
by using GPIO_SIZE so that the resulting value fits in a 32-bit pointer.
While at it, include some helpers to hide the details.

Cc: Arnaud Minier <arnaud.min...@telecom-paris.fr>
Cc: Inès Varhol <ines.var...@telecom-paris.fr>
Signed-off-by: Cédric Le Goater <c...@redhat.com>
---
  tests/qtest/stm32l4x5_gpio-test.c | 59 ++++++++++++++++++-------------
  1 file changed, 35 insertions(+), 24 deletions(-)


Reply via email to