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