void Test_chunkybar_unmark( CuTest * tc ) { void *prog; prog = chunky_new(100); chunky_mark_complete(prog, 0, 100); CuAssertTrue(tc, chunky_is_complete(prog)); chunky_mark_incomplete(prog, 0, 100); CuAssertTrue(tc, !chunky_is_complete(prog)); CuAssertTrue(tc, !chunky_have(prog,0,100)); CuAssertTrue(tc, 0 == chunky_get_num_chunks(prog)); chunky_free(prog); }
void Test_chunkybar_unmark_swallow_right( CuTest * tc ) { void *prog; prog = chunky_new(100); chunky_mark_complete(prog, 20, 30); /* 20 to 50 */ chunky_mark_incomplete(prog, 30, 30); /* 30 to 60 */ CuAssertTrue(tc, !chunky_is_complete(prog)); CuAssertTrue(tc, !chunky_have(prog,30,30)); CuAssertTrue(tc, chunky_have(prog,20,10)); CuAssertTrue(tc, 10 == chunky_get_nbytes_completed(prog)); CuAssertTrue(tc, 1 == chunky_get_num_chunks(prog)); chunky_free(prog); }
void Test_chunkybar_dontUnmark3( CuTest * tc ) { void *prog; prog = chunky_new(262144); chunky_mark_complete(prog, 0, 49152); chunky_mark_complete(prog, 65536,196608); chunky_mark_incomplete(prog, 114688, 16384); CuAssertTrue(tc, chunky_have(prog,0,49152)); CuAssertTrue(tc, chunky_have(prog,65536,49152)); CuAssertTrue(tc, !chunky_have(prog,114688, 16384)); CuAssertTrue(tc, chunky_have(prog,131072,131072)); CuAssertTrue(tc, 3 == chunky_get_num_chunks(prog)); chunky_free(prog); }
void Test_chunkybar_dontUnmarkHalvesAtEdge( CuTest * tc ) { void *prog; prog = chunky_new(100); chunky_mark_complete(prog, 0, 100); CuAssertTrue(tc, chunky_is_complete(prog)); chunky_mark_incomplete(prog, 50, 50); CuAssertTrue(tc, !chunky_is_complete(prog)); CuAssertTrue(tc, chunky_have(prog,0,50)); CuAssertTrue(tc, !chunky_have(prog,50,50)); CuAssertTrue(tc, 50 == chunky_get_nbytes_completed(prog)); CuAssertTrue(tc, 1 == chunky_get_num_chunks(prog)); chunky_free(prog); }
void Test_chunkybar_unmarkHalves( CuTest * tc ) { void *prog; prog = chunky_new(100); chunky_mark_complete(prog, 0, 100); CuAssertTrue(tc, chunky_is_complete(prog)); chunky_mark_incomplete(prog, 25, 50); CuAssertTrue(tc, !chunky_is_complete(prog)); CuAssertTrue(tc, chunky_have(prog,0,25)); CuAssertTrue(tc, !chunky_have(prog,25,50)); CuAssertTrue(tc, chunky_have(prog,75,25)); CuAssertTrue(tc, 50 == chunky_get_nbytes_completed(prog)); CuAssertTrue(tc, 2 == chunky_get_num_chunks(prog)); chunky_free(prog); }
void bt_piecedb_remove(bt_piecedb_t * db, int idx) { // TODO memleak here? hashmap_remove(priv(db)->pmap, (void*)((unsigned long)idx+1)); chunky_mark_incomplete(priv(db)->space, idx, 1); }