xref: /petsc/src/sys/tests/ex22.c (revision f97672e55eacc8688507b9471cd7ec2664d7f203)
1 static char help[] = "Tests the PetscByteSwap()\n";
2 
3 #include <petscsys.h>
4 
5 int main(int argc,char **argv)
6 {
7   PetscInt       oint[2],sint[2];
8   PetscBool      obool[2],sbool[2];
9   PetscScalar    oscalar[2],sscalar[2];
10   double         odouble[2],sdouble[2];
11   float          ofloat[2],sfloat[2];
12   short          oshort[2],sshort[2];
13 
14   PetscCall(PetscInitialize(&argc,&argv,(char*)0,help));
15 
16   sint[0]    = oint[0]    = 5;
17   sint[1]    = oint[1]    = 19;
18   sbool[0]   = obool[0]   = PETSC_FALSE;
19   sbool[1]   = obool[1]   = PETSC_TRUE;
20   sscalar[0] = oscalar[0] = 3.14159265;
21   sscalar[1] = oscalar[1] = 1.3806504e-23;
22   sdouble[0] = odouble[0] = 3.14159265;
23   sdouble[1] = odouble[1] = 1.3806504e-23;
24   sfloat[0]  = ofloat[0]  = 3.14159265;
25   sfloat[1]  = ofloat[1]  = 1.3806504e-23;
26   sshort[0]  = oshort[0]  = 5;
27   sshort[1]  = oshort[1]  = 19;
28 
29   PetscCall(PetscByteSwap(sint,PETSC_INT,2));
30   PetscCall(PetscByteSwap(sbool,PETSC_BOOL,2));
31   PetscCall(PetscByteSwap(sscalar,PETSC_SCALAR,2));
32   PetscCall(PetscByteSwap(sdouble,PETSC_DOUBLE,2));
33   PetscCall(PetscByteSwap(sfloat,PETSC_FLOAT,2));
34   PetscCall(PetscByteSwap(sshort,PETSC_SHORT,2));
35 
36   PetscCall(PetscByteSwap(sint,PETSC_INT,2));
37   PetscCall(PetscByteSwap(sbool,PETSC_BOOL,2));
38   PetscCall(PetscByteSwap(sscalar,PETSC_SCALAR,2));
39   PetscCall(PetscByteSwap(sdouble,PETSC_DOUBLE,2));
40   PetscCall(PetscByteSwap(sfloat,PETSC_FLOAT,2));
41   PetscCall(PetscByteSwap(sshort,PETSC_SHORT,2));
42 
43   if ((sint[0] !=oint[0])|| (sint[1] != oint[1]))             PetscCall(PetscPrintf(PETSC_COMM_SELF,"Byteswap mismatch for PETSC_INT\n"));
44   if ((sbool[0] !=obool[0])|| (sbool[1] != obool[1]))         PetscCall(PetscPrintf(PETSC_COMM_SELF,"Byteswap mismatch for PETSC_BOOL\n"));
45   if ((sscalar[0] !=oscalar[0])|| (sscalar[1] != oscalar[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF,"Byteswap mismatch for PETSC_SCALAR\n"));
46   if ((sdouble[0] !=odouble[0])|| (sdouble[1] != odouble[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF,"Byteswap mismatch for PETSC_DOUBLE\n"));
47   if ((sfloat[0] !=ofloat[0])|| (sfloat[1] != ofloat[1]))     PetscCall(PetscPrintf(PETSC_COMM_SELF,"Byteswap mismatch for PETSC_FLOAT\n"));
48   if ((sshort[0] !=oshort[0])|| (sshort[1] != oshort[1]))     PetscCall(PetscPrintf(PETSC_COMM_SELF,"Byteswap mismatch for PETSC_SHORT\n"));
49 
50   PetscCall(PetscFinalize());
51   return 0;
52 }
53 
54 /*TEST
55 
56    test:
57 
58 TEST*/
59