Branch Coverage

secret_buffer_charset.c
Criterion Covered Total %
branch 110 160 68.7


line true false branch
28 197 0 if (mg->mg_ptr) {
76 26 10 if (cp <= 0x80)
79 4 6 if (cset->unicode_above_7F == SECRET_BUFFER_CHARSET_TESTUNI) {
81 0 4 if (!cset->rx) return false;
148 199 0 if (pos < lim && lim[-1] == '+') {
107 92 if (pos < lim && lim[-1] == '+') {
152 199 0 if (pos >= lim || *pos != '[' || lim[-1] != ']')
199 0 if (pos >= lim || *pos != '[' || lim[-1] != ']')
0 199 if (pos >= lim || *pos != '[' || lim[-1] != ']')
157 199 0 if (pos < lim && *pos == '^') {
58 141 if (pos < lim && *pos == '^') {
162 199 0 if (pos < lim && *pos == ']') {
12 187 if (pos < lim && *pos == ']') {
167 546 0 while (pos < lim && *pos != ']') {
363 183 while (pos < lim && *pos != ']') {
172 1 362 if (c >= 0x80)
175 123 239 else if (c == '\\') {
176 0 123 if (pos >= lim) return false;
191 0 0 if (pos + 1 >= lim || !(*pos >= '0' && *pos <= '7'))
0 0 if (pos + 1 >= lim || !(*pos >= '0' && *pos <= '7'))
0 0 if (pos + 1 >= lim || !(*pos >= '0' && *pos <= '7'))
197 6 0 if (pos < lim && *pos >= '0' && *pos <= '7')
3 3 if (pos < lim && *pos >= '0' && *pos <= '7')
2 1 if (pos < lim && *pos >= '0' && *pos <= '7')
199 6 0 if (pos < lim && *pos >= '0' && *pos <= '7')
3 3 if (pos < lim && *pos >= '0' && *pos <= '7')
1 2 if (pos < lim && *pos >= '0' && *pos <= '7')
201 1 5 if (c > 0xFF)
205 0 11 if (pos+1 >= lim) return false;
206 11 0 high= HEXCHAR_TO_INT(pos[0]);
5 6 high= HEXCHAR_TO_INT(pos[0]);
6 0 high= HEXCHAR_TO_INT(pos[0]);
2 4 high= HEXCHAR_TO_INT(pos[0]);
4 0 high= HEXCHAR_TO_INT(pos[0]);
0 4 high= HEXCHAR_TO_INT(pos[0]);
207 11 0 low= HEXCHAR_TO_INT(pos[1]);
6 5 low= HEXCHAR_TO_INT(pos[1]);
5 0 low= HEXCHAR_TO_INT(pos[1]);
5 0 low= HEXCHAR_TO_INT(pos[1]);
0 0 low= HEXCHAR_TO_INT(pos[1]);
0 0 low= HEXCHAR_TO_INT(pos[1]);
208 7 4 if (high < 0 || low < 0) return false;
0 7 if (high < 0 || low < 0) return false;
218 3 236 else if (c == '[' && pos < lim && *pos == ':')
3 0 else if (c == '[' && pos < lim && *pos == ':')
3 0 else if (c == '[' && pos < lim && *pos == ':')
222 186 50 else if ((c == ' ' || c == '\t') && flag_xx)
0 186 else if ((c == ' ' || c == '\t') && flag_xx)
2 48 else if ((c == ' ' || c == '\t') && flag_xx)
225 48 297 if (range_start >= 0) {
226 0 48 if (c < range_start) /* Invalid range */
228 0 48 if (c > 0xFF)
230 918 48 while (range_start <= c)
234 147 150 else if (pos + 1 < lim && *pos == '-' && pos[1] != ']') {
48 99 else if (pos + 1 < lim && *pos == '-' && pos[1] != ']') {
48 0 else if (pos + 1 < lim && *pos == '-' && pos[1] != ']') {
238 248 1 else if (c < 0xFF) {
242 0 183 if (pos+1 != lim) // regex did not end at ']', give up
245 2 181 if (flag_i) {
247 0 2 if (bitmap[2] | bitmap[3])
255 183 0 if (bitmap[2] || bitmap[3])
2 181 if (bitmap[2] || bitmap[3])
258 57 126 if (negated) {
260 228 57 for (i = 0; i < 4; i++)
262 57 0 if (cset->unicode_above_7F == SECRET_BUFFER_CHARSET_NOUNI)
276 4096 16 for (c= 0; c < 256; c++) {
280 889 3207 if (result > 0)
297 199 0 return pat_len >= 3 && pattern[0] == '[' && (
199 0 return pat_len >= 3 && pattern[0] == '[' && (
298 107 92 pattern[pat_len-1] == ']'
299 107 0 || (pattern[pat_len-1] == '+' && pattern[pat_len-2] == ']')
107 0 || (pattern[pat_len-1] == '+' && pattern[pat_len-2] == ']')
312 360 0 if (!qr_ref || !(rx= (REGEXP*)SvRX(qr_ref)))
0 360 if (!qr_ref || !(rx= (REGEXP*)SvRX(qr_ref)))
316 161 199 if (SvMAGICAL(qr_ref)) {
318 161 0 if (mg && mg->mg_ptr) {
161 0 if (mg && mg->mg_ptr) {
325 0 199 if (!regex_is_single_charclass(rx))
332 16 183 if (!parse_simple_charclass(aTHX_ cset, qr_ref)) {
335 64 16 for (i= 0; i < sizeof(cset->bitmap)/sizeof(cset->bitmap[0]); i++)