mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-11 13:43:47 +01:00
Add unit tests for cast_double_to_int64().
This commit is contained in:
parent
8acccdbeac
commit
0fcd150959
@ -4237,6 +4237,62 @@ test_util_laplace(void *arg)
|
||||
;
|
||||
}
|
||||
|
||||
static void
|
||||
test_util_cast_double_to_int64(void *arg)
|
||||
{
|
||||
(void)arg;
|
||||
|
||||
tt_i64_op(INT64_MIN, ==, cast_double_to_int64(-INFINITY));
|
||||
tt_i64_op(INT64_MIN, ==,
|
||||
cast_double_to_int64(-1.0 * pow(2.0, 64.0) - 1.0));
|
||||
tt_i64_op(INT64_MIN, ==,
|
||||
cast_double_to_int64(-1.0 * pow(2.0, 63.0) - 1.0));
|
||||
tt_i64_op(((int64_t) -1) << 53, ==,
|
||||
cast_double_to_int64(-1.0 * pow(2.0, 53.0)));
|
||||
tt_i64_op((((int64_t) -1) << 53) + 1, ==,
|
||||
cast_double_to_int64(-1.0 * pow(2.0, 53.0) + 1.0));
|
||||
tt_i64_op(-1, ==, cast_double_to_int64(-1.0));
|
||||
tt_i64_op(0, ==, cast_double_to_int64(-0.9));
|
||||
tt_i64_op(0, ==, cast_double_to_int64(-0.1));
|
||||
tt_i64_op(0, ==, cast_double_to_int64(0.0));
|
||||
tt_i64_op(0, ==, cast_double_to_int64(NAN));
|
||||
tt_i64_op(0, ==, cast_double_to_int64(0.1));
|
||||
tt_i64_op(0, ==, cast_double_to_int64(0.9));
|
||||
tt_i64_op(1, ==, cast_double_to_int64(1.0));
|
||||
tt_i64_op((((int64_t) 1) << 53) - 1, ==,
|
||||
cast_double_to_int64(pow(2.0, 53.0) - 1.0));
|
||||
tt_i64_op(((int64_t) 1) << 53, ==,
|
||||
cast_double_to_int64(pow(2.0, 53.0)));
|
||||
tt_i64_op(INT64_MAX, ==,
|
||||
cast_double_to_int64(pow(2.0, 63.0)));
|
||||
tt_i64_op(INT64_MAX, ==,
|
||||
cast_double_to_int64(pow(2.0, 64.0)));
|
||||
tt_i64_op(INT64_MAX, ==, cast_double_to_int64(INFINITY));
|
||||
|
||||
done:
|
||||
;
|
||||
}
|
||||
|
||||
static void
|
||||
test_util_strclear(void *arg)
|
||||
{
|
||||
static const char *vals[] = { "", "a", "abcdef", "abcdefgh", NULL };
|
||||
int i;
|
||||
char *v = NULL;
|
||||
(void)arg;
|
||||
|
||||
for (i = 0; vals[i]; ++i) {
|
||||
size_t n;
|
||||
v = tor_strdup(vals[i]);
|
||||
n = strlen(v);
|
||||
tor_strclear(v);
|
||||
tt_assert(tor_mem_is_zero(v, n+1));
|
||||
tor_free(v);
|
||||
}
|
||||
done:
|
||||
tor_free(v);
|
||||
}
|
||||
|
||||
#define UTIL_LEGACY(name) \
|
||||
{ #name, test_util_ ## name , 0, NULL, NULL }
|
||||
|
||||
@ -4454,6 +4510,8 @@ struct testcase_t util_tests[] = {
|
||||
UTIL_LEGACY(di_ops),
|
||||
UTIL_TEST(round_to_next_multiple_of, 0),
|
||||
UTIL_TEST(laplace, 0),
|
||||
UTIL_TEST(cast_double_to_int64, 0),
|
||||
UTIL_TEST(strclear, 0),
|
||||
UTIL_TEST(find_str_at_start_of_line, 0),
|
||||
UTIL_TEST(string_is_C_identifier, 0),
|
||||
UTIL_TEST(asprintf, 0),
|
||||
|
Loading…
Reference in New Issue
Block a user