bitset: squash one more bug

This commit is contained in:
nick
2013-07-25 10:58:50 +01:00
parent a5870b8e9b
commit bc9ce93648
2 changed files with 48 additions and 1 deletions

View File

@@ -149,6 +149,7 @@ END_TEST
START_TEST( test_bitset_set )
{
struct bitset_mapping* map;
uint64_t run;
map = bitset_alloc(64, 1);
@@ -162,6 +163,15 @@ START_TEST( test_bitset_set )
bitset_set( map );
assert_bitset_is( map, 0xffffffffffffffff );
free( map );
// Now do something large and representative
map = bitset_alloc( 53687091200, 4096 );
bitset_set( map );
run = bitset_run_count( map, 0, 53687091200 );
ck_assert_int_eq( run, 53687091200 );
}
END_TEST
@@ -170,6 +180,7 @@ START_TEST( test_bitset_clear )
{
struct bitset_mapping* map;
uint64_t *num;
uint64_t run;
map = bitset_alloc(64, 1);
num = (uint64_t*) map->bits;
@@ -178,6 +189,40 @@ START_TEST( test_bitset_clear )
bitset_set( map );
bitset_clear( map );
ck_assert_int_eq( 0x0000000000000000, *num );
free( map );
// Now do something large and representative
map = bitset_alloc( 53687091200, 4096 );
bitset_set( map );
bitset_clear( map );
run = bitset_run_count( map, 0, 53687091200 );
ck_assert_int_eq( run, 53687091200 );
}
END_TEST
START_TEST( test_bitset_set_range )
{
struct bitset_mapping* map = bitset_alloc( 64, 1 );
assert_bitset_is( map, 0x0000000000000000 );
bitset_set_range( map, 8, 8 );
assert_bitset_is( map, 0x000000000000ff00 );
free( map );
}
END_TEST
START_TEST( test_bitset_clear_range )
{
struct bitset_mapping* map = bitset_alloc( 64, 1 );
bitset_set( map );
assert_bitset_is( map, 0xffffffffffffffff );
bitset_clear_range( map, 8, 8 );
assert_bitset_is( map, 0xffffffffffff00ff );
free( map );
}
END_TEST
@@ -263,6 +308,8 @@ Suite* bitset_suite(void)
tcase_add_test(tc_bitset, test_bitset_set);
tcase_add_test(tc_bitset, test_bitset_clear);
tcase_add_test(tc_bitset, test_bitset_run_count);
tcase_add_test(tc_bitset, test_bitset_set_range);
tcase_add_test(tc_bitset, test_bitset_clear_range);
suite_add_tcase(s, tc_bit);
suite_add_tcase(s, tc_bitset);