Branch Coverage

src/Builder.xs
Criterion Covered Total %
branch 83 180 46.1


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)));
41 0 6670 if ((retc = call_method("lookup", G_ARRAY)) < 2) {
47 6670 0 if (retc == 2) {
52 6670 0 if ((item = POPs) != NULL && SvOK(item)) {
0 6670 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
53 6670 0 tmp = SvPV(item, len);
55 0 6670 if ((*group = b_string_new_len(tmp, len)) == NULL) {
60 6670 0 if ((item = POPs) != NULL && SvOK(item)) {
0 6670 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
61 6670 0 tmp = SvPV(item, len);
63 0 6670 if ((*user = b_string_new_len(tmp, len)) == NULL) {
71 6670 0 FREETMPS;
84 0 0 FREETMPS;
104 0 6 PUSHMARK(SP);
105 0 6 XPUSHs(cache);
106 0 6 XPUSHs(sv_2mortal(newSViv(dev)));
107 0 6 XPUSHs(sv_2mortal(newSViv(ino)));
108 0 6 XPUSHs(sv_2mortal(newSVpv(path->str, path->len)));
113 3 3 if ((retc = call_method("lookup", G_ARRAY)) != 1) {
119 3 0 if ((item = POPs) != NULL && SvOK(item)) {
0 3 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
0 0 if ((item = POPs) != NULL && SvOK(item)) {
120 3 0 tmp = SvPV(item, len);
122 0 3 if ((path = b_string_new_len(tmp, len)) == NULL) {
130 6 0 FREETMPS;
137 0 0 if (err == NULL) return;
145 0 6587 if (options & B_BUILDER_FOLLOW_SYMLINKS) {
149 0 6587 if (options & B_BUILDER_IGNORE_SOCKETS) {
170 0 91 if ((items - 1) % 2 != 0) {
174 83 91 for (i=1; i
175 83 0 char *key = SvPV_nolen(ST(i));
178 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;
26 0 if (strcmp(key, "quiet") == 0 && SvIV(value)) options |= B_BUILDER_QUIET;
179 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;
0 0 if (strcmp(key, "ignore_errors") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_ERRORS;
180 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;
0 0 if (strcmp(key, "follow_symlinks") == 0 && SvIV(value)) options |= B_BUILDER_FOLLOW_SYMLINKS;
181 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;
9 0 if (strcmp(key, "preserve_hardlinks") == 0 && SvIV(value)) options |= B_BUILDER_PRESERVE_HARDLINKS;
182 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;
34 0 if (strcmp(key, "gnu_extensions") == 0 && SvIV(value)) options |= B_BUILDER_GNU_EXTENSIONS;
183 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;
14 0 if (strcmp(key, "posix_extensions") == 0 && SvIV(value)) options |= B_BUILDER_PAX_EXTENSIONS;
184 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;
0 0 if (strcmp(key, "ignore_sockets") == 0 && SvIV(value)) options |= B_BUILDER_IGNORE_SOCKETS;
185 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);
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);
188 0 91 if ((builder = b_builder_new(block_factor)) == NULL) {
196 65 26 if (!(options & B_BUILDER_QUIET)) {
203 0 91 PUSHMARK(SP);
204 0 91 XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::UserCache")));
207 91 0 if ((retc = call_method("new", G_SCALAR)) >= 1) {
216 9 82 if (builder->options & B_BUILDER_PRESERVE_HARDLINKS) {
220 0 9 PUSHMARK(SP);
221 0 9 XPUSHs(sv_2mortal(newSVpvf("Archive::Tar::Builder::HardlinkCache")));
224 9 0 if ((retc = call_method("new", G_SCALAR)) == 1) {
252 0 14 if (b_builder_include(builder, pattern) < 0) {
262 7 14 if (b_builder_include_from_file(builder, file) < 0) {
272 0 14 if (b_builder_exclude(builder, pattern) < 0) {
282 7 14 if (b_builder_exclude_from_file(builder, file) < 0) {
317 0 6601 if ((items - 1) % 2 != 0) {
321 14 6587 if (b_buffer_get_fd(buf) == 0) {
325 6587 6579 for (i=1; i
328 6587 0 b_string *path = b_string_new(SvPV_nolen(ST(i)));
329 6587 0 b_string *member_name = b_string_new(SvPV_nolen(ST(i+1)));
331 8 6579 if (b_find(builder, path, member_name, B_FIND_CALLBACK(b_builder_write_file), flags) < 0) {
335 0 8 if (error_path == NULL) {
357 0 0 if (b_buffer_get_fd(buf) == 0) {
361 0 0 if ((ret = b_buffer_flush(buf)) < 0) {
382 0 27 if (b_buffer_get_fd(buf) == 0) {
386 0 27 if ((ret = b_buffer_flush(buf)) < 0) {
390 0 27 if (b_error_warn(err) && !(options & B_BUILDER_IGNORE_ERRORS)) {
0 0 if (b_error_warn(err) && !(options & B_BUILDER_IGNORE_ERRORS)) {