Branch Coverage

secret_buffer_async_write.c
Criterion Covered Total %
branch 6 92 6.5


line true false branch
90 0 0 result->fd= fd >= 0? dup(fd) : -1;
91 0 0 if (result->fd < 0) {
99 0 0 if (count)
110 0 0 if (from_thread) {
115 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)) {
123 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);
125 0 0 if (cleanup_thread_half) {
133 0 0 if (result->fd >= 0)
138 0 0 if (cleanup_perl_half) {
148 0 0 if (destroy) {
209 0 0 if (timeout_msec >= 0) {
213 0 0 if (ts.tv_nsec >= 1000000000) {
220 0 0 while (!result->ready) {
222 0 0 : pthread_cond_timedwait(&result->cond, &result->mutex, &ts);
223 0 0 if (rc == ETIMEDOUT)
229 0 0 if (ready) {
230 0 0 if (total_written) *total_written= result->total_written;
231 0 0 if (os_err) *os_err= result->os_err;
282 0 0 while (result->total_written < result->secret_len) {
285 0 0 if (wrote <= 0) {
286 0 0 if (wrote < 0 && errno == EINTR)
0 0 if (wrote < 0 && errno == EINTR)
288 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)) {
291 0 0 FD_ZERO(&writeable);
293 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)
298 0 0 secret_buffer_async_result_send(result, wrote == 0? 0 : errno);
319 0 3 if (count == 0)
323 0 3 if (fd < 0)
387 3 0 if (!(old_flags & O_NONBLOCK))
388 0 3 if (fcntl(fd, F_SETFL, old_flags | O_NONBLOCK) < 0)
395 3 0 if (!(old_flags & O_NONBLOCK)) {
401 3 0 if (total_written == count)
403 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)
405 0 0 if (total_written < 0)
410 0 0 if (pthread_create(&thread, NULL, secret_buffer_async_writer, result) != 0) {
416 0 0 if (!result->started)
421 0 0 if (ref_out)