1 static char help[] = "Tests the PetscByteSwap()\n";
2
3 #include <petscsys.h>
4
main(int argc,char ** argv)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 PetscFunctionBeginUser;
15 PetscCall(PetscInitialize(&argc, &argv, NULL, help));
16
17 sint[0] = oint[0] = 5;
18 sint[1] = oint[1] = 19;
19 sbool[0] = obool[0] = PETSC_FALSE;
20 sbool[1] = obool[1] = PETSC_TRUE;
21 sscalar[0] = oscalar[0] = 3.14159265;
22 sscalar[1] = oscalar[1] = 1.3806504e-23;
23 sdouble[0] = odouble[0] = 3.14159265;
24 sdouble[1] = odouble[1] = 1.3806504e-23;
25 sfloat[0] = ofloat[0] = (float)3.14159265;
26 sfloat[1] = ofloat[1] = (float)1.3806504e-23;
27 sshort[0] = oshort[0] = 5;
28 sshort[1] = oshort[1] = 19;
29
30 PetscCall(PetscByteSwap(sint, PETSC_INT, 2));
31 PetscCall(PetscByteSwap(sbool, PETSC_BOOL, 2));
32 PetscCall(PetscByteSwap(sscalar, PETSC_SCALAR, 2));
33 PetscCall(PetscByteSwap(sdouble, PETSC_DOUBLE, 2));
34 PetscCall(PetscByteSwap(sfloat, PETSC_FLOAT, 2));
35 PetscCall(PetscByteSwap(sshort, PETSC_SHORT, 2));
36
37 PetscCall(PetscByteSwap(sint, PETSC_INT, 2));
38 PetscCall(PetscByteSwap(sbool, PETSC_BOOL, 2));
39 PetscCall(PetscByteSwap(sscalar, PETSC_SCALAR, 2));
40 PetscCall(PetscByteSwap(sdouble, PETSC_DOUBLE, 2));
41 PetscCall(PetscByteSwap(sfloat, PETSC_FLOAT, 2));
42 PetscCall(PetscByteSwap(sshort, PETSC_SHORT, 2));
43
44 if ((sint[0] != oint[0]) || (sint[1] != oint[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_INT\n"));
45 if ((sbool[0] != obool[0]) || (sbool[1] != obool[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_BOOL\n"));
46 if ((sscalar[0] != oscalar[0]) || (sscalar[1] != oscalar[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_SCALAR\n"));
47 if ((sdouble[0] != odouble[0]) || (sdouble[1] != odouble[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_DOUBLE\n"));
48 if ((sfloat[0] != ofloat[0]) || (sfloat[1] != ofloat[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_FLOAT\n"));
49 if ((sshort[0] != oshort[0]) || (sshort[1] != oshort[1])) PetscCall(PetscPrintf(PETSC_COMM_SELF, "Byteswap mismatch for PETSC_SHORT\n"));
50
51 PetscCall(PetscFinalize());
52 return 0;
53 }
54
55 /*TEST
56
57 test:
58 output_file: output/empty.out
59
60 TEST*/
61