Branch Coverage

XS.xs
Criterion Covered Total %
branch 115 170 67.6


line true false branch
71 16 0 SvUPGRADE(ret, SVt_PV);
130 0 2 PUSHMARK(SP);
131 0 2 EXTEND(SP, 1);
152 0 0 PUSHMARK(SP);
153 0 0 EXTEND(SP, 1);
165 0 0 if (count > 0) {
173 0 0 FREETMPS;
182 0 0 for (unsigned i=0; i<=stack_idx; i++) {
193 0 29 return INT2PTR(toml_table_t*, SvUV(referent));
198 0 130 return INT2PTR(toml_timestamp_t*, SvUV(referent));
215 16 36 if (!key) break;
219 3 33 if (NULL == sv) {
223 1 2 ERR_PATH_UNSHIFT(err_path_ptr, piece);
246 31 7 for (i = 0; i
249 2 29 if (NULL == sv) {
251 1 1 ERR_PATH_UNSHIFT(err_path_ptr, newSViv(i));
265 6 30 if (0 != (arr = toml_array_in(curtab, key))) {
269 8 22 if (0 != (tab = toml_table_in(curtab, key))) {
276 8 14 RETURN_IF_DATUM_IS_STRING(d);
279 3 11 RETURN_IF_DATUM_IS_BOOLEAN(d);
1 2 RETURN_IF_DATUM_IS_BOOLEAN(d);
282 2 9 RETURN_IF_DATUM_IS_INTEGER(d);
285 4 5 RETURN_IF_DATUM_IS_DOUBLE(d);
288 4 1 RETURN_IF_DATUM_IS_TIMESTAMP(d);
300 2 29 if (0 != (arr = toml_array_at(curarr, i))) {
304 4 25 if (0 != (tab = toml_table_at(curarr, i))) {
311 5 20 RETURN_IF_DATUM_IS_STRING(d);
314 6 14 RETURN_IF_DATUM_IS_BOOLEAN(d);
3 3 RETURN_IF_DATUM_IS_BOOLEAN(d);
317 6 8 RETURN_IF_DATUM_IS_INTEGER(d);
320 4 4 RETURN_IF_DATUM_IS_DOUBLE(d);
323 3 1 RETURN_IF_DATUM_IS_TIMESTAMP(d);
366 0 17 if (stack_idx != drill_len-1) {
382 0 0 if (!key) break;
384 0 0 if (strEQ(key, keystr)) return true;
395 0 41 if (!SvOK(key_sv)) {
0 0 if (!SvOK(key_sv)) {
0 0 if (!SvOK(key_sv)) {
399 29 12 char* key = SvPVutf8_nolen(key_sv);
403 21 20 if (tab) {
404 1 20 if (stack_idx == drill_len-1) {
416 15 5 if (arr) {
417 1 14 if (stack_idx == drill_len-1) {
431 1 4 if (newent.entity.datum.ok) {
437 1 3 if (newent.entity.datum.ok) {
443 1 2 if (newent.entity.datum.ok) {
449 1 1 if (newent.entity.datum.ok) {
455 1 0 if (newent.entity.datum.ok) {
460 0 0 if (_table_has_key_sv(tabin, key)) {
481 0 14 if (SvUOK(key_sv)) {
482 0 0 i = SvUV(key_sv);
484 0 14 else if (!SvOK(key_sv)) {
0 0 else if (!SvOK(key_sv)) {
0 0 else if (!SvOK(key_sv)) {
490 7 7 if (my_grok_atoUV(SvPVbyte_nolen(key_sv), &idx_uv, NULL)) {
14 0 if (my_grok_atoUV(SvPVbyte_nolen(key_sv), &idx_uv, NULL)) {
502 2 12 if (tab) {
503 2 0 if (stack_idx == drill_len-1) {
515 0 12 if (arr) {
516 0 0 if (stack_idx == drill_len-1) {
530 2 10 if (newent.entity.datum.ok) {
536 4 6 if (newent.entity.datum.ok) {
542 2 4 if (newent.entity.datum.ok) {
548 2 2 if (newent.entity.datum.ok) {
554 2 0 if (newent.entity.datum.ok) {
561 0 0 if (i >= arraylen) {
586 8 0 char* tomlstr = SvPVbyte(tomlsv, tomllen);
588 1 7 _verify_no_null(tomlstr, tomllen);
590 1 6 _verify_valid_utf8(tomlstr, tomllen);
594 2 4 if (tab == NULL) croak("%s", errbuf);
616 21 4 if (items > 1) {
636 2 3 RETVAL = _datum_boolean_to_sv(root_entity.entity.datum);
659 2 23 if (NULL == RETVAL) {
690 10 0 if (NULL != ts->year) {
698 10 0 if (NULL != ts->hour) {
705 1 9 if (NULL != ts->millisec) {
714 10 0 if (NULL != ts->z) {
725 10 0 RETVAL = ts->year ? newSViv(*ts->year) : &PL_sv_undef;
734 10 0 RETVAL = ts->month ? newSViv(*ts->month) : &PL_sv_undef;
746 20 0 RETVAL = ts->day ? newSViv(*ts->day) : &PL_sv_undef;
758 20 0 RETVAL = ts->hour ? newSViv(*ts->hour) : &PL_sv_undef;
770 10 0 RETVAL = ts->minute ? newSViv(*ts->minute) : &PL_sv_undef;
782 10 0 RETVAL = ts->second ? newSViv(*ts->second) : &PL_sv_undef;
794 2 18 RETVAL = ts->millisec ? newSViv(*ts->millisec) : &PL_sv_undef;
803 10 0 RETVAL = ts->z ? newSVpv(ts->z, 0) : &PL_sv_undef;