Branch Coverage

Base64.xs
Criterion Covered Total %
branch 58 70 82.8


line true false branch
42 677 1 for (p = VALID_OPT_KEYS; *p; p++) {
43 175 502 if (strlen(*p) == klen && memcmp(*p, key, klen) == 0) return 1;
99 76 if (strlen(*p) == klen && memcmp(*p, key, klen) == 0) return 1;
65 0 73 if (!opts_hv) return;
68 100 67 while ((he = hv_iternext(opts_hv))) {
78 1 99 if (!known_opt(key, klen)) {
82 0 99 if (!SvOK(val)) continue;
84 8 91 if (klen == 4 && memcmp(key, "wrap", 4) == 0) {
8 0 if (klen == 4 && memcmp(key, "wrap", 4) == 0) {
86 1 7 if (n < 0) croak("File::Raw::Base64: wrap must be >= 0");
88 3 88 } else if (klen == 7 && memcmp(key, "urlsafe", 7) == 0) {
1 2 } else if (klen == 7 && memcmp(key, "urlsafe", 7) == 0) {
90 2 88 } else if (klen == 7 && memcmp(key, "padding", 7) == 0) {
2 0 } else if (klen == 7 && memcmp(key, "padding", 7) == 0) {
92 11 77 } else if (klen == 3 && memcmp(key, "pem", 3) == 0) {
8 3 } else if (klen == 3 && memcmp(key, "pem", 3) == 0) {
94 4 76 } else if (klen == 9 && memcmp(key, "pem_label", 9) == 0) {
4 0 } else if (klen == 9 && memcmp(key, "pem_label", 9) == 0) {
98 1 3 if (llen == 0)
101 1 2 if (memchr(lp, '\0', llen) != NULL)
104 73 3 } else if (klen == 6 && memcmp(key, "strict", 6) == 0) {
2 71 } else if (klen == 6 && memcmp(key, "strict", 6) == 0) {
106 3 71 } else if (klen == 3 && memcmp(key, "eol", 3) == 0) {
3 0 } else if (klen == 3 && memcmp(key, "eol", 3) == 0) {
110 2 1 if (elen == 0 || elen > 2)
1 1 if (elen == 0 || elen > 2)
132 73 0 if (state) {
149 34 0 if (ctx->options) decode_opts(aTHX_ ctx->options, &opts);
151 0 34 if (!ctx->data) return &PL_sv_undef;
155 5 29 if (rc != B64_OK) {
161 26 3 result = newSVpvn(out_len ? (const char *)out : "", out_len);
178 39 0 if (ctx->options) decode_opts(aTHX_ ctx->options, &opts);
180 0 33 if (!ctx->data) return &PL_sv_undef;
185 0 33 if (rc != B64_OK) {
191 30 3 result = newSVpvn(out_len ? out : "", out_len);