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