Changeset e3272101 in mainline for uspace/lib/c/test/imath.c


Ignore:
Timestamp:
2019-02-11T14:08:52Z (6 years ago)
Author:
Matthieu Riolo <matthieu.riolo@…>
Children:
d5a89a3
Parents:
aa57bf7
Message:

make ilog10_u64() return an errno_t

The function ilog10_u64() used to return 0
for the value 0. Which is not correct. Either
NaN or -Infinity are correct, but not 0, since
it would be ambiguous with log(1). To ensure this
case the function ilog10_u64() has been changed
to return a errno_t indicating a failure.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/c/test/imath.c

    raa57bf7 re3272101  
    7878PCUT_TEST(ilog10_u64_zero)
    7979{
    80         unsigned ret = ilog10_u64(0);
    81         PCUT_ASSERT_INT_EQUALS(0, ret);
     80        unsigned res;
     81        errno_t ret = ilog10_u64(0, &res);
     82        PCUT_ASSERT_ERRNO_VAL(ERANGE, ret);
    8283}
    8384
    8485PCUT_TEST(ilog10_u64_one)
    8586{
    86         unsigned ret = ilog10_u64(1);
    87         PCUT_ASSERT_INT_EQUALS(0, ret);
     87        unsigned res;
     88        errno_t ret = ilog10_u64(1, &res);
     89        PCUT_ASSERT_ERRNO_VAL(EOK, ret);
     90        PCUT_ASSERT_INT_EQUALS(0, res);
    8891}
    8992
    9093PCUT_TEST(ilog10_u64_max)
    9194{
    92         unsigned ret = ilog10_u64(MAX_NUM);
    93         PCUT_ASSERT_INT_EQUALS(MAX_EXP, ret);
     95        unsigned res;
     96        errno_t ret = ilog10_u64(MAX_NUM, &res);
     97        PCUT_ASSERT_ERRNO_VAL(EOK, ret);
     98        PCUT_ASSERT_INT_EQUALS(MAX_EXP, res);
    9499}
    95100
Note: See TracChangeset for help on using the changeset viewer.