X-Git-Url: https://ruderich.org/simon/gitweb/?p=coloredstderr%2Fcoloredstderr.git;a=blobdiff_plain;f=tests%2Fexample.h;fp=tests%2Fexample.h;h=facbc30d5b4660170981751fb0fc92f0ffc9d52f;hp=0000000000000000000000000000000000000000;hb=941370dda9f22ca42e1d5b3cd580d7e7091d40bc;hpb=1068648718dad86471451266fcdf4248bb79f3fe diff --git a/tests/example.h b/tests/example.h new file mode 100644 index 0000000..facbc30 --- /dev/null +++ b/tests/example.h @@ -0,0 +1,38 @@ +/* + * Helper functions/macros for example files. + * + * Copyright (C) 2013 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 + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + + +#define FORKED_TEST(pid) \ + pid = fork(); \ + if (pid == -1) { \ + perror("fork"); \ + exit(EXIT_FAILURE); \ + } else if (pid != 0) { \ + int status; \ + if (waitpid(pid, &status, 0) == -1) { \ + perror("waitpid"); \ + exit(EXIT_FAILURE); \ + } \ + if (WIFEXITED(status)) { \ + printf("exit code: %d\n", WEXITSTATUS(status)); \ + } else { \ + printf("child terminated!\n"); \ + } \ + fflush(stdout); \ + } else