path.c 731 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. #include <reproc/run.h>
  2. #include "assert.h"
  3. int main(void)
  4. {
  5. const char *argv[] = { RESOURCE_DIRECTORY "/path", NULL };
  6. int r = -1;
  7. r = reproc_run(argv, (reproc_options){ .redirect.path = "path.txt" });
  8. ASSERT_OK(r);
  9. FILE *file = fopen("path.txt", "rb");
  10. ASSERT(file != NULL);
  11. r = fseek(file, 0, SEEK_END);
  12. ASSERT_OK(r);
  13. r = (int) ftell(file);
  14. ASSERT_OK(r);
  15. size_t size = (size_t) r;
  16. char *string = malloc(size + 1);
  17. ASSERT(string != NULL);
  18. rewind(file);
  19. r = (int) fread(string, sizeof(char), size, file);
  20. ASSERT_EQ_INT(r, (int) size);
  21. string[r] = '\0';
  22. r = fclose(file);
  23. ASSERT_OK(r);
  24. r = remove("path.txt");
  25. ASSERT_OK(r);
  26. ASSERT_EQ_STR(string, argv[0]);
  27. free(string);
  28. }