PlasCom2  1.0
XPACC Multi-physics simluation application
TestICE.C
Go to the documentation of this file.
1 #include "Testing.H"
2 #include "CSTestKernels.H"
3 
4 void TestICE(ix::test::results &serialUnitResults)
5 {
6 #pragma @ICE block=simpleReplaceC
7  bool testPass = false;
8 #pragma @ICE endblock
9  serialUnitResults.UpdateResult("ICE:SimpleReplaceC++",testPass);
10 
11  int kernelResult;
12  FC_GLOBAL(testkernel,TESTKERNEL)(&kernelResult);
13  // ICE replaces code to make this return 1, otherwise it will be 0
14  if(kernelResult == 0)
15  testPass= false;
16  else
17  testPass = true;
18  serialUnitResults.UpdateResult("ICE:SimpleReplaceFortran",testPass);
19 
20  // test for loop unrolling
21  testPass=false;
22  kernelResult=-1;
23  FC_GLOBAL(iceunrollfortrantestkernel,ICEUNROLLFORTRANTESTKERNEL)(&kernelResult);
24  if(kernelResult == 1386)
25  testPass= true;
26  serialUnitResults.UpdateResult("ICE:UnrollResultFortran",testPass);
27 
28  testPass=false;
29  kernelResult=-1;
30  ICEUnrollCxxTestKernel(kernelResult);
31  if(kernelResult == 895)
32  testPass= true;
33  serialUnitResults.UpdateResult("ICE:UnrollResultC",testPass);
34 
35  // test for loop interchange
36  testPass=false;
37  kernelResult=-1;
38  FC_GLOBAL(iceinterchangefortrantestkernel,ICEINTERCHANGEFORTRANTESTKERNEL)(&kernelResult);
39  if(kernelResult == 1386)
40  testPass= true;
41  serialUnitResults.UpdateResult("ICE:InterchangeResultFortran",testPass);
42 
43  testPass=false;
44  kernelResult=-1;
45  ICEInterchangeCxxTestKernel(kernelResult);
46  if(kernelResult == 895)
47  testPass= true;
48  serialUnitResults.UpdateResult("ICE:InterchangeResultC",testPass);
49 
50  // test for loop tiling
51  testPass=false;
52  kernelResult=-1;
53  FC_GLOBAL(icetilefortrantestkernel,ICETILEFORTRANTESTKERNEL)(&kernelResult);
54  if(kernelResult == 1386)
55  testPass= true;
56  serialUnitResults.UpdateResult("ICE:TileResultFortran",testPass);
57 
58  testPass=false;
59  kernelResult=-1;
60  ICETileCxxTestKernel(kernelResult);
61  if(kernelResult == 895)
62  testPass= true;
63  serialUnitResults.UpdateResult("ICE:TileResultC",testPass);
64 
65  // test for loop strip mine
66  testPass=false;
67  kernelResult=-1;
68  FC_GLOBAL(icestripminefortrantestkernel,ICESTRIPMINEFORTRANTESTKERNEL)(&kernelResult);
69  if(kernelResult == 1386)
70  testPass= true;
71  serialUnitResults.UpdateResult("ICE:StripMineResultFortran",testPass);
72 
73  testPass=false;
74  kernelResult=-1;
75  ICEStripMineCxxTestKernel(kernelResult);
76  if(kernelResult == 895)
77  testPass= true;
78  serialUnitResults.UpdateResult("ICE:StripMineResultC",testPass);
79 }
int ICEUnrollCxxTestKernel(int &result)
int ICEInterchangeCxxTestKernel(int &result)
void FC_GLOBAL(barebones, BAREBONES)(int *runCode)
Encapsulating class for collections of test results.
Definition: Testing.H:18
subroutine iceunrollfortrantestkernel(result)
subroutine testkernel(result)
subroutine iceinterchangefortrantestkernel(result)
Testing constructs for unit testing.
subroutine icestripminefortrantestkernel(result)
void UpdateResult(const std::string &name, const ValueType &result)
Updates an existing test result.
Definition: Testing.H:55
int ICETileCxxTestKernel(int &result)
void TestICE(ix::test::results &serialUnitResults)
Definition: TestICE.C:4
bool testPass
Definition: TestICEReplace.C:2
int ICEStripMineCxxTestKernel(int &result)
subroutine icetilefortrantestkernel(result)