1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
2 /* This Source Code Form is subject to the terms of the Mozilla Public
3 * License, v. 2.0. If a copy of the MPL was not distributed with this
4 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
7 * A test program for PR_htons, PR_ntohs, PR_htonl, PR_ntohl,
8 * PR_htonll, and PR_ntohll.
17 /* Byte sequence in network byte order */
18 static unsigned char bytes_n
[8] = { 1, 2, 3, 4, 5, 6, 7, 8 };
20 /* Integers in host byte order */
21 static PRUint16 s_h
= 0x0102;
22 static PRUint32 l_h
= 0x01020304;
23 static PRUint64 ll_h
= LL_INIT(0x01020304, 0x05060708);
25 int main(int argc
, char **argv
)
31 unsigned char bytes
[8];
36 un
.bytes
[0], un
.bytes
[1]);
37 un
.s
= PR_htons(un
.s
);
39 un
.bytes
[0], un
.bytes
[1]);
40 if (memcmp(un
.bytes
, bytes_n
, 2)) {
41 fprintf(stderr
, "PR_htons failed\n");
44 un
.s
= PR_ntohs(un
.s
);
46 un
.bytes
[0], un
.bytes
[1]);
48 fprintf(stderr
, "PR_ntohs failed\n");
53 printf("%u %u %u %u\n",
54 un
.bytes
[0], un
.bytes
[1], un
.bytes
[2], un
.bytes
[3]);
55 un
.l
= PR_htonl(un
.l
);
56 printf("%u %u %u %u\n",
57 un
.bytes
[0], un
.bytes
[1], un
.bytes
[2], un
.bytes
[3]);
58 if (memcmp(un
.bytes
, bytes_n
, 4)) {
59 fprintf(stderr
, "PR_htonl failed\n");
62 un
.l
= PR_ntohl(un
.l
);
63 printf("%u %u %u %u\n",
64 un
.bytes
[0], un
.bytes
[1], un
.bytes
[2], un
.bytes
[3]);
66 fprintf(stderr
, "PR_ntohl failed\n");
71 printf("%u %u %u %u %u %u %u %u\n",
72 un
.bytes
[0], un
.bytes
[1], un
.bytes
[2], un
.bytes
[3],
73 un
.bytes
[4], un
.bytes
[5], un
.bytes
[6], un
.bytes
[7]);
74 un
.ll
= PR_htonll(un
.ll
);
75 printf("%u %u %u %u %u %u %u %u\n",
76 un
.bytes
[0], un
.bytes
[1], un
.bytes
[2], un
.bytes
[3],
77 un
.bytes
[4], un
.bytes
[5], un
.bytes
[6], un
.bytes
[7]);
78 if (memcmp(un
.bytes
, bytes_n
, 8)) {
79 fprintf(stderr
, "PR_htonll failed\n");
82 un
.ll
= PR_ntohll(un
.ll
);
83 printf("%u %u %u %u %u %u %u %u\n",
84 un
.bytes
[0], un
.bytes
[1], un
.bytes
[2], un
.bytes
[3],
85 un
.bytes
[4], un
.bytes
[5], un
.bytes
[6], un
.bytes
[7]);
86 if (LL_NE(un
.ll
, ll_h
)) {
87 fprintf(stderr
, "PR_ntohll failed\n");