xref: /petsc/src/sys/tests/ex22.c (revision 58d68138c660dfb4e9f5b03334792cd4f2ffd7cc)
1 static char help[] = "Tests the PetscByteSwap()\n";
2 
3 #include <petscsys.h>
4 
5 int main(int argc, char **argv) {
6   PetscInt    oint[2], sint[2];
7   PetscBool   obool[2], sbool[2];
8   PetscScalar oscalar[2], sscalar[2];
9   double      odouble[2], sdouble[2];
10   float       ofloat[2], sfloat[2];
11   short       oshort[2], sshort[2];
12 
13   PetscFunctionBeginUser;
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