Branch Coverage

src/xh_reader.c
Criterion Covered Total %
branch 75 166 45.1


line true false branch
9 4 68 if (encoding[0] != '\0')
18 5 67 if (reader->encoder != NULL)
28 25 5 if (xh_strcasecmp(encoding, XH_INTERNAL_ENCODING) == 0) {
30 0 25 if (reader->encoder != NULL) {
37 5 0 if (reader->encoder == NULL) {
42 0 5 if (reader->encoder == NULL) {
48 2 3 if (len != NULL && *len > 0) {
2 0 if (len != NULL && *len > 0) {
54 0 0 else if (xh_strcasecmp(encoding, reader->encoder->fromcode) != 0) {
111 5 5 if (preserve == NULL) {
117 5 0 if (*off) {
127 5 5 if (preserve != NULL && xh_buffer_start(enc_buf) != old_buf_addr) {
0 5 if (preserve != NULL && xh_buffer_start(enc_buf) != old_buf_addr) {
133 10 0 while (enc_buf->cur < enc_buf->end) {
134 2 8 if (reader->fake_read_pos != NULL) {
142 5 5 if (src_left == 0 && reader->encoder->state == XH_ENC_OK) {
5 0 if (src_left == 0 && reader->encoder->state == XH_ENC_OK) {
143 5 0 if (main_buf->cur == main_buf->end)
156 0 5 switch (reader->encoder->state) {
158 0 0 if (src_left == 0)
184 23 5 : xh_string_reader_read_with_encoding;
205 0 11 if (reader->fd == -1) {
209 0 11 if (fstat(reader->fd, &sb) == -1) {
215 0 11 if (sb.st_size == 0) {
240 0 11 if ((caddr_t) reader->str == (caddr_t) (-1)) {
256 0 11 if (reader->fd == -1) return;
265 0 11 if (munmap(reader->str, reader->len) == -1) {
271 0 11 if (close(reader->fd) == -1) {
318 1 1 if (preserve == NULL) {
324 1 0 if (*off) {
336 1 1 if (preserve != NULL && main_buf->start != old_buf_addr) {
0 1 if (preserve != NULL && main_buf->start != old_buf_addr) {
342 0 2 if (len == (size_t) (-1)) {
365 0 0 if (preserve == NULL) {
371 0 0 if (*off) {
381 0 0 if (preserve != NULL && enc_buf->start != old_buf_addr) {
0 0 if (preserve != NULL && enc_buf->start != old_buf_addr) {
387 0 0 while (enc_buf->cur < enc_buf->end) {
390 0 0 if (reader->fake_read_pos == NULL) {
399 0 0 if (src_left == 0) {
400 0 0 if (main_buf->cur == main_buf->end)
404 0 0 if (src_left == (size_t) (-1))
415 0 0 switch (reader->encoder->state) {
417 0 0 if (src_left == 0)
445 1 0 : xh_file_reader_read_with_encoding;
464 1 0 if (reader->main_buf.start != NULL)
479 0 6 PUSHMARK(SP);
480 0 6 XPUSHs(obj);
481 0 6 XPUSHs(buf);
482 0 6 XPUSHs(sv_2mortal(newSViv(count)));
483 0 6 XPUSHs(sv_2mortal(newSViv(offset)));
490 6 0 if (nparam) {
497 6 0 FREETMPS;
516 1 0 if (reader->perl_buf.scalar != NULL)
531 4 2 if (preserve == NULL) {
537 2 0 if (*off) {
554 2 4 if (preserve != NULL && main_buf->start != old_buf_addr) {
2 0 if (preserve != NULL && main_buf->start != old_buf_addr) {
560 0 6 if (len == (size_t) (-1)) {
584 0 0 if (preserve == NULL) {
590 0 0 if (*off) {
600 0 0 if (preserve != NULL && enc_buf->start != old_buf_addr) {
0 0 if (preserve != NULL && enc_buf->start != old_buf_addr) {
606 0 0 while (enc_buf->cur < enc_buf->end) {
609 0 0 if (reader->fake_read_pos == NULL) {
618 0 0 if (src_left == 0) {
619 0 0 if (main_buf->cur == main_buf->end)
623 0 0 if (src_left == (size_t) (-1))
634 0 0 switch (reader->encoder->state) {
636 0 0 if (src_left == 0)
664 1 0 : xh_perl_obj_reader_read_with_encoding;
677 70 2 if (SvTYPE(input) != SVt_PVGV) {
679 0 70 if (len == 0)
683 59 11 if (xh_str_is_xml(str)) {
709 2 0 io = GvIO(gv);
0 2 io = GvIO(gv);
0 0 io = GvIO(gv);
2 0 io = GvIO(gv);
711 0 2 if (!io)
714 1 1 if ((mg = SvTIED_mg(MUTABLE_SV(io), PERL_MAGIC_tiedscalar))) {
1 1 if ((mg = SvTIED_mg(MUTABLE_SV(io), PERL_MAGIC_tiedscalar))) {
717 1 0 reader->perl_obj = SvTIED_obj(MUTABLE_SV(io), mg);
742 72 0 if (reader->destroy != NULL)