1 2 static char help[] = "Tests PetscGetFullPath().\n\n"; 3 4 #include <petscsys.h> 5 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; 10 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 } 18 19 int main(int argc, char **argv) 20 { 21 char fpath[PETSC_MAX_PATH_LEN]; 22 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 } 34 35 /*TEST 36 37 test: 38 requires: !windows_compilers 39 filter: sed "s?$(pwd -P)??g" | sed "s?${HOME}??g" 40 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" 46 47 TEST*/ 48