summaryrefslogtreecommitdiffstats
path: root/Tests/RunCMake/exit_code.c
diff options
context:
space:
mode:
authorAdam Weisi <adam.weisi@intel.com>2017-04-13 17:10:04 (GMT)
committerBrad King <brad.king@kitware.com>2017-06-10 12:03:06 (GMT)
commitd6051ca39e2ac8e5afc8f6308fd1bda7d1e8c17b (patch)
tree231f86c5da5035fb62d94c2484de56785b3bf968 /Tests/RunCMake/exit_code.c
parentc095e90f3af78fb3421c80b725ebc6ad9ec85999 (diff)
downloadCMake-d6051ca39e2ac8e5afc8f6308fd1bda7d1e8c17b.zip
CMake-d6051ca39e2ac8e5afc8f6308fd1bda7d1e8c17b.tar.gz
CMake-d6051ca39e2ac8e5afc8f6308fd1bda7d1e8c17b.tar.bz2
execute_process: Add option to get results of every child
Add a `RESULTS_VARIABLE` option to get the results of all children in a pipeline of one or more `COMMAND`s.
Diffstat (limited to 'Tests/RunCMake/exit_code.c')
-rw-r--r--Tests/RunCMake/exit_code.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/Tests/RunCMake/exit_code.c b/Tests/RunCMake/exit_code.c
new file mode 100644
index 0000000..3eba019
--- /dev/null
+++ b/Tests/RunCMake/exit_code.c
@@ -0,0 +1,30 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+
+// Usage:
+//
+// /path/to/program arg1 [arg2 [...]]
+//
+// Return EXIT_SUCCESS if 'zero_exit'
+// string was found in <arg1>.
+// Return EXIT_FAILURE if 'non_zero_exit'
+// string was found in <arg1>.
+
+int main(int argc, const char* argv[])
+{
+ const char* substring_failure = "non_zero_exit";
+ const char* substring_success = "zero_exit";
+ const char* str = argv[1];
+ if (argc < 2) {
+ return EXIT_FAILURE;
+ }
+ if (strcmp(str, substring_success) == 0) {
+ return EXIT_SUCCESS;
+ } else if (strcmp(str, substring_failure) == 0) {
+ return EXIT_FAILURE;
+ }
+ fprintf(stderr, "Failed to find string '%s' in '%s'\n", substring_success,
+ str);
+ return EXIT_FAILURE;
+}