argv.c 734 B

123456789101112131415161718192021222324252627282930313233
  1. #include <reproc/run.h>
  2. #include "assert.h"
  3. int main(void)
  4. {
  5. const char *argv[] = { RESOURCE_DIRECTORY "/argv", "\"argument 1\"",
  6. "\"argument 2\"", NULL };
  7. char *output = NULL;
  8. reproc_sink sink = reproc_sink_string(&output);
  9. int r = -1;
  10. r = reproc_run_ex(argv, (reproc_options){ 0 }, sink, sink);
  11. ASSERT_OK(r);
  12. ASSERT(output != NULL);
  13. const char *current = output;
  14. for (size_t i = 0; i < 3; i++) {
  15. size_t size = strlen(argv[i]);
  16. ASSERT_GE_SIZE(strlen(current), size);
  17. ASSERT_EQ_MEM(current, argv[i], size);
  18. current += size;
  19. current += *current == '\r';
  20. current += *current == '\n';
  21. }
  22. ASSERT_EQ_SIZE(strlen(current), (size_t) 0);
  23. reproc_free(output);
  24. }