xref: /petsc/src/sys/tests/ex31.c (revision 6a98f8dc3f2c9149905a87dc2e9d0fedaf64e09a)
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