Branch Coverage

lib/JSON/JQ.xs
Criterion Covered Total %
branch 121 288 42.0


line true false branch
28 0 542 if (arg == NULL) {
32 0 542 SvGETMAGIC(p_sv);
33 540 2 if (SvTYPE(p_sv) == SVt_NULL || (SvTYPE(p_sv) < SVt_PVAV && !SvOK(p_sv))) {
540 0 if (SvTYPE(p_sv) == SVt_NULL || (SvTYPE(p_sv) < SVt_PVAV && !SvOK(p_sv))) {
6 534 if (SvTYPE(p_sv) == SVt_NULL || (SvTYPE(p_sv) < SVt_PVAV && !SvOK(p_sv))) {
6 0 if (SvTYPE(p_sv) == SVt_NULL || (SvTYPE(p_sv) < SVt_PVAV && !SvOK(p_sv))) {
6 0 if (SvTYPE(p_sv) == SVt_NULL || (SvTYPE(p_sv) < SVt_PVAV && !SvOK(p_sv))) {
37 182 352 else if (SvROK(p_sv) && SvTYPE(SvRV(p_sv)) == SVt_IV) {
2 180 else if (SvROK(p_sv) && SvTYPE(SvRV(p_sv)) == SVt_IV) {
40 2 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 2 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 2 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 2 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
2 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
2 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
1 1 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 1 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
1 1 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
42 180 352 else if (SvROK(p_sv) && sv_derived_from(p_sv, "JSON::PP::Boolean")) {
15 165 else if (SvROK(p_sv) && sv_derived_from(p_sv, "JSON::PP::Boolean")) {
44 15 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 15 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 15 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 15 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
15 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
15 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
7 8 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 7 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
8 7 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
0 0 return jv_bool((bool)SvTRUE(SvRV(p_sv)));
46 33 484 else if (SvIOK(p_sv)) {
48 33 0 return jv_number(SvIV(p_sv));
50 0 484 else if (SvUOK(p_sv)) {
52 0 0 return jv_number(SvUV(p_sv));
54 6 478 else if (SvNOK(p_sv)) {
56 6 0 return jv_number(SvNV(p_sv));
58 313 165 else if (SvPOK(p_sv)) {
61 0 313 char * p_pv = SvUTF8(p_sv) ? SvPVutf8(p_sv, len) : SvPV(p_sv, len);
0 0 char * p_pv = SvUTF8(p_sv) ? SvPVutf8(p_sv, len) : SvPV(p_sv, len);
313 0 char * p_pv = SvUTF8(p_sv) ? SvPVutf8(p_sv, len) : SvPV(p_sv, len);
65 165 0 else if (SvROK(p_sv) && SvTYPE(SvRV(p_sv)) == SVt_PVAV) {
76 89 else if (SvROK(p_sv) && SvTYPE(SvRV(p_sv)) == SVt_PVAV) {
70 75 1 if (len < 0) {
74 215 75 for (i = 0; i <= len; i++) {
79 89 0 else if (SvROK(p_sv) && SvTYPE(SvRV(p_sv)) == SVt_PVHV) {
89 0 else if (SvROK(p_sv) && SvTYPE(SvRV(p_sv)) == SVt_PVHV) {
85 63 89 for (i = 0; i < len; i++) {
102 6 129 if (kind == JV_KIND_NULL) {
106 4 125 else if (kind == JV_KIND_FALSE) {
113 7 118 else if (kind == JV_KIND_TRUE) {
119 39 79 else if (kind == JV_KIND_NUMBER) {
123 34 5 if (jv_is_integer(jval)) {
131 44 35 else if (kind == JV_KIND_STRING) {
138 13 22 else if (kind == JV_KIND_ARRAY) {
144 28 13 for (i = 0; i < len; i++) {
151 22 0 else if (kind == JV_KIND_OBJECT) {
155 37 22 while (jv_object_iter_valid(jval, iter)) {
158 0 37 if (jv_get_kind(key) != JV_KIND_STRING) {
192 0 162 if (!sv_isa(self, "JSON::JQ")) {
199 0 0 if (strncmp(p, "#!", sizeof("#!") - 1) != 0)
202 0 0 if (n == NULL || n[1] != '#')
0 0 if (n == NULL || n[1] != '#')
205 0 0 if (n == NULL || n[1] == '#' || n[1] == '\0' || n[-1] != '\\' || n[-2] == '\\')
0 0 if (n == NULL || n[1] == '#' || n[1] == '\0' || n[-1] != '\\' || n[-2] == '\\')
0 0 if (n == NULL || n[1] == '#' || n[1] == '\0' || n[-1] != '\\' || n[-2] == '\\')
0 0 if (n == NULL || n[1] == '#' || n[1] == '\0' || n[-1] != '\\' || n[-2] == '\\')
0 0 if (n == NULL || n[1] == '#' || n[1] == '\0' || n[-1] != '\\' || n[-2] == '\\')
208 0 0 if (n == NULL)
221 51 0 RETVAL = JV_PRINT_INDENT_FLAGS(n);
51 0 RETVAL = JV_PRINT_INDENT_FLAGS(n);
239 0 51 if (_jq == NULL) {
251 51 0 int dumpopts = (int)SvIV(*hv_fetchs(self, "_dumpopts", 0));
257 153 51 for (i = 0; i < len; i++) {
267 0 51 if (hv_exists(self, "script_file", 11)) {
268 0 0 jv data = jv_load_file(SvPV_nolen(*hv_fetchs(self, "script_file", 0)), 1);
269 0 0 if (!jv_is_valid(data)) {
279 51 0 script = SvPV_nolen(*hv_fetchs(self, "script", 0));
283 50 1 if (compiled) {
284 50 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 50 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 50 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 50 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
50 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
50 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
50 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 50 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
0 50 if (SvTRUE(get_sv("JSON::JQ::DUMP_DISASM", 0))) {
309 60 0 _jq = INT2PTR(jq_state *, SvIV(sv_jq));
311 60 0 int jq_flags = (int)SvIV(*hv_fetchs(self, "jq_flags", 0));
319 70 60 while (jv_is_valid(result = jq_next(_jq))) {
321 70 0 if (jv_get_kind(result) == JV_KIND_FALSE || jv_get_kind(result) == JV_KIND_NULL) {
4 66 if (jv_get_kind(result) == JV_KIND_FALSE || jv_get_kind(result) == JV_KIND_NULL) {
329 0 60 if (jq_halted(_jq)) {
332 0 0 if (!jv_get_kind(exit_code)) {
335 0 0 else if (jv_get_kind(exit_code) == JV_KIND_NUMBER) {
343 0 0 if (jv_get_kind(error_message) == JV_KIND_STRING) {
346 0 0 else if (jv_get_kind(error_message) == JV_KIND_NULL) {
349 0 0 else if (jv_is_valid(error_message)) {
358 0 60 else if (jv_invalid_has_msg(jv_copy(result))) {
362 0 0 if (jv_get_kind(msg) == JV_KIND_STRING) {
389 51 0 _jq = INT2PTR(jq_state *, SvIV(sv_jq));
390 51 0 if (_jq != NULL) {
391 51 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 51 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 51 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 51 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
51 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
51 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
51 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 51 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 0 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {
0 51 if (SvTRUE(get_sv("JSON::JQ::DEBUG", 0))) {