Branch Coverage

_aich.c
Criterion Covered Total %
branch 11 122 9.0


line true false branch
111 0 0 assert(CT_INDEX(chunk_num) == 0);
114 0 0 assert(ctx->chunk_table == 0 || ctx->chunk_table[index - 1] != 0); /* table is empty or full */
0 0 assert(ctx->chunk_table == 0 || ctx->chunk_table[index - 1] != 0); /* table is empty or full */
115 0 0 assert(index <= ctx->allocated);
118 0 0 if (index >= ctx->allocated) {
120 0 0 size_t new_size = (ctx->allocated == 0 ? 64 : ctx->allocated * 2);
121 0 0 assert(index == ctx->allocated);
125 0 0 if (ctx->chunk_table == 0) {
135 0 0 assert(index < ctx->allocated);
136 0 0 assert(ctx->chunk_table != 0);
137 0 0 assert(ctx->chunk_table[index] == 0);
140 0 0 if (ctx->chunk_table[index] == 0) ctx->error = 1;
154 0 1 if (ctx->chunk_table != 0) {
155 0 0 assert(table_size <= ctx->allocated);
156 0 0 assert(table_size == ctx->allocated || ctx->chunk_table[table_size] == 0);
0 0 assert(table_size == ctx->allocated || ctx->chunk_table[table_size] == 0);
157 0 0 for (i = 0; i < table_size; i++) free(ctx->chunk_table[i]);
189 0 0 if (ctx->error) return;
190 0 0 assert(ctx->index <= ED2K_CHUNK_SIZE);
191 0 0 assert(type == AICH_HASH_FULL_TREE ? ctx->chunk_table != 0 : ctx->block_hashes != 0);
0 0 assert(type == AICH_HASH_FULL_TREE ? ctx->chunk_table != 0 : ctx->block_hashes != 0);
194 0 0 blocks_stack[0] = blocks = (unsigned)(type == AICH_HASH_FULL_TREE ?
202 0 0 while (blocks > 1) {
206 0 0 assert(level < 56); /* assumption filesize < (2^56 * 9MiB) */
214 0 0 if (type == AICH_HASH_FULL_TREE) {
222 0 0 for (; level > 0 && (path & 0x01) == 0; path >>= 1) {
0 0 for (; level > 0 && (path & 0x01) == 0; path >>= 1) {
230 0 0 memcpy((level > 0 ? sha1_stack[level] : result), leaf_hash, 20);
232 0 0 if (level == 0) break;
259 0 0 assert(type != 0);
260 0 0 assert(ctx->index <= ED2K_CHUNK_SIZE);
263 0 0 if ((type & AICH_PROCESS_FLUSH_BLOCK) != 0)
266 0 0 if (ctx->block_hashes == NULL) {
268 0 0 if (ctx->block_hashes == NULL) {
275 0 0 assert(((ctx->index - 1) / FULL_BLOCK_SIZE) < BLOCKS_PER_CHUNK);
280 0 0 if (ctx->index >= ED2K_CHUNK_SIZE || (type & AICH_PROCESS_FINAL_BLOCK)) {
0 0 if (ctx->index >= ED2K_CHUNK_SIZE || (type & AICH_PROCESS_FINAL_BLOCK)) {
284 0 0 if (CT_INDEX(ctx->chunks_number) == 0) {
286 0 0 if (ctx->error) return;
288 0 0 assert(ctx->chunk_table != 0);
289 0 0 assert(ctx->block_hashes != 0);
295 0 0 if (!(type & AICH_PROCESS_FINAL_BLOCK) || ctx->chunks_number == 0) {
0 0 if (!(type & AICH_PROCESS_FINAL_BLOCK) || ctx->chunks_number == 0) {
301 0 0 if (ctx->chunks_number > 0) {
321 0 2 if (ctx->error) return;
323 2 0 while (size > 0) {
325 2 0 unsigned block_left = (left_in_chunk <= LAST_BLOCK_SIZE ? left_in_chunk :
327 0 2 assert(block_left > 0);
329 0 2 if (size >= block_left) {
345 0 2 assert(ctx->index < ED2K_CHUNK_SIZE);
360 2 0 if (ctx->chunks_number == 0 && ctx->block_hashes == NULL) {
2 0 if (ctx->chunks_number == 0 && ctx->block_hashes == NULL) {
361 0 2 assert(ctx->index < FULL_BLOCK_SIZE);
370 2 0 if (result) memcpy(result, hash, sha1_hash_size);
375 0 0 if ((ctx->index % FULL_BLOCK_SIZE) > 0) {
377 0 0 rhash_aich_process_block(ctx, ctx->block_hashes != NULL ?
382 0 0 if (ctx->chunks_number == 0) {
386 0 0 if (ctx->index > 0) {
390 0 0 assert(ctx->chunks_number > 0);
391 0 0 assert(ctx->block_hashes != NULL);
398 0 0 if (result) memcpy(result, hash, sha1_hash_size);