cmocka: Add assert_int_in_range()
This commit is contained in:
parent
ad315da8b0
commit
237d748050
|
@ -1417,6 +1417,29 @@ void assert_memory_not_equal(const void *a, const void *b, size_t size);
|
||||||
__FILE__, __LINE__)
|
__FILE__, __LINE__)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef DOXYGEN
|
||||||
|
/**
|
||||||
|
* @brief Assert that the specified integer value is not smaller than the
|
||||||
|
* minimum and and not greater than the maximum.
|
||||||
|
*
|
||||||
|
* The function prints an error message to standard error and terminates the
|
||||||
|
* test by calling fail() if value is not in range.
|
||||||
|
*
|
||||||
|
* @param[in] value The value to check.
|
||||||
|
*
|
||||||
|
* @param[in] minimum The minimum value allowed.
|
||||||
|
*
|
||||||
|
* @param[in] maximum The maximum value allowed.
|
||||||
|
*/
|
||||||
|
void assert_int_in_range(intmax_t value, intmax_t minimum, intmax_t maximum);
|
||||||
|
#else
|
||||||
|
#define assert_int_in_range(value, minimum, maximum) \
|
||||||
|
_assert_int_in_range( \
|
||||||
|
cast_to_intmax_type(value), \
|
||||||
|
cast_to_intmax_type(minimum), \
|
||||||
|
cast_to_intmax_type(maximum), __FILE__, __LINE__)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef DOXYGEN
|
#ifdef DOXYGEN
|
||||||
/**
|
/**
|
||||||
* @brief Assert that the specified value is not smaller than the minimum
|
* @brief Assert that the specified value is not smaller than the minimum
|
||||||
|
@ -2355,6 +2378,11 @@ void _assert_memory_equal(const void * const a, const void * const b,
|
||||||
void _assert_memory_not_equal(const void * const a, const void * const b,
|
void _assert_memory_not_equal(const void * const a, const void * const b,
|
||||||
const size_t size, const char* const file,
|
const size_t size, const char* const file,
|
||||||
const int line);
|
const int line);
|
||||||
|
void _assert_int_in_range(const intmax_t value,
|
||||||
|
const intmax_t minimum,
|
||||||
|
const intmax_t maximum,
|
||||||
|
const char* const file,
|
||||||
|
const int line);
|
||||||
void _assert_in_range(
|
void _assert_in_range(
|
||||||
const uintmax_t value, const uintmax_t minimum,
|
const uintmax_t value, const uintmax_t minimum,
|
||||||
const uintmax_t maximum, const char* const file, const int line);
|
const uintmax_t maximum, const char* const file, const int line);
|
||||||
|
|
32
src/cmocka.c
32
src/cmocka.c
|
@ -1356,6 +1356,26 @@ static bool uint_in_range_display_error(const uintmax_t value,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Determine whether a value is within the specified range.
|
||||||
|
*/
|
||||||
|
static bool int_in_range_display_error(const intmax_t value,
|
||||||
|
const intmax_t range_min,
|
||||||
|
const intmax_t range_max)
|
||||||
|
{
|
||||||
|
if (value >= range_min && value <= range_max) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
cmocka_print_error("%jd is not within the range [%jd, %jd]\n",
|
||||||
|
value,
|
||||||
|
range_min,
|
||||||
|
range_max);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Determine whether a value is within the specified range. If the value
|
* Determine whether a value is within the specified range. If the value
|
||||||
* is not within the range 1 is returned. If the value is within the
|
* is not within the range 1 is returned. If the value is within the
|
||||||
|
@ -1960,6 +1980,18 @@ void _assert_memory_not_equal(const void * const a, const void * const b,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void _assert_int_in_range(const intmax_t value,
|
||||||
|
const intmax_t minimum,
|
||||||
|
const intmax_t maximum,
|
||||||
|
const char* const file,
|
||||||
|
const int line)
|
||||||
|
{
|
||||||
|
if (!int_in_range_display_error(value, minimum, maximum)) {
|
||||||
|
_fail(file, line);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void _assert_in_range(
|
void _assert_in_range(
|
||||||
const uintmax_t value, const uintmax_t minimum,
|
const uintmax_t value, const uintmax_t minimum,
|
||||||
const uintmax_t maximum, const char* const file,
|
const uintmax_t maximum, const char* const file,
|
||||||
|
|
Loading…
Reference in New Issue