[PATCH v3 07/10] spmsgq_err01: Use correct max values and fix 64bit

Sebastian Huber sebastian.huber at embedded-brains.de
Mon Oct 5 07:18:24 UTC 2020


On 04/10/2020 06:18, Kinsey Moore wrote:

> Fix spmsgq_err01 on systems with 64-bit pointers and correct max value
> mismatches and inaccuracies that are more noticable on 64-bit systems.
> ---
>   testsuites/sptests/spmsgq_err01/init.c | 6 +++---
>   1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/testsuites/sptests/spmsgq_err01/init.c b/testsuites/sptests/spmsgq_err01/init.c
> index c68d30da16..9a6a8855be 100644
> --- a/testsuites/sptests/spmsgq_err01/init.c
> +++ b/testsuites/sptests/spmsgq_err01/init.c
> @@ -101,7 +101,7 @@ rtems_task Init(
>     /* not enough memory for messages */
>     status = rtems_message_queue_create(
>       Queue_name[ 1 ],
> -    SIZE_MAX / ( sizeof( uintptr_t ) + sizeof( CORE_message_queue_Buffer ) ),
> +    UINT_MAX / ( sizeof( uintptr_t ) + sizeof( CORE_message_queue_Buffer ) ),
I think this should be UINT32_MAX. However, on a 64-bit system this test 
case doesn't produce the intended error case.
>       1,
I think we need here something like MIN(SIZE_MAX / UINT32_MAX, 1)).
>       RTEMS_DEFAULT_ATTRIBUTES,
>       &Queue_id[ 1 ]
> @@ -116,8 +116,8 @@ rtems_task Init(
>     /* too large a request for messages */
>     status = rtems_message_queue_create(
>       Queue_name[ 1 ],
> -    INT_MAX,
> -    INT_MAX,
> +    UINT_MAX,
UINT32_MAX?
> +    SIZE_MAX - sizeof( uintptr_t ) + 1 - sizeof( CORE_message_queue_Buffer ),
>       RTEMS_DEFAULT_ATTRIBUTES,
>       &Queue_id[ 1 ]
>     );
I am not sure about these changes.


More information about the devel mailing list