Branch Coverage

pollfd_rbhash.c
Criterion Covered Total %
branch 5 336 1.4


line true false branch
40 0 0 POLLFD_RBHASH_ASSERT(capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16);
57 57 0 if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_8) {
59 57 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd))
0 57 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd))
62 0 0 else if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16) {
64 0 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd))
0 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd))
68 0 0 POLLFD_RBHASH_ASSERT(capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16);
86 0 0 POLLFD_RBHASH_ASSERT(p_lim > 0);
87 0 0 if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_8) {
91 0 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd)) {
0 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd)) {
94 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
99 0 0 else if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16) {
103 0 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd)) {
0 0 while (node_id && (cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd)) {
106 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
112 0 0 POLLFD_RBHASH_ASSERT(capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16);
129 122 0 if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_8) {
132 122 0 if (!node_id) {
142 0 0 if (!(cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd))
146 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
149 0 0 } while (node_id);
152 0 0 if (!(rbhash_w[path.refs[p_i-1]] & 1)) {
160 0 0 else if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16) {
163 0 0 if (!node_id) {
173 0 0 if (!(cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd))
177 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
180 0 0 } while (node_id);
183 0 0 if (!(rbhash_w[path.refs[p_i-1]] & 1)) {
191 0 0 POLLFD_RBHASH_ASSERT(capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16);
206 0 0 if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_8) {
208 0 0 if ((cur= rbhash_w[ref])) {
215 0 0 while ((cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd)) {
219 0 0 if (!cur)
222 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
229 0 0 else if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16) {
231 0 0 if ((cur= rbhash_w[ref])) {
238 0 0 while ((cmp= search_fd - ((struct pollfd*)rbhash)[(int)node_id-1-(int)capacity].fd)) {
242 0 0 if (!cur)
245 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
252 0 0 POLLFD_RBHASH_ASSERT(capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16);
273 0 0 POLLFD_RBHASH_ASSERT(path->len > 0 && new_node_id);
0 0 POLLFD_RBHASH_ASSERT(path->len > 0 && new_node_id);
274 0 0 if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_8) {
277 0 0 POLLFD_RBHASH_ASSERT(((uint16_t*) rbhash)[new_node_id] == 0);
287 0 0 else if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16) {
290 0 0 POLLFD_RBHASH_ASSERT(((uint32_t*) rbhash)[new_node_id] == 0);
300 0 0 POLLFD_RBHASH_ASSERT(capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16);
338 0 0 POLLFD_RBHASH_ASSERT(path->len > 0 && rbhash[path->refs[p_i]] == 0);
0 0 POLLFD_RBHASH_ASSERT(path->len > 0 && rbhash[path->refs[p_i]] == 0);
343 0 0 while (p_i > 0) {
348 0 0 if (!(pos & 1))
353 0 0 if (!(rbhash[pos_ref^1]&1)) {
361 0 0 if (child&1) {
389 0 0 if (rbhash[path->refs[0]] & 1)
421 0 0 POLLFD_RBHASH_ASSERT(path->len > 0 && rbhash[path->refs[p_i]] == 0);
0 0 POLLFD_RBHASH_ASSERT(path->len > 0 && rbhash[path->refs[p_i]] == 0);
426 0 0 while (p_i > 0) {
431 0 0 if (!(pos & 1))
436 0 0 if (!(rbhash[pos_ref^1]&1)) {
444 0 0 if (child&1) {
472 0 0 if (rbhash[path->refs[0]] & 1)
501 0 0 POLLFD_RBHASH_ASSERT(path->len >= 1);
506 0 0 POLLFD_RBHASH_ASSERT(pos != 0);
512 0 0 if (ch1 || ch2) {
0 0 if (ch1 || ch2) {
513 0 0 if (ch1 && ch2) {
0 0 if (ch1 && ch2) {
520 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
524 0 0 while ((alt= rbhash[ref= alt | 1])) {
526 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
532 0 0 if ((alt2= rbhash[(alt >> 1 << 1)])) {
533 0 0 POLLFD_RBHASH_ASSERT(alt2 & 1);
564 0 0 if (!(pos & 1)) {
573 0 0 while (p_i >= 0) {
581 0 0 if (sibling & 1) {
591 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
601 0 0 if (!((near_nephew|rbhash[near_nephew_ref ^ 1]) & 1)) {
602 0 0 POLLFD_RBHASH_ASSERT(sibling > 1);
605 0 0 if (p_i < 1)
608 0 0 if (rbhash[pos_ref] & 1) {
627 0 0 if (near_nephew & 1) {
639 0 0 POLLFD_RBHASH_ASSERT(sibling > 1);
651 0 0 if (rbhash[parent_refs[0]] & 1)
667 0 0 POLLFD_RBHASH_ASSERT(path->len >= 1);
672 0 0 POLLFD_RBHASH_ASSERT(pos != 0);
678 0 0 if (ch1 || ch2) {
0 0 if (ch1 || ch2) {
679 0 0 if (ch1 && ch2) {
0 0 if (ch1 && ch2) {
686 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
690 0 0 while ((alt= rbhash[ref= alt | 1])) {
692 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
698 0 0 if ((alt2= rbhash[(alt >> 1 << 1)])) {
699 0 0 POLLFD_RBHASH_ASSERT(alt2 & 1);
730 0 0 if (!(pos & 1)) {
739 0 0 while (p_i >= 0) {
747 0 0 if (sibling & 1) {
757 0 0 POLLFD_RBHASH_ASSERT(p_i < p_lim);
767 0 0 if (!((near_nephew|rbhash[near_nephew_ref ^ 1]) & 1)) {
768 0 0 POLLFD_RBHASH_ASSERT(sibling > 1);
771 0 0 if (p_i < 1)
774 0 0 if (rbhash[pos_ref] & 1) {
793 0 0 if (near_nephew & 1) {
805 0 0 POLLFD_RBHASH_ASSERT(sibling > 1);
817 0 0 if (rbhash[parent_refs[0]] & 1)
836 0 0 if (!node) {
842 0 0 while (node && pos) {
0 0 while (node && pos) {
847 0 0 for (i= 1; i < pos; i++)
848 0 0 if ((node_path[i]>>1) == (node_path[pos]>>1))
852 0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_8
0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_8
853 0 0 && node <= max_node && rbhash[(node<<1)|1]
0 0 && node <= max_node && rbhash[(node<<1)|1]
861 0 0 for (i= 2; i < pos; i++)
862 0 0 fputs((node_path[i]&1) == (node_path[i+1]&1)? " " : " |", out);
863 0 0 if (pos > 1)
864 0 0 fputs((node_path[pos]&1)? " `" : " ,", out);
867 0 0 fprintf(out, "--%c%c%c #%ld%s ",
0 0 fprintf(out, "--%c%c%c #%ld%s ",
0 0 fprintf(out, "--%c%c%c #%ld%s ",
0 0 fprintf(out, "--%c%c%c #%ld%s ",
869 0 0 (node > max_node? '!' : (rbhash[ (node_path[pos-1]|1) ^ (node_path[pos]&1) ]&1)? 'R':'B'),
874 0 0 : node > max_node? " VALUE OUT OF BOUNDS"
875 0 0 : ""
877 0 0 if (print_node) print_node(userdata, node, out);
882 0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_8
0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_8
883 0 0 && node <= max_node && rbhash[node<<1]
0 0 && node <= max_node && rbhash[node<<1]
908 0 0 if (!node) {
914 0 0 while (node && pos) {
0 0 while (node && pos) {
919 0 0 for (i= 1; i < pos; i++)
920 0 0 if ((node_path[i]>>1) == (node_path[pos]>>1))
924 0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_16
0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_16
925 0 0 && node <= max_node && rbhash[(node<<1)|1]
0 0 && node <= max_node && rbhash[(node<<1)|1]
933 0 0 for (i= 2; i < pos; i++)
934 0 0 fputs((node_path[i]&1) == (node_path[i+1]&1)? " " : " |", out);
935 0 0 if (pos > 1)
936 0 0 fputs((node_path[pos]&1)? " `" : " ,", out);
939 0 0 fprintf(out, "--%c%c%c #%ld%s ",
0 0 fprintf(out, "--%c%c%c #%ld%s ",
0 0 fprintf(out, "--%c%c%c #%ld%s ",
0 0 fprintf(out, "--%c%c%c #%ld%s ",
941 0 0 (node > max_node? '!' : (rbhash[ (node_path[pos-1]|1) ^ (node_path[pos]&1) ]&1)? 'R':'B'),
946 0 0 : node > max_node? " VALUE OUT OF BOUNDS"
947 0 0 : ""
949 0 0 if (print_node) print_node(userdata, node, out);
954 0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_16
0 0 if (!cycle && pos < POLLFD_RBHASH_MAX_TREE_HEIGHT_16
955 0 0 && node <= max_node && rbhash[node<<1]
0 0 && node <= max_node && rbhash[node<<1]
979 0 0 (long) capacity, (long) n_buckets, (long) POLLFD_RBHASH_SIZEOF(capacity, n_buckets));
980 0 0 if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_8) {
983 0 0 for (i= 0; i < n_buckets; i++) {
984 0 0 if (table[i]) {
985 0 0 if (empty) {
994 0 0 if (empty) {
999 0 0 else if (capacity <= POLLFD_RBHASH_MAX_ELEMENTS_16) {
1002 0 0 for (i= 0; i < n_buckets; i++) {
1003 0 0 if (table[i]) {
1004 0 0 if (empty) {
1013 0 0 if (empty) {