1 2 static char help[] = "Tests PetscGetFullPath().\n\n"; 3 4 5 #include <petscsys.h> 6 7 /* for windows - fix up path - so that we can do diff test */ 8 PetscErrorCode path_to_unix(char filein[]) 9 { 10 PetscErrorCode ierr; 11 size_t i,n; 12 13 PetscFunctionBegin; 14 ierr = PetscStrlen(filein,&n);CHKERRQ(ierr); 15 for (i=0; i<n; i++) { 16 if (filein[i] == '\\') filein[i] = '/'; 17 } 18 PetscFunctionReturn(0); 19 } 20 21 int main(int argc,char **argv) 22 { 23 char fpath[PETSC_MAX_PATH_LEN]; 24 PetscErrorCode ierr; 25 26 ierr = PetscInitialize(&argc,&argv,(char*)0,help);if (ierr) return ierr; 27 ierr = PetscGetFullPath("~/somefile",fpath,sizeof(fpath));CHKERRQ(ierr); 28 ierr = path_to_unix(fpath);CHKERRQ(ierr); 29 ierr = PetscPrintf(PETSC_COMM_WORLD,"%s\n",fpath);CHKERRQ(ierr); 30 ierr = PetscGetFullPath("someotherfile",fpath,sizeof(fpath));CHKERRQ(ierr); 31 ierr = path_to_unix(fpath);CHKERRQ(ierr); 32 ierr = PetscPrintf(PETSC_COMM_WORLD,"%s\n",fpath);CHKERRQ(ierr); 33 ierr = PetscFinalize(); 34 return ierr; 35 } 36 37 38 39 /*TEST 40 41 test: 42 requires: !windows_compilers 43 filter: sed "s?$(pwd -P)??g" | sed "s?${HOME}??g" 44 45 test: 46 suffix: 2 47 requires: windows_compilers 48 output_file: output/ex31_1.out 49 filter: sed "s?`cygpath -m ${PWD}`??g" | sed "s?`cygpath -m ${HOME}`??g" 50 51 TEST*/ 52