Branch Coverage

XS.xs
Criterion Covered Total %
branch 235 292 80.4


line true false branch
18 583 787 if (ch == ' ') return 1;
19 6 781 if (ch == '\t') return 1;
23 22 759 if (ch == '\n') return 1;
24 2 757 if (ch == '\r') return 1;
25 0 757 if (ch == '\f') return 1;
29 781 589 return charIsSpace(ch) || charIsEndspace(ch);
24 757 return charIsSpace(ch) || charIsEndspace(ch);
32 14 5 if ((ch >= '0') && (ch <= '9')) return 1;
8 6 if ((ch >= '0') && (ch <= '9')) return 1;
36 982 613 if ((ch >= 'a') && (ch <= 'z')) return 1;
869 113 if ((ch >= 'a') && (ch <= 'z')) return 1;
37 115 611 if ((ch >= 'A') && (ch <= 'Z')) return 1;
2 113 if ((ch >= 'A') && (ch <= 'Z')) return 1;
38 450 274 if ((ch >= '0') && (ch <= '9')) return 1;
196 254 if ((ch >= '0') && (ch <= '9')) return 1;
39 0 528 if (ch == '_') return 1;
40 35 493 if (ch == '.') return 1;
41 5 488 if (ch == '#') return 1;
42 6 482 if (ch == '@') return 1;
43 12 470 if (ch == '%') return 1;
48 282 406 if (ch == '{') return 1;
49 203 203 if (ch == '}') return 1;
50 35 168 if (ch == ';') return 1;
51 9 159 if (ch == ',') return 1;
52 5 154 if (ch == '~') return 1;
53 5 149 if (ch == '>') return 1;
58 20 468 if (ch == '(') return 1; /* requires leading WS when used in @media */
59 112 356 if (ch == ':') return 1; /* requires leading WS when used in pseudo-selector */
64 23 332 if (ch == ')') return 1; /* requires trailing WS for MSIE */
128 0 1 if (len != node->length)
142 1 7 if (len > node->length)
146 13 0 while (haystack && *haystack) {
13 0 while (haystack && *haystack) {
150 0 13 if (haystack == NULL)
153 3 10 if ((haystack+len) > endofhay)
156 4 6 if (strncasecmp(haystack, string, len) == 0)
171 0 0 if (len > node->length)
181 0 10 if (len > node->length)
204 0 151 if (!node) return 0;
207 1 150 if (!nodeIsCHAR(node,'!')) return 0;
0 1 if (!nodeIsCHAR(node,'!')) return 0;
211 1 0 while (next && nodeIsWHITESPACE(next)) {
0 1 while (next && nodeIsWHITESPACE(next)) {
214 0 1 if (!next) return 0;
217 0 1 if (!nodeIsIDENTIFIER(next)) return 0;
218 1 0 if (nodeEquals(next, "important")) return 1;
232 0 769 if (set->next_node >= NODE_SET_SIZE) {
263 255 6 if (node->prev)
265 259 2 if (node->next)
271 0 715 if (element->next)
291 20 0 while (offset < doc->length) {
292 0 20 if (buf[offset] == '\\') {
296 1 19 else if (buf[offset] == delimiter) {
319 125 0 while (offset < doc->length) {
320 10 115 if (buf[offset] == '*') {
321 10 0 if (buf[offset+1] == '/') {
340 612 1 while ((offset < doc->length) && charIsWhitespace(buf[offset]))
325 287 while ((offset < doc->length) && charIsWhitespace(buf[offset]))
350 1125 0 while ((offset < doc->length) && charIsIdentifier(buf[offset]))
901 224 while ((offset < doc->length) && charIsIdentifier(buf[offset]))
365 769 54 while ((doc->offset < doc->length) && (doc->buffer[doc->offset])) {
769 0 while ((doc->offset < doc->length) && (doc->buffer[doc->offset])) {
368 54 715 if (!doc->head)
370 54 715 if (!doc->tail)
374 11 758 if ((doc->buffer[doc->offset] == '/') && (doc->buffer[doc->offset+1] == '*'))
10 1 if ((doc->buffer[doc->offset] == '/') && (doc->buffer[doc->offset+1] == '*'))
376 759 0 else if ((doc->buffer[doc->offset] == '"') || (doc->buffer[doc->offset] == '\''))
1 758 else if ((doc->buffer[doc->offset] == '"') || (doc->buffer[doc->offset] == '\''))
378 288 470 else if (charIsWhitespace(doc->buffer[doc->offset]))
380 224 246 else if (charIsIdentifier(doc->buffer[doc->offset]))
389 715 54 if (node != doc->tail)
409 39 28 while (*str == '0') { str ++; }
413 19 9 if (*str == '.') {
415 35 19 while (*str == '0') { str ++; }
416 8 11 if (charIsNumeric(*str)) {
430 0 8 if (0 == strncmp(str, "em", 2)) { return 1; }
431 0 8 if (0 == strncmp(str, "ex", 2)) { return 1; }
432 0 8 if (0 == strncmp(str, "ch", 2)) { return 1; }
433 0 8 if (0 == strncmp(str, "rem", 3)) { return 1; }
434 0 8 if (0 == strncmp(str, "vw", 2)) { return 1; }
435 0 8 if (0 == strncmp(str, "vh", 2)) { return 1; }
436 0 8 if (0 == strncmp(str, "vmin", 3)) { return 1; }
437 0 8 if (0 == strncmp(str, "vmax", 3)) { return 1; }
438 0 8 if (0 == strncmp(str, "cm", 2)) { return 1; }
439 0 8 if (0 == strncmp(str, "mm", 2)) { return 1; }
440 0 8 if (0 == strncmp(str, "in", 2)) { return 1; }
441 5 3 if (0 == strncmp(str, "px", 2)) { return 1; }
442 0 3 if (0 == strncmp(str, "pt", 2)) { return 1; }
443 0 3 if (0 == strncmp(str, "pc", 2)) { return 1; }
444 0 3 if (0 == strncmp(str, "%", 1)) { return 1; }
454 769 54 while (curr) {
462 7 3 if (!inMacIeCommentHack && nodeIsMACIECOMMENTHACK(curr)) {
7 0 if (!inMacIeCommentHack && nodeIsMACIECOMMENTHACK(curr)) {
2 5 if (!inMacIeCommentHack && nodeIsMACIECOMMENTHACK(curr)) {
468 3 5 else if (inMacIeCommentHack && !nodeIsMACIECOMMENTHACK(curr)) {
3 0 else if (inMacIeCommentHack && !nodeIsMACIECOMMENTHACK(curr)) {
2 1 else if (inMacIeCommentHack && !nodeIsMACIECOMMENTHACK(curr)) {
479 204 20 if ( (*ptr != '0') && (*ptr != '.' )) {
195 9 if ( (*ptr != '0') && (*ptr != '.' )) {
483 9 20 if ( (*ptr == '.') && (*(ptr+1) != '0') ) {
1 8 if ( (*ptr == '.') && (*(ptr+1) != '0') ) {
492 4 24 if (ptr == curr->contents) {
498 5 19 if (skipped == curr->length) {
505 5 14 if (*ptr == '%') {
515 8 6 if (!inFunction && CssIsKnownUnit(ptr)) {
5 3 if (!inFunction && CssIsKnownUnit(ptr)) {
523 5 4 if (*ptr != '.') { ptr --; }
525 8 1 if (ptr != curr->contents) {
533 17 229 if (nodeIsCHAR(curr,'(')) { inFunction = 1; }
17 0 if (nodeIsCHAR(curr,'(')) { inFunction = 1; }
534 17 229 if (nodeIsCHAR(curr,')')) { inFunction = 0; }
17 0 if (nodeIsCHAR(curr,')')) { inFunction = 0; }
558 6 885 if (!node->can_prune)
567 155 0 if (next && nodeIsBLOCKCOMMENT(next))
0 155 if (next && nodeIsBLOCKCOMMENT(next))
570 152 3 if (prev && nodeIsBLOCKCOMMENT(prev))
4 148 if (prev && nodeIsBLOCKCOMMENT(prev))
573 151 0 if (next && nodeStartsBANGIMPORTANT(next)) {
1 150 if (next && nodeStartsBANGIMPORTANT(next)) {
577 3 147 if (!prev)
580 0 147 if (!next)
586 4 4 if (nodeContains(node,"copyright"))
598 488 0 if (nodeIsPREFIXSIGIL(node) && next && nodeIsWHITESPACE(next))
439 49 if (nodeIsPREFIXSIGIL(node) && next && nodeIsWHITESPACE(next))
348 91 if (nodeIsPREFIXSIGIL(node) && next && nodeIsWHITESPACE(next))
133 215 if (nodeIsPREFIXSIGIL(node) && next && nodeIsWHITESPACE(next))
601 355 0 if (nodeIsPOSTFIXSIGIL(node) && prev && nodeIsWHITESPACE(prev))
255 100 if (nodeIsPOSTFIXSIGIL(node) && prev && nodeIsWHITESPACE(prev))
255 0 if (nodeIsPOSTFIXSIGIL(node) && prev && nodeIsWHITESPACE(prev))
107 148 if (nodeIsPOSTFIXSIGIL(node) && prev && nodeIsWHITESPACE(prev))
604 12 236 if (nodeIsCHAR(node,';') && next && nodeIsSIGIL(next) && nodeIsCHAR(next,'}'))
12 0 if (nodeIsCHAR(node,';') && next && nodeIsSIGIL(next) && nodeIsCHAR(next,'}'))
12 0 if (nodeIsCHAR(node,';') && next && nodeIsSIGIL(next) && nodeIsCHAR(next,'}'))
9 3 if (nodeIsCHAR(node,';') && next && nodeIsSIGIL(next) && nodeIsCHAR(next,'}'))
9 0 if (nodeIsCHAR(node,';') && next && nodeIsSIGIL(next) && nodeIsCHAR(next,'}'))
9 0 if (nodeIsCHAR(node,';') && next && nodeIsSIGIL(next) && nodeIsCHAR(next,'}'))
616 891 54 while (curr) {
627 0 107 if (prev == head)
634 6 15 if (curr == head)
635 0 6 head = prev ? prev : next;
637 15 6 curr = prev ? prev : next;
675 0 54 if (!head) return NULL;
680 1 53 if (!head) return NULL;
692 508 53 while (curr) {
702 53 53 while (curr) {
728 53 1 if (buffer != NULL) {