xref: /petsc/src/sys/tests/ex56.c (revision 5f80ce2ab25dff0f4601e710601cbbcecf323266)
160fbe2beSVaclav Hapla 
260fbe2beSVaclav Hapla static char help[] = "Tests PetscHasExternalPackage().\n\n";
360fbe2beSVaclav Hapla 
460fbe2beSVaclav Hapla #include <petscsys.h>
560fbe2beSVaclav Hapla 
660fbe2beSVaclav Hapla int main(int argc,char **argv)
760fbe2beSVaclav Hapla {
860fbe2beSVaclav Hapla   char              pkg[128] = "hdf5";
960fbe2beSVaclav Hapla   PetscBool         has,flg;
1060fbe2beSVaclav Hapla   PetscErrorCode    ierr;
1160fbe2beSVaclav Hapla 
1260fbe2beSVaclav Hapla   ierr = PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr;
13*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscOptionsGetString(NULL,NULL,"-pkg",pkg,sizeof(pkg),NULL));
14*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscHasExternalPackage(pkg, &has));
15*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscPrintf(PETSC_COMM_WORLD, "PETSc has %s? %s\n", pkg, PetscBools[has]));
16*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscStrcmp(pkg, "hdf5", &flg));
1760fbe2beSVaclav Hapla #if defined(PETSC_HAVE_HDF5)
182c71b3e2SJacob Faibussowitsch   PetscCheckFalse(flg && !has,PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says HDF5 is not configured but PETSC_HAVE_HDF5 is defined");
1960fbe2beSVaclav Hapla #else
202c71b3e2SJacob Faibussowitsch   PetscCheckFalse(flg && has,PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says HDF5 is configured but PETSC_HAVE_HDF5 is undefined");
2160fbe2beSVaclav Hapla #endif
22*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscStrcmp(pkg, "parmetis", &flg));
2360fbe2beSVaclav Hapla #if defined(PETSC_HAVE_PARMETIS)
242c71b3e2SJacob Faibussowitsch   PetscCheckFalse(flg && !has,PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says PARMETIS is not configured but PETSC_HAVE_PARMETIS is defined");
2560fbe2beSVaclav Hapla #else
262c71b3e2SJacob Faibussowitsch   PetscCheckFalse(flg && has,PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says PARMETIS is configured but PETSC_HAVE_PARMETIS is undefined");
2760fbe2beSVaclav Hapla #endif
28*5f80ce2aSJacob Faibussowitsch   CHKERRQ(PetscStrcmp(pkg, "yaml", &flg));
2960fbe2beSVaclav Hapla #if defined(PETSC_HAVE_YAML)
302c71b3e2SJacob Faibussowitsch   PetscCheckFalse(flg && !has,PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says YAML is not configured but PETSC_HAVE_YAML is defined");
3160fbe2beSVaclav Hapla #else
322c71b3e2SJacob Faibussowitsch   PetscCheckFalse(flg && has,PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says YAML is configured but PETSC_HAVE_YAML is undefined");
3360fbe2beSVaclav Hapla #endif
3460fbe2beSVaclav Hapla   ierr = PetscFinalize();
3560fbe2beSVaclav Hapla   return ierr;
3660fbe2beSVaclav Hapla }
3760fbe2beSVaclav Hapla 
3860fbe2beSVaclav Hapla /*TEST
3960fbe2beSVaclav Hapla 
4060fbe2beSVaclav Hapla    test:
4160fbe2beSVaclav Hapla       suffix: blaslapack
4260fbe2beSVaclav Hapla       args: -pkg blaslapack
4360fbe2beSVaclav Hapla    test:
4460fbe2beSVaclav Hapla       suffix: hdf5
4560fbe2beSVaclav Hapla       requires: hdf5
4660fbe2beSVaclav Hapla       args: -pkg hdf5
4760fbe2beSVaclav Hapla    test:
4860fbe2beSVaclav Hapla       suffix: no-hdf5
4960fbe2beSVaclav Hapla       requires: !hdf5
5060fbe2beSVaclav Hapla       args: -pkg hdf5
5160fbe2beSVaclav Hapla    test:
5260fbe2beSVaclav Hapla       suffix: parmetis
5360fbe2beSVaclav Hapla       requires: parmetis
5460fbe2beSVaclav Hapla       args: -pkg parmetis
5560fbe2beSVaclav Hapla    test:
5660fbe2beSVaclav Hapla       suffix: no-parmetis
5760fbe2beSVaclav Hapla       requires: !parmetis
5860fbe2beSVaclav Hapla       args: -pkg parmetis
5960fbe2beSVaclav Hapla    test:
6060fbe2beSVaclav Hapla       suffix: yaml
6160fbe2beSVaclav Hapla       requires: yaml
6260fbe2beSVaclav Hapla       args: -pkg yaml
6360fbe2beSVaclav Hapla    test:
6460fbe2beSVaclav Hapla       suffix: no-yaml
6560fbe2beSVaclav Hapla       requires: !yaml
6660fbe2beSVaclav Hapla       args: -pkg yaml
6760fbe2beSVaclav Hapla 
6860fbe2beSVaclav Hapla TEST*/
69