Actual source code: ex31.c


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

  4: #include <petscsys.h>

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

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

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

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

 35: /*TEST

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

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

 47: TEST*/