mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-10 22:33:20 +00:00
test-qht: test removal of non-existent entries
This improves qht.c code coverage from 89.44% to 90.00%. Reviewed-by: Alex Bennée <alex.bennee@linaro.org> Signed-off-by: Emilio G. Cota <cota@braap.org> Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
This commit is contained in:
parent
922034e776
commit
f44641bbf2
@ -41,7 +41,7 @@ static void insert(int a, int b)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void rm(int init, int end)
|
static void do_rm(int init, int end, bool exist)
|
||||||
{
|
{
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -49,10 +49,24 @@ static void rm(int init, int end)
|
|||||||
uint32_t hash;
|
uint32_t hash;
|
||||||
|
|
||||||
hash = arr[i];
|
hash = arr[i];
|
||||||
g_assert_true(qht_remove(&ht, &arr[i], hash));
|
if (exist) {
|
||||||
|
g_assert_true(qht_remove(&ht, &arr[i], hash));
|
||||||
|
} else {
|
||||||
|
g_assert_false(qht_remove(&ht, &arr[i], hash));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void rm(int init, int end)
|
||||||
|
{
|
||||||
|
do_rm(init, end, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void rm_nonexist(int init, int end)
|
||||||
|
{
|
||||||
|
do_rm(init, end, false);
|
||||||
|
}
|
||||||
|
|
||||||
static void check(int a, int b, bool expected)
|
static void check(int a, int b, bool expected)
|
||||||
{
|
{
|
||||||
struct qht_stats stats;
|
struct qht_stats stats;
|
||||||
@ -157,8 +171,15 @@ static void qht_do_test(unsigned int mode, size_t init_entries)
|
|||||||
check_n(0);
|
check_n(0);
|
||||||
|
|
||||||
qht_init(&ht, is_equal, 0, mode);
|
qht_init(&ht, is_equal, 0, mode);
|
||||||
|
rm_nonexist(0, 4);
|
||||||
|
insert(0, 4);
|
||||||
|
rm_nonexist(5, 6);
|
||||||
|
insert(4, 6);
|
||||||
|
rm_nonexist(7, 8);
|
||||||
|
iter_rm_mod(1);
|
||||||
|
|
||||||
check_n(0);
|
check_n(0);
|
||||||
|
rm_nonexist(0, 10);
|
||||||
insert(0, N);
|
insert(0, N);
|
||||||
check(0, N, true);
|
check(0, N, true);
|
||||||
check_n(N);
|
check_n(N);
|
||||||
@ -183,6 +204,7 @@ static void qht_do_test(unsigned int mode, size_t init_entries)
|
|||||||
|
|
||||||
qht_reset(&ht);
|
qht_reset(&ht);
|
||||||
insert(0, N);
|
insert(0, N);
|
||||||
|
rm_nonexist(N, N + 32);
|
||||||
iter_rm_mod(10);
|
iter_rm_mod(10);
|
||||||
iter_rm_mod_check(10);
|
iter_rm_mod_check(10);
|
||||||
check_n(N * 9 / 10);
|
check_n(N * 9 / 10);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user