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*/