Branch Coverage

secret_buffer_async_write.c
Criterion Covered Total %
branch 6 92 6.5


line true false branch
85 0 0 result->fd= fd >= 0? dup(fd) : -1;
86 0 0 if (result->fd < 0) {
94 0 0 if (count)
105 0 0 if (from_thread) {
110 0 0 if (!result->ready && !ASYNC_RESULT_IS_THREAD_ALIVE(result)) {
0 0 if (!result->ready && !ASYNC_RESULT_IS_THREAD_ALIVE(result)) {
0 0 if (!result->ready && !ASYNC_RESULT_IS_THREAD_ALIVE(result)) {
118 0 0 cleanup_perl_half= destroy || (!result->ready && result->refcount == 1);
0 0 cleanup_perl_half= destroy || (!result->ready && result->refcount == 1);
0 0 cleanup_perl_half= destroy || (!result->ready && result->refcount == 1);
120 0 0 if (cleanup_thread_half) {
128 0 0 if (result->fd >= 0)
133 0 0 if (cleanup_perl_half) {
143 0 0 if (destroy) {
204 0 0 if (timeout_msec >= 0) {
208 0 0 if (ts.tv_nsec >= 1000000000) {
215 0 0 while (!result->ready) {
217 0 0 : pthread_cond_timedwait(&result->cond, &result->mutex, &ts);
218 0 0 if (rc == ETIMEDOUT)
224 0 0 if (ready) {
225 0 0 if (total_written) *total_written= result->total_written;
226 0 0 if (os_err) *os_err= result->os_err;
277 0 0 while (result->total_written < result->secret_len) {
280 0 0 if (wrote <= 0) {
281 0 0 if (wrote < 0 && errno == EINTR)
0 0 if (wrote < 0 && errno == EINTR)
283 0 0 else if (wrote < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
0 0 else if (wrote < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
0 0 else if (wrote < 0 && (errno == EAGAIN || errno == EWOULDBLOCK)) {
286 0 0 FD_ZERO(&writeable);
288 0 0 if (select(result->fd + 1, NULL, &writeable, NULL, NULL) > 0 || errno == EINTR)
0 0 if (select(result->fd + 1, NULL, &writeable, NULL, NULL) > 0 || errno == EINTR)
293 0 0 secret_buffer_async_result_send(result, wrote == 0? 0 : errno);
314 0 3 if (count == 0)
318 0 3 if (fd < 0)
382 3 0 if (!(old_flags & O_NONBLOCK))
383 0 3 if (fcntl(fd, F_SETFL, old_flags | O_NONBLOCK) < 0)
390 3 0 if (!(old_flags & O_NONBLOCK)) {
396 3 0 if (total_written == count)
398 0 0 else if (total_written < 0 && errno != EAGAIN && errno != EWOULDBLOCK)
0 0 else if (total_written < 0 && errno != EAGAIN && errno != EWOULDBLOCK)
0 0 else if (total_written < 0 && errno != EAGAIN && errno != EWOULDBLOCK)
400 0 0 if (total_written < 0)
405 0 0 if (pthread_create(&thread, NULL, secret_buffer_async_writer, result) != 0) {
411 0 0 if (!result->started)
416 0 0 if (ref_out)