Branch Coverage

src/Builder.xs
Criterion Covered Total %
branch 89 184 48.3


line true false branch
35 0 7069 PUSHMARK(SP);
36 0 7069 XPUSHs(cache);
37 0 7069 XPUSHs(sv_2mortal(newSViv(uid)));
38 0 7069 XPUSHs(sv_2mortal(newSViv(gid)));
45 0 7069 if (retc < 2) {
49 7069 0 if (retc == 2) {
54 7069 0 if ((item = POPs) != NULL && SvOK(item)) {
0 7069 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
55 7069 0 tmp = SvPV(item, len);
57 0 7069 if ((*group = b_string_new_len(tmp, len)) == NULL) {
62 7069 0 if ((item = POPs) != NULL && SvOK(item)) {
0 7069 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
63 7069 0 tmp = SvPV(item, len);
65 0 7069 if ((*user = b_string_new_len(tmp, len)) == NULL) {
73 7069 0 FREETMPS;
86 0 0 FREETMPS;
106 0 404 PUSHMARK(SP);
107 0 404 XPUSHs(cache);
108 0 404 XPUSHs(sv_2mortal(newSViv(dev)));
109 0 404 XPUSHs(sv_2mortal(newSViv(ino)));
110 0 404 XPUSHs(sv_2mortal(newSVpv(path->str, path->len)));
118 202 202 if (retc != 1) {
122 202 0 if ((item = POPs) != NULL && SvOK(item)) {
0 202 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
123 202 0 tmp = SvPV(item, len);
125 0 202 if ((path = b_string_new_len(tmp, len)) == NULL) {
133 404 0 FREETMPS;
140 0 0 if (err == NULL) return;
148 0 6588 if (options & B_BUILDER_FOLLOW_SYMLINKS) {
152 1 6587 if (options & B_BUILDER_IGNORE_SOCKETS) {
173 0 92 if ((items - 1) % 2 != 0) {
177 86 92 for (i=1; i
178 86 0 char *key = SvPV_nolen(ST(i));
181 26 60 if (strcmp(key, "quiet") == 0 && SvIV(value)) options |= B_BUILDER_QUIET;
26 0 if (strcmp(key, "quiet") == 0 && SvIV(value)) options |= B_BUILDER_QUIET;
26 0 if (strcmp(key, "quiet") == 0 && SvIV(value)) options |= B_BUILDER_QUIET;
182 0 86 if (strcmp(key, "ignore_errors") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS;
0 0 if (strcmp(key, "ignore_errors") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS;
0 0 if (strcmp(key, "ignore_errors") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS;
183 0 86 if (strcmp(key, "follow_symlinks") == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS;
0 0 if (strcmp(key, "follow_symlinks") == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS;
0 0 if (strcmp(key, "follow_symlinks") == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS;
184 10 76 if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS;
10 0 if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS;
10 0 if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS;
185 35 51 if (strcmp(key, "gnu_extensions") == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS;
35 0 if (strcmp(key, "gnu_extensions") == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS;
35 0 if (strcmp(key, "gnu_extensions") == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS;
186 14 72 if (strcmp(key, "posix_extensions") == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS;
14 0 if (strcmp(key, "posix_extensions") == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS;
14 0 if (strcmp(key, "posix_extensions") == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS;
187 1 85 if (strcmp(key, "ignore_sockets") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS;
1 0 if (strcmp(key, "ignore_sockets") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS;
1 0 if (strcmp(key, "ignore_sockets") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS;
188 0 86 if (strcmp(key, "block_factor") == 0 && SvIV(value)) block_factor = SvIV(value);
0 0 if (strcmp(key, "block_factor") == 0 && SvIV(value)) block_factor = SvIV(value);
0 0 if (strcmp(key, "block_factor") == 0 && SvIV(value)) block_factor = SvIV(value);
0 0 if (strcmp(key, "block_factor") == 0 && SvIV(value)) block_factor = SvIV(value);
191 0 92 if ((builder = b_builder_new(block_factor)) == NULL) {
199 66 26 if (!(options & B_BUILDER_QUIET)) {
209 0 92 PUSHMARK(SP);
210 0 92 XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::UserCache")));
217 92 0 if (retc == 1) {
223 92 0 FREETMPS;
228 10 82 if (builder->options & B_BUILDER_PRESERVE_HARDLINKS) {
235 0 10 PUSHMARK(SP);
236 0 10 XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::HardlinkCache")));
243 10 0 if (retc == 1) {
249 10 0 FREETMPS;
273 0 14 if (b_builder_include(builder, pattern) < 0) {
283 7 14 if (b_builder_include_from_file(builder, file) < 0) {
293 0 14 if (b_builder_exclude(builder, pattern) < 0) {
303 7 14 if (b_builder_exclude_from_file(builder, file) < 0) {
338 0 6602 if ((items - 1) % 2 != 0) {
342 14 6588 if (b_buffer_get_fd(buf) == 0) {
346 6588 6580 for (i=1; i
349 6588 0 b_string *path = b_string_new(SvPV_nolen(ST(i)));
350 6588 0 b_string *member_name = b_string_new(SvPV_nolen(ST(i+1)));
352 8 6580 if (b_find(builder, path, member_name, B_FIND_CALLBACK(b_builder_write_file), flags) < 0) {
356 0 8 if (error_path == NULL) {
378 0 0 if (b_buffer_get_fd(buf) == 0) {
382 0 0 if ((ret = b_buffer_flush(buf)) < 0) {
403 0 27 if (b_buffer_get_fd(buf) == 0) {
407 0 27 if ((ret = b_buffer_flush(buf)) < 0) {
411 0 27 if (b_error_warn(err) && !(options & B_BUILDER_IGNORE_ERRORS)) {
0 0 if (b_error_warn(err) && !(options & B_BUILDER_IGNORE_ERRORS)) {