X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=tests%2Fexample.h;h=ce08612f9d3adcc213ededa171b08dc8e971d994;hb=545c6af1daceb29e4a9dc419273a3f2339dfaa7c;hp=facbc30d5b4660170981751fb0fc92f0ffc9d52f;hpb=941370dda9f22ca42e1d5b3cd580d7e7091d40bc;p=coloredstderr%2Fcoloredstderr.git diff --git a/tests/example.h b/tests/example.h index facbc30..ce08612 100644 --- a/tests/example.h +++ b/tests/example.h @@ -1,7 +1,7 @@ /* * Helper functions/macros for example files. * - * Copyright (C) 2013 Simon Ruderich + * Copyright (C) 2013-2018 Simon Ruderich * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -36,3 +36,22 @@ } \ fflush(stdout); \ } else + +static ssize_t xwrite(int fd, void const *buf, size_t count) { + ssize_t result = write(fd, buf, count); + if (result == -1) { + perror("write"); + exit(EXIT_FAILURE); + } + /* Ignore short writes here. Doesn't matter for test cases. */ + return result; +} + +static int xdup2(int oldfd, int newfd) { + int result = dup2(oldfd, newfd); + if (result == -1) { + perror("dup2"); + exit(EXIT_FAILURE); + } + return result; +}