Actual source code: ex15.c

  1: static char help[] = "Tests inclusion of petscsystypes.h.\n\n";

  3: #include <petscsystypes.h>
  4: #include <stddef.h> /* for NULL */

  6: #if defined(PETSC_HAVE_COMPLEX)
  7: #define TestComplexOperators(type,value)        \
  8:   do {                                          \
  9:     type x = value;                             \
 10:     PetscComplex z = value; (void)z;            \
 11:     z = x; z += x; z = z + x; z = x + z;        \
 12:     z = x; z -= x; z = z - x; z = x - z;        \
 13:     z = x; z *= x; z = z * x; z = x * z;        \
 14:     z = x; z /= x; z = z / x; z = x / z;        \
 15:     (void)(z==x); (void)(x==z);                 \
 16:     (void)(z!=x); (void)(x!=z);                 \
 17:   } while (0)
 18: #endif

 20: int main(int argc,char **argv)
 21: {
 22:   /* numeric types */
 23:   PetscScalar  svalue;
 24:   PetscReal    rvalue;
 25: #if defined(PETSC_HAVE_COMPLEX)
 26:   PetscComplex cvalue;
 27: #endif

 29:   /* integer types */
 30:   PetscInt64   i64;
 31:   PetscInt     i;
 32:   PetscBLASInt bi;
 33:   PetscMPIInt  rank;

 35:   /* PETSc types */
 36:   PetscBool        b;
 37:   PetscErrorCode   ierr;
 38:   PetscClassId     cid;
 39:   PetscEnum        e;
 40:   PetscShort       s;
 41:   PetscChar        c;
 42:   PetscFloat       f;
 43:   PetscLogDouble   ld;
 44:   PetscObjectId    oid;
 45:   PetscObjectState ost;

 47:   /* Enums */
 48:   PetscCopyMode          cp;
 49:   PetscDataType          dt;
 50:   PetscFileMode          fm;
 51:   PetscDLMode            dlm;
 52:   PetscBinarySeekType    bsk;
 53:   PetscBuildTwoSidedType b2s;
 54:   InsertMode             im;
 55:   PetscSubcommType       subct;

 57:   /* Sys objects */
 58:   PetscObject             obj;
 59:   PetscRandom             rand;
 60:   PetscToken              token;
 61:   PetscFunctionList       flist;
 62:   PetscDLHandle           dlh;
 63:   PetscObjectList         olist;
 64:   PetscDLLibrary          dlist;
 65:   PetscContainer          cont;
 66:   PetscSubcomm            subc;
 67:   PetscHeap               pheap;
 68:   PetscShmComm            scomm;
 69:   PetscOmpCtrl            octrl;
 70:   PetscSegBuffer          sbuff;
 71:   PetscOptionsHelpPrinted oh;

 73:   0;
 74:   svalue = 0.0;
 75:   rvalue = 0.0;
 76: #if defined(PETSC_HAVE_COMPLEX)
 77:   cvalue = 0.0;
 78: #endif

 80: #if defined(PETSC_HAVE_COMPLEX)
 81:   /* this example returns an error of 141 in GitLab CI once in a great while; this is an attempt to debug that issue */
 82:   if (ierr != 0) return 77;
 83:   TestComplexOperators(signed char,1);
 84:   TestComplexOperators(signed short,1);
 85:   TestComplexOperators(signed int,1);
 86:   TestComplexOperators(signed long,1L);
 87:   TestComplexOperators(float,1.0f);
 88:   TestComplexOperators(double,1.0);
 89:   if (ierr != 0) return 78;
 90: #endif

 92:   i64  = 0;
 93:   i    = 0;
 94:   bi   = 0;
 95:   rank = 0;

 97:   b    = PETSC_FALSE;
 98:   cid  = 0;
 99:   e    = ENUM_DUMMY;
100:   s    = 0;
101:   c    = '\0';
102:   f    = 0;
103:   ld   = 0.0;
104:   oid  = 0;
105:   ost  = 0;

107:   cp    = PETSC_COPY_VALUES;
108:   dt    = PETSC_DATATYPE_UNKNOWN;
109:   fm    = FILE_MODE_READ;
110:   dlm   = PETSC_DL_DECIDE;
111:   bsk   = PETSC_BINARY_SEEK_SET;
112:   b2s   = PETSC_BUILDTWOSIDED_NOTSET;
113:   im    = INSERT_VALUES;
114:   subct = PETSC_SUBCOMM_GENERAL;

116:   obj   = NULL;
117:   rand  = NULL;
118:   token = NULL;
119:   flist = NULL;
120:   dlh   = NULL;
121:   olist = NULL;
122:   dlist = NULL;
123:   cont  = NULL;
124:   subc  = NULL;
125:   pheap = NULL;
126:   scomm = NULL;
127:   octrl = NULL;
128:   sbuff = NULL;
129:   oh    = NULL;

131:   /* prevent to issue warning about set-but-not-used variables */
132:   (void)help;

134:   (void)svalue;
135:   (void)rvalue;
136: #if defined(PETSC_HAVE_COMPLEX)
137:   (void)cvalue;
138: #endif
139:   (void)i64;
140:   (void)i;
141:   (void)bi;
142:   (void)rank;

144:   (void)b;
145:   (void)ierr;
146:   (void)cid;
147:   (void)e;
148:   (void)s;
149:   (void)c;
150:   (void)f;
151:   (void)ld;
152:   (void)oid;
153:   (void)ost;

155:   (void)cp;
156:   (void)dt;
157:   (void)fm;
158:   (void)dlm;
159:   (void)bsk;
160:   (void)b2s;
161:   (void)im;
162:   (void)subct;

164:   (void)obj;
165:   (void)rand;
166:   (void)token;
167:   (void)flist;
168:   (void)dlh;
169:   (void)olist;
170:   (void)dlist;
171:   (void)cont;
172:   (void)subc;
173:   (void)pheap;
174:   (void)scomm;
175:   (void)octrl;
176:   (void)sbuff;
177:   (void)oh;
178:   return ierr;
179: }

181: /*TEST

183:   test:

185: TEST*/