Actual source code: ex31.c

  1: static char help[] = "Tests PetscGetFullPath().\n\n";

  3: #include <petscsys.h>

  5: /* for windows - fix up path - so that we can do diff test */
  6: PetscErrorCode path_to_unix(char filein[])
  7: {
  8:   size_t i, n;

 10:   PetscFunctionBegin;
 11:   PetscCall(PetscStrlen(filein, &n));
 12:   for (i = 0; i < n; i++) {
 13:     if (filein[i] == '\\') filein[i] = '/';
 14:   }
 15:   PetscFunctionReturn(PETSC_SUCCESS);
 16: }

 18: int main(int argc, char **argv)
 19: {
 20:   char fpath[PETSC_MAX_PATH_LEN];

 22:   PetscFunctionBeginUser;
 23:   PetscCall(PetscInitialize(&argc, &argv, (char *)0, help));
 24:   PetscCall(PetscGetFullPath("~/somefile", fpath, sizeof(fpath)));
 25:   PetscCall(path_to_unix(fpath));
 26:   PetscCall(PetscPrintf(PETSC_COMM_WORLD, "%s\n", fpath));
 27:   PetscCall(PetscGetFullPath("someotherfile", fpath, sizeof(fpath)));
 28:   PetscCall(path_to_unix(fpath));
 29:   PetscCall(PetscPrintf(PETSC_COMM_WORLD, "%s\n", fpath));
 30:   PetscCall(PetscFinalize());
 31:   return 0;
 32: }

 34: /*TEST

 36:    test:
 37:       requires: !windows_compilers
 38:       filter: sed "s?$(pwd -P)??g" |  sed "s?${HOME}??g"

 40:    test:
 41:       suffix: 2
 42:       requires: windows_compilers
 43:       output_file: output/ex31_1.out
 44:       filter: sed "s?`cygpath -m ${PWD}`??g" |  sed "s?`cygpath -m ${HOME}`??g"

 46: TEST*/