xref: /petsc/src/sys/tests/ex56.c (revision 60fbe2bef0f9fc09fadbc0cc33f5102638a6e853)
1*60fbe2beSVaclav Hapla 
2*60fbe2beSVaclav Hapla static char help[] = "Tests PetscHasExternalPackage().\n\n";
3*60fbe2beSVaclav Hapla 
4*60fbe2beSVaclav Hapla #include <petscsys.h>
5*60fbe2beSVaclav Hapla 
6*60fbe2beSVaclav Hapla int main(int argc,char **argv)
7*60fbe2beSVaclav Hapla {
8*60fbe2beSVaclav Hapla   char              pkg[128] = "hdf5";
9*60fbe2beSVaclav Hapla   PetscBool         has,flg;
10*60fbe2beSVaclav Hapla   PetscErrorCode    ierr;
11*60fbe2beSVaclav Hapla 
12*60fbe2beSVaclav Hapla   ierr = PetscInitialize(&argc,&argv,NULL,help);if (ierr) return ierr;
13*60fbe2beSVaclav Hapla   ierr = PetscOptionsGetString(NULL,NULL,"-pkg",pkg,sizeof(pkg),NULL);CHKERRQ(ierr);
14*60fbe2beSVaclav Hapla   ierr = PetscHasExternalPackage(pkg, &has);CHKERRQ(ierr);
15*60fbe2beSVaclav Hapla   ierr = PetscPrintf(PETSC_COMM_WORLD, "PETSc has %s? %s\n", pkg, PetscBools[has]);CHKERRQ(ierr);
16*60fbe2beSVaclav Hapla   ierr = PetscStrcmp(pkg, "hdf5", &flg);CHKERRQ(ierr);
17*60fbe2beSVaclav Hapla #if defined(PETSC_HAVE_HDF5)
18*60fbe2beSVaclav Hapla   if (flg && !has) SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says HDF5 is not configured but PETSC_HAVE_HDF5 is defined");
19*60fbe2beSVaclav Hapla #else
20*60fbe2beSVaclav Hapla   if (flg && has)  SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says HDF5 is configured but PETSC_HAVE_HDF5 is undefined");
21*60fbe2beSVaclav Hapla #endif
22*60fbe2beSVaclav Hapla   ierr = PetscStrcmp(pkg, "parmetis", &flg);CHKERRQ(ierr);
23*60fbe2beSVaclav Hapla #if defined(PETSC_HAVE_PARMETIS)
24*60fbe2beSVaclav Hapla   if (flg && !has) SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says PARMETIS is not configured but PETSC_HAVE_PARMETIS is defined");
25*60fbe2beSVaclav Hapla #else
26*60fbe2beSVaclav Hapla   if (flg && has)  SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says PARMETIS is configured but PETSC_HAVE_PARMETIS is undefined");
27*60fbe2beSVaclav Hapla #endif
28*60fbe2beSVaclav Hapla   ierr = PetscStrcmp(pkg, "yaml", &flg);CHKERRQ(ierr);
29*60fbe2beSVaclav Hapla #if defined(PETSC_HAVE_YAML)
30*60fbe2beSVaclav Hapla   if (flg && !has) SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says YAML is not configured but PETSC_HAVE_YAML is defined");
31*60fbe2beSVaclav Hapla #else
32*60fbe2beSVaclav Hapla   if (flg && has)  SETERRQ(PETSC_COMM_WORLD, PETSC_ERR_PLIB, "PetscHasExternalPackage() says YAML is configured but PETSC_HAVE_YAML is undefined");
33*60fbe2beSVaclav Hapla #endif
34*60fbe2beSVaclav Hapla   ierr = PetscFinalize();
35*60fbe2beSVaclav Hapla   return ierr;
36*60fbe2beSVaclav Hapla }
37*60fbe2beSVaclav Hapla 
38*60fbe2beSVaclav Hapla /*TEST
39*60fbe2beSVaclav Hapla 
40*60fbe2beSVaclav Hapla    test:
41*60fbe2beSVaclav Hapla       suffix: blaslapack
42*60fbe2beSVaclav Hapla       args: -pkg blaslapack
43*60fbe2beSVaclav Hapla    test:
44*60fbe2beSVaclav Hapla       suffix: hdf5
45*60fbe2beSVaclav Hapla       requires: hdf5
46*60fbe2beSVaclav Hapla       args: -pkg hdf5
47*60fbe2beSVaclav Hapla    test:
48*60fbe2beSVaclav Hapla       suffix: no-hdf5
49*60fbe2beSVaclav Hapla       requires: !hdf5
50*60fbe2beSVaclav Hapla       args: -pkg hdf5
51*60fbe2beSVaclav Hapla    test:
52*60fbe2beSVaclav Hapla       suffix: parmetis
53*60fbe2beSVaclav Hapla       requires: parmetis
54*60fbe2beSVaclav Hapla       args: -pkg parmetis
55*60fbe2beSVaclav Hapla    test:
56*60fbe2beSVaclav Hapla       suffix: no-parmetis
57*60fbe2beSVaclav Hapla       requires: !parmetis
58*60fbe2beSVaclav Hapla       args: -pkg parmetis
59*60fbe2beSVaclav Hapla    test:
60*60fbe2beSVaclav Hapla       suffix: yaml
61*60fbe2beSVaclav Hapla       requires: yaml
62*60fbe2beSVaclav Hapla       args: -pkg yaml
63*60fbe2beSVaclav Hapla    test:
64*60fbe2beSVaclav Hapla       suffix: no-yaml
65*60fbe2beSVaclav Hapla       requires: !yaml
66*60fbe2beSVaclav Hapla       args: -pkg yaml
67*60fbe2beSVaclav Hapla 
68*60fbe2beSVaclav Hapla TEST*/
69