fix die now ends
[charm.git] / tests / util / check.C
1 #include "converse.h"
2 #include "charm++.h"
3 #include "envelope.h"
4 #include <stdio.h>
5
6 void check_test(int argc, char** argv) {
7   CmiInt2 int2;
8   CmiInt4 int4;
9   CmiInt8 int8;
10   CmiUInt2 uint2;
11   CmiUInt4 uint4;
12   CmiUInt8 uint8;
13   CmiFloat4 float4;
14   CmiFloat8 float8;
15
16   if (CkMyPe()!=0) return;
17   if (sizeof(int2) != 2) {
18     CmiPrintf("Error: sizeof(CmiInt2) is %d!\n",sizeof(int2));
19     exit(1);
20   }
21   if (sizeof(int4) != 4) {
22     CmiPrintf("Error: sizeof(CmiInt4) is %d!\n",sizeof(int4));
23     exit(1);
24   }
25   if (sizeof(int8) != 8) {
26     CmiPrintf("Error: sizeof(CmiInt8) is %d!\n",sizeof(int8));
27     exit(1);
28   }
29
30   if (sizeof(uint2) != 2) {
31     CmiPrintf("Error: sizeof(CmiUInt2) is %d!\n",sizeof(uint2));
32     exit(1);
33   }
34   if (sizeof(uint4) != 4) {
35     CmiPrintf("Error: sizeof(CmiUInt4) is %d!\n",sizeof(uint4));
36     exit(1);
37   }
38   if (sizeof(uint8) != 8) {
39     CmiPrintf("Error: sizeof(CmiUInt8) is %d!\n",sizeof(uint8));
40     exit(1);
41   }
42
43   if (sizeof(float4) != 4) {
44     CmiPrintf("Error: sizeof(CmiFloat4) is %d!\n",sizeof(float4));
45     exit(1);
46   }
47   if (sizeof(float8) != 8) {
48     CmiPrintf("Error: sizeof(CmiFloat8) is %d!\n",sizeof(float8));
49     exit(1);
50   }
51
52   // Test for changes in CkEnvelopeType
53   // If the test below fails, it means the CkEnvelopeType enum was modified.
54   // BEFORE changing this test, make sure the CHARMDEBUG_MINOR version number is
55   // incremented, and the CharmDebug correspondant enumeration (in
56   // charm.debug.pdata.MsgInfo.java) is updated accordingly.
57   if (LAST_CK_ENVELOPE_TYPE != 19) {
58     CmiPrintf("Error: LAST_CK_ENVELOPE_TYPE changed. Update CharmDebug and fix this test:\n");
59     CmiPrintf("       BEFORE changing this test, make sure the CHARMDEBUG_MINOR version number is incremented, and the CharmDebug correspondant enumeration (in charm.debug.pdata.MsgInfo.java) is updated accordingly.");
60     exit(1);
61   }
62
63 #if ! CMK_SMP
64   const int s = 8*1024*1024;
65   void *buf1 = CmiAlloc(s);
66   CmiUInt8 mem_before = CmiMemoryUsage();
67   void *buf2 = CmiAlloc(s);
68   CmiUInt8 mem_after = CmiMemoryUsage();
69   CmiFree(buf2);
70   CmiFree(buf1);
71   CmiPrintf("CmiMemoryUsage() reported %fMB (before) vs %fMB (after)!\n", mem_before/1E6, mem_after/1E6);
72   if (mem_after - mem_before < s) {
73     CmiPrintf("Error: CmiMemoryUsage() does not work %lld %lld!\n", mem_before, mem_after);
74     CmiAbort("CmiMemoryUsage failed");
75   }
76 #endif
77
78   CmiPrintf("Info: converse header: %d envelope: %d\n", CmiReservedHeaderSize, sizeof(envelope));
79   CmiPrintf("All tests passed\n");
80 }
81
82 int main(int argc, char **argv)
83 {
84   ConverseInit(argc,argv,check_test,1,0);
85 }
86