Branch Coverage

src/Builder.xs
Criterion Covered Total %
branch 79 148 53.3


line true false branch
35 0 6670 PUSHMARK(SP);
36 0 6670 XPUSHs(cache);
37 0 6670 XPUSHs(sv_2mortal(newSViv(uid)));
38 0 6670 XPUSHs(sv_2mortal(newSViv(gid)));
45 0 6670 if (retc < 2) {
49 6670 0 if (retc == 2) {
54 6670 0 if ((item = POPs) != NULL && SvOK(item)) {
6670 0 if ((item = POPs) != NULL && SvOK(item)) {
57 0 6670 if ((*group = b_string_new_len(tmp, len)) == NULL) {
62 6670 0 if ((item = POPs) != NULL && SvOK(item)) {
6670 0 if ((item = POPs) != NULL && SvOK(item)) {
65 0 6670 if ((*user = b_string_new_len(tmp, len)) == NULL) {
73 6670 0 FREETMPS;
86 0 0 FREETMPS;
106 0 6 PUSHMARK(SP);
107 0 6 XPUSHs(cache);
108 0 6 XPUSHs(sv_2mortal(newSViv(dev)));
109 0 6 XPUSHs(sv_2mortal(newSViv(ino)));
110 0 6 XPUSHs(sv_2mortal(newSVpv(path->str, path->len)));
118 3 3 if (retc != 1) {
122 0 3 if ((item = POPs) != NULL && SvOK(item)) {
0 3 if ((item = POPs) != NULL && SvOK(item)) {
125 3 0 if ((path = b_string_new_len(tmp, len)) == NULL) {
133 6 0 FREETMPS;
140 0 0 if (err == NULL) return;
148 0 6587 if (options & B_BUILDER_FOLLOW_SYMLINKS) {
152 0 6587 if (options & B_BUILDER_IGNORE_SOCKETS) {
173 0 91 if ((items - 1) % 2 != 0) {
177 83 91 for (i=1; i
181 26 57 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 83 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 83 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 9 74 if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS;
9 0 if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS;
185 34 49 if (strcmp(key, "gnu_extensions") == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS;
34 0 if (strcmp(key, "gnu_extensions") == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS;
186 14 69 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 0 83 if (strcmp(key, "ignore_sockets") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS;
0 0 if (strcmp(key, "ignore_sockets") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS;
188 0 83 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 91 if ((builder = b_builder_new(block_factor)) == NULL) {
199 65 26 if (!(options & B_BUILDER_QUIET)) {
209 0 91 PUSHMARK(SP);
210 0 91 XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::UserCache")));
217 91 0 if (retc == 1) {
223 91 0 FREETMPS;
228 9 82 if (builder->options & B_BUILDER_PRESERVE_HARDLINKS) {
235 0 9 PUSHMARK(SP);
236 0 9 XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::HardlinkCache")));
243 9 0 if (retc == 1) {
249 9 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 6601 if ((items - 1) % 2 != 0) {
342 14 6587 if (b_buffer_get_fd(buf) == 0) {
346 6587 6579 for (i=1; i
352 8 6579 if (b_find(builder, path, member_name, B_FIND_CALLBACK(b_builder_write_file), flags) < 0) {
356 0 8 if (error_path == NULL) {
364 6552 27 RETVAL = builder->total;
378 0 0 if (b_buffer_get_fd(buf) == 0) {
382 0 0 if ((ret = b_buffer_flush(buf)) < 0) {
386 0 0 RETVAL = ret;
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)) {
417 5 22 RETVAL = ret;