Branch Coverage

libstemmer_c/runtime/utilities.c
Criterion Covered Total %
branch 75 238 31.5


line true false branch
15 2 0 if (mem == NULL) return NULL;
23 2 0 if (p == NULL) return;
37 0 104 if (n >= 0) {
38 104 88 for (; n > 0; n--) {
39 88 16 if (c >= l) return -1;
41 0 88 if (b >= 0xC0) { /* 1100 0000 */
42 0 0 while (c < l) {
44 0 0 if (b >= 0xC0 || b < 0x80) break;
51 0 0 for (; n < 0; n++) {
52 0 0 if (c <= lb) return -1;
54 0 0 if (b >= 0x80) { /* 1000 0000 */
55 0 0 while (c > lb) {
57 0 0 if (b >= 0xC0) break; /* 1100 0000 */
70 120 8 if (c >= l) return 0;
72 112 8 if (b0 < 0xC0 || c == l) { /* 1100 0000 */
76 8 0 if (b0 < 0xE0 || c == l) { /* 1110 0000 */
84 0 0 if (c <= lb) return 0;
86 0 0 if (b0 < 0x80 || c == lb) { /* 1000 0000 */
90 0 0 if (b1 >= 0xC0 || c == lb) { /* 1100 0000 */
100 40 8 unless (w) return -1;
101 40 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
40 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
16 24 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
104 16 0 } while (repeat);
112 0 0 unless (w) return -1;
113 0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
116 0 0 } while (repeat);
124 80 0 unless (w) return -1;
125 80 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
80 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
48 32 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
128 48 0 } while (repeat);
136 0 0 unless (w) return -1;
137 0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
140 0 0 } while (repeat);
149 0 0 if (z->c >= z->l) return -1;
151 0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
154 0 0 } while (repeat);
161 0 0 if (z->c <= z->lb) return -1;
163 0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 if (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
166 0 0 } while (repeat);
173 0 0 if (z->c >= z->l) return -1;
175 0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
178 0 0 } while (repeat);
185 0 0 if (z->c <= z->lb) return -1;
187 0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
0 0 unless (ch > max || (ch -= min) < 0 || (s[ch >> 3] & (0X1 << (ch & 0X7))) == 0)
190 0 0 } while (repeat);
195 0 0 if (z->l - z->c < s_size || memcmp(z->p + z->c, s, s_size * sizeof(symbol)) != 0) return 0;
0 0 if (z->l - z->c < s_size || memcmp(z->p + z->c, s, s_size * sizeof(symbol)) != 0) return 0;
200 0 0 if (z->c - z->lb < s_size || memcmp(z->p + z->c - s_size, s, s_size * sizeof(symbol)) != 0) return 0;
0 0 if (z->c - z->lb < s_size || memcmp(z->p + z->c - s_size, s, s_size * sizeof(symbol)) != 0) return 0;
233 64 8 int i2; for (i2 = common; i2 < w->s_size; i2++) {
234 64 0 if (c + common == l) { diff = -1; break; }
236 40 24 if (diff != 0) break;
240 32 0 if (diff < 0) { j = k; common_j = common; }
242 24 8 if (j - i <= 1) {
243 0 8 if (i > 0) break; /* v->s has been inspected */
244 0 0 if (j == i) break; /* only one item in v */
250 0 0 if (first_key_inspected) break;
256 8 0 if (common_i >= w->s_size) {
258 8 0 if (w->function == 0) return w->result;
262 0 0 if (res) return w->result;
266 0 0 if (i < 0) return 0;
293 640 8 int i2; for (i2 = w->s_size - 1 - common; i2 >= 0; i2--) {
294 632 8 if (c - common == lb) { diff = -1; break; }
296 232 400 if (diff != 0) break;
300 192 224 if (diff < 0) { j = k; common_j = common; }
302 344 72 if (j - i <= 1) {
303 16 56 if (i > 0) break;
304 16 0 if (j == i) break;
305 8 8 if (first_key_inspected) break;
311 16 80 if (common_i >= w->s_size) {
313 16 0 if (w->function == 0) return w->result;
317 0 0 if (res) return w->result;
321 32 48 if (i < 0) return 0;
334 0 1 if (mem == NULL) {
352 0 40 if (z->p == NULL) {
354 0 0 if (z->p == NULL) return -1;
358 40 0 if (adjustment != 0) {
359 1 39 if (adjustment + len > CAPACITY(z->p)) {
361 1 0 if (z->p == NULL) return -1;
368 9 31 if (z->c >= c_ket)
371 0 31 if (z->c > c_bra)
374 24 16 unless (s_size == 0) memmove(z->p + c_bra, s, s_size * sizeof(symbol));
375 0 40 if (adjptr != NULL)
382 0 0 if (z->bra < 0 ||
0 0 if (z->bra < 0 ||
24 0 if (z->bra < 0 ||
24 0 if (z->bra < 0 ||
383 0 0 z->bra > z->ket ||
24 0 z->bra > z->ket ||
384 0 0 z->ket > z->l ||
24 0 z->ket > z->l ||
385 0 0 z->p == NULL ||
24 0 z->p == NULL ||
398 24 0 if (slice_check(z)) return -1;
412 0 0 if (replace_s(z, bra, ket, s_size, s, &adjustment))
414 0 0 if (bra <= z->bra) z->bra += adjustment;
415 0 0 if (bra <= z->ket) z->ket += adjustment;
421 0 0 if (replace_s(z, bra, ket, SIZE(p), p, &adjustment))
423 0 0 if (bra <= z->bra) z->bra += adjustment;
424 0 0 if (bra <= z->ket) z->ket += adjustment;
429 0 0 if (slice_check(z)) {
435 0 0 if (CAPACITY(p) < len) {
437 0 0 if (p == NULL)
448 0 0 if (CAPACITY(p) < len) {
450 0 0 if (p == NULL)