Branch Coverage

c/common.c
Criterion Covered Total %
branch 60 80 75.0


line true false branch
28 0 0 PUSHMARK(SP);
29 0 0 mXPUSHs(sv);
33 0 0 FREETMPS;
52 0 17 PUSHMARK(SP);
53 0 17 mXPUSHs(sv);
87 224 822 size_t off = fustr_len(s);
91 1 1045 if (add > s->maxlen) croak("maximum string length exceeded");
93 1509 1045 while (newlen < add) newlen <<= 1;
94 0 1045 if (newlen > s->maxlen) newlen = s->maxlen;
95 224 821 if (s->sv) {
96 224 0 buf = SvGROW(s->sv, newlen);
224 0 buf = SvGROW(s->sv, newlen);
98 410 411 if (s->mortal) {
113 1046 4759862 if (UNLIKELY(s->end < s->cur + add)) fustr_grow(aTHX_ s, add);
138 821 4549 if (s->sv) {
142 4317 232 s->sv = newSVpvn_flags(s->sbuf, s->cur - s->sbuf, s->mortal ? SVs_TEMP : 0);
144 6 5364 if (s->setutf8) SvUTF8_on(s->sv);
182 72 0 return x >= '0' && x <= '9' ? x-'0' : x >= 'A' && x <= 'F' ? x-'A'+10 : x >= 'a' && x <= 'f' ? x-'a'+10 : 0x10000;
57 15 return x >= '0' && x <= '9' ? x-'0' : x >= 'A' && x <= 'F' ? x-'A'+10 : x >= 'a' && x <= 'f' ? x-'a'+10 : 0x10000;
15 0 return x >= '0' && x <= '9' ? x-'0' : x >= 'A' && x <= 'F' ? x-'A'+10 : x >= 'a' && x <= 'f' ? x-'a'+10 : 0x10000;
8 7 return x >= '0' && x <= '9' ? x-'0' : x >= 'A' && x <= 'F' ? x-'A'+10 : x >= 'a' && x <= 'f' ? x-'a'+10 : 0x10000;
7 0 return x >= '0' && x <= '9' ? x-'0' : x >= 'A' && x <= 'F' ? x-'A'+10 : x >= 'a' && x <= 'f' ? x-'a'+10 : 0x10000;
6 1 return x >= '0' && x <= '9' ? x-'0' : x >= 'A' && x <= 'F' ? x-'A'+10 : x >= 'a' && x <= 'f' ? x-'a'+10 : 0x10000;
189 21 5855 if (SvIsBOOL(val)) return BOOL_INTERNALS_sv_isbool_true(val) ? 1 : 0;
21 0 if (SvIsBOOL(val)) return BOOL_INTERNALS_sv_isbool_true(val) ? 1 : 0;
13 8 if (SvIsBOOL(val)) return BOOL_INTERNALS_sv_isbool_true(val) ? 1 : 0;
190 4781 1074 if (!SvROK(val)) return -1;
193 14 1060 if (SvOBJECT(rv)) {
196 12 2 if (stash == gv_stashpvs("JSON::PP::Boolean", 0) /* Also covers Types::Serialiser::Boolean and used by a bunch of other modules */
197 10 2 || stash == gv_stashpvs("boolean", 0)
198 10 0 || stash == gv_stashpvs("Mojo::JSON::_Bool", 0)
199 0 10 || stash == gv_stashpvs("JSON::Tiny::_Bool", 0))
205 8 1052 if (SvTYPE(rv) < SVt_PVAV) {
206 6 2 if (SvIOK(rv)) {
208 5 1 return iv == 0 ? 0 : iv == 1 ? 1 : -1;
3 2 return iv == 0 ? 0 : iv == 1 ? 1 : -1;
209 2 0 } else if (SvOK(rv)) {
212 2 0 return len != 1 ? -1 : *str == '0' ? 0 : *str == '1' ? 1 : -1;
1 1 return len != 1 ? -1 : *str == '0' ? 0 : *str == '1' ? 1 : -1;
1 0 return len != 1 ? -1 : *str == '0' ? 0 : *str == '1' ? 1 : -1;