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(0); 17 } 18 19 int main(int argc,char **argv) 20 { 21 char fpath[PETSC_MAX_PATH_LEN]; 22 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 } 33 34 /*TEST 35 36 test: 37 requires: !windows_compilers 38 filter: sed "s?$(pwd -P)??g" | sed "s?${HOME}??g" 39 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" 45 46 TEST*/ 47