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