Branch Coverage

XS.xs
Criterion Covered Total %
branch 116 172 67.4


line true false branch
68 16 0 SvUPGRADE(ret, SVt_PV);
115 14 0 if (numtype == IS_NUMBER_IN_UV) return true;
138 0 2 PUSHMARK(SP);
139 0 2 EXTEND(SP, 1);
160 0 0 PUSHMARK(SP);
161 0 0 EXTEND(SP, 1);
173 0 0 if (count > 0) {
181 0 0 FREETMPS;
190 0 0 for (unsigned i=0; i<=stack_idx; i++) {
201 0 29 return INT2PTR(toml_table_t*, SvUV(referent));
206 0 130 return INT2PTR(toml_timestamp_t*, SvUV(referent));
223 16 36 if (!key) break;
227 3 33 if (NULL == sv) {
231 1 2 ERR_PATH_UNSHIFT(err_path_ptr, piece);
254 31 7 for (i = 0; i
257 2 29 if (NULL == sv) {
259 1 1 ERR_PATH_UNSHIFT(err_path_ptr, newSViv(i));
273 6 30 if (0 != (arr = toml_array_in(curtab, key))) {
277 8 22 if (0 != (tab = toml_table_in(curtab, key))) {
284 8 14 RETURN_IF_DATUM_IS_STRING(d);
287 3 11 RETURN_IF_DATUM_IS_BOOLEAN(d);
1 2 RETURN_IF_DATUM_IS_BOOLEAN(d);
290 2 9 RETURN_IF_DATUM_IS_INTEGER(d);
293 4 5 RETURN_IF_DATUM_IS_DOUBLE(d);
296 4 1 RETURN_IF_DATUM_IS_TIMESTAMP(d);
308 2 29 if (0 != (arr = toml_array_at(curarr, i))) {
312 4 25 if (0 != (tab = toml_table_at(curarr, i))) {
319 5 20 RETURN_IF_DATUM_IS_STRING(d);
322 6 14 RETURN_IF_DATUM_IS_BOOLEAN(d);
3 3 RETURN_IF_DATUM_IS_BOOLEAN(d);
325 6 8 RETURN_IF_DATUM_IS_INTEGER(d);
328 4 4 RETURN_IF_DATUM_IS_DOUBLE(d);
331 3 1 RETURN_IF_DATUM_IS_TIMESTAMP(d);
374 0 17 if (stack_idx != drill_len-1) {
390 0 0 if (!key) break;
392 0 0 if (strEQ(key, keystr)) return true;
403 0 41 if (!SvOK(key_sv)) {
0 0 if (!SvOK(key_sv)) {
0 0 if (!SvOK(key_sv)) {
407 29 12 char* key = SvPVutf8_nolen(key_sv);
411 21 20 if (tab) {
412 1 20 if (stack_idx == drill_len-1) {
424 15 5 if (arr) {
425 1 14 if (stack_idx == drill_len-1) {
439 1 4 if (newent.entity.datum.ok) {
445 1 3 if (newent.entity.datum.ok) {
451 1 2 if (newent.entity.datum.ok) {
457 1 1 if (newent.entity.datum.ok) {
463 1 0 if (newent.entity.datum.ok) {
468 0 0 if (_table_has_key_sv(tabin, key)) {
489 0 14 if (SvUOK(key_sv)) {
490 0 0 i = SvUV(key_sv);
492 0 14 else if (!SvOK(key_sv)) {
0 0 else if (!SvOK(key_sv)) {
0 0 else if (!SvOK(key_sv)) {
498 7 7 if (my_grok_atoUV(aTHX_ SvPVbyte_nolen(key_sv), &idx_uv)) {
14 0 if (my_grok_atoUV(aTHX_ SvPVbyte_nolen(key_sv), &idx_uv)) {
510 2 12 if (tab) {
511 2 0 if (stack_idx == drill_len-1) {
523 0 12 if (arr) {
524 0 0 if (stack_idx == drill_len-1) {
538 2 10 if (newent.entity.datum.ok) {
544 4 6 if (newent.entity.datum.ok) {
550 2 4 if (newent.entity.datum.ok) {
556 2 2 if (newent.entity.datum.ok) {
562 2 0 if (newent.entity.datum.ok) {
569 0 0 if (i >= arraylen) {
594 8 0 char* tomlstr = SvPVbyte(tomlsv, tomllen);
596 1 7 _verify_no_null(tomlstr, tomllen);
598 1 6 _verify_valid_utf8(tomlstr, tomllen);
602 2 4 if (tab == NULL) croak("%s", errbuf);
624 21 4 if (items > 1) {
644 2 3 RETVAL = _datum_boolean_to_sv(root_entity.entity.datum);
667 2 23 if (NULL == RETVAL) {
698 10 0 if (NULL != ts->year) {
706 10 0 if (NULL != ts->hour) {
713 1 9 if (NULL != ts->millisec) {
722 10 0 if (NULL != ts->z) {
733 10 0 RETVAL = ts->year ? newSViv(*ts->year) : &PL_sv_undef;
742 10 0 RETVAL = ts->month ? newSViv(*ts->month) : &PL_sv_undef;
754 20 0 RETVAL = ts->day ? newSViv(*ts->day) : &PL_sv_undef;
766 20 0 RETVAL = ts->hour ? newSViv(*ts->hour) : &PL_sv_undef;
778 10 0 RETVAL = ts->minute ? newSViv(*ts->minute) : &PL_sv_undef;
790 10 0 RETVAL = ts->second ? newSViv(*ts->second) : &PL_sv_undef;
802 2 18 RETVAL = ts->millisec ? newSViv(*ts->millisec) : &PL_sv_undef;
811 10 0 RETVAL = ts->z ? newSVpv(ts->z, 0) : &PL_sv_undef;