summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ccan/failtest/failtest.c14
-rw-r--r--ccan/failtest/test/run-open.c12
-rw-r--r--ccan/failtest/test/run-write.c3
3 files changed, 19 insertions, 10 deletions
diff --git a/ccan/failtest/failtest.c b/ccan/failtest/failtest.c
index b25b049e..30903e3f 100644
--- a/ccan/failtest/failtest.c
+++ b/ccan/failtest/failtest.c
@@ -248,7 +248,8 @@ static struct saved_file *save_file(struct saved_file *next, int fd)
s->len = lseek(fd, 0, SEEK_END);
lseek(fd, 0, SEEK_SET);
s->contents = malloc(s->len);
- read(fd, s->contents, s->len);
+ if (read(fd, s->contents, s->len) != s->len)
+ err(1, "Failed to save %zu bytes", (size_t)s->len);
lseek(fd, s->off, SEEK_SET);
return s;
}
@@ -293,8 +294,11 @@ static void restore_files(struct saved_file *s)
struct saved_file *next = s->next;
lseek(s->fd, 0, SEEK_SET);
- write(s->fd, s->contents, s->len);
- ftruncate(s->fd, s->len);
+ if (write(s->fd, s->contents, s->len) != s->len)
+ err(1, "Failed to restore %zu bytes", (size_t)s->len);
+ if (ftruncate(s->fd, s->len) != 0)
+ err(1, "Failed to trim file to length %zu",
+ (size_t)s->len);
free(s->contents);
lseek(s->fd, s->off, SEEK_SET);
free(s);
@@ -395,8 +399,8 @@ static bool should_fail(struct failtest_call *call)
signal(SIGUSR1, SIG_IGN);
sprintf(str, "xterm -e gdb /proc/%d/exe %d &",
getpid(), getpid());
- system(str);
- sleep(5);
+ if (system(str) == 0)
+ sleep(5);
}
}
diff --git a/ccan/failtest/test/run-open.c b/ccan/failtest/test/run-open.c
index a81fa259..e0550457 100644
--- a/ccan/failtest/test/run-open.c
+++ b/ccan/failtest/test/run-open.c
@@ -15,13 +15,15 @@ int main(void)
plan_tests(12);
- pipe(pfd);
+ if (pipe(pfd))
+ abort();
fd = failtest_open("run-open-scratchpad", "run-open.c", 1,
O_RDWR|O_CREAT, 0600);
if (fd == -1) {
/* We are the child: write error code for parent to check. */
err = errno;
- write(pfd[1], &err, sizeof(err));
+ if (write(pfd[1], &err, sizeof(err)) != sizeof(err))
+ abort();
failtest_exit(0);
}
/* Check it is read-write. */
@@ -46,12 +48,14 @@ int main(void)
close(pfd[1]);
/* Two-arg open. */
- pipe(pfd);
+ if (pipe(pfd) != 0)
+ abort();
fd = failtest_open("run-open-scratchpad", "run-open.c", 1, O_RDONLY);
if (fd == -1) {
/* We are the child: write error code for parent to check. */
err = errno;
- write(pfd[1], &err, sizeof(err));
+ if (write(pfd[1], &err, sizeof(err)) != sizeof(err))
+ abort();
failtest_exit(0);
}
/* Check it is read-only. */
diff --git a/ccan/failtest/test/run-write.c b/ccan/failtest/test/run-write.c
index 9f1f1d7f..ada185a6 100644
--- a/ccan/failtest/test/run-write.c
+++ b/ccan/failtest/test/run-write.c
@@ -21,7 +21,8 @@ int main(int argc, char *argv[])
/* Child will fail, ignore. */
if (fd < 0)
failtest_exit(0);
- write(fd, buf, strlen(buf));
+ if (write(fd, buf, strlen(buf)) != strlen(buf))
+ abort();
ok1(lseek(fd, 0, SEEK_CUR) == strlen(buf));
p = failtest_malloc(100, __FILE__, __LINE__);