]>
git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/thrift/lib/nodejs/test/binary.test.js
2 * Licensed to the Apache Software Foundation (ASF) under one
3 * or more contributor license agreements. See the NOTICE file
4 * distributed with this work for additional information
5 * regarding copyright ownership. The ASF licenses this file
6 * to you under the Apache License, Version 2.0 (the
7 * "License"); you may not use this file except in compliance
8 * with the License. You may obtain a copy of the License at
10 * http://www.apache.org/licenses/LICENSE-2.0
12 * Unless required by applicable law or agreed to in writing,
13 * software distributed under the License is distributed on an
14 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
15 * KIND, either express or implied. See the License for the
16 * specific language governing permissions and limitations
20 const test
= require("tape");
21 const binary
= require("thrift/binary");
24 "Should read signed byte": function(assert
) {
25 assert
.equal(1, binary
.readByte(0x01));
26 assert
.equal(-1, binary
.readByte(0xff));
28 assert
.equal(127, binary
.readByte(0x7f));
29 assert
.equal(-128, binary
.readByte(0x80));
32 "Should write byte": function(assert
) {
33 //Protocol simply writes to the buffer. Nothing to test.. yet.
37 "Should read I16": function(assert
) {
38 assert
.equal(0, binary
.readI16([0x00, 0x00]));
39 assert
.equal(1, binary
.readI16([0x00, 0x01]));
40 assert
.equal(-1, binary
.readI16([0xff, 0xff]));
43 assert
.equal(-32768, binary
.readI16([0x80, 0x00]));
45 assert
.equal(32767, binary
.readI16([0x7f, 0xff]));
49 "Should write I16": function(assert
) {
50 assert
.deepEqual([0x00, 0x00], binary
.writeI16([], 0));
51 assert
.deepEqual([0x00, 0x01], binary
.writeI16([], 1));
52 assert
.deepEqual([0xff, 0xff], binary
.writeI16([], -1));
55 assert
.deepEqual([0x80, 0x00], binary
.writeI16([], -32768));
57 assert
.deepEqual([0x7f, 0xff], binary
.writeI16([], 32767));
61 "Should read I32": function(assert
) {
62 assert
.equal(0, binary
.readI32([0x00, 0x00, 0x00, 0x00]));
63 assert
.equal(1, binary
.readI32([0x00, 0x00, 0x00, 0x01]));
64 assert
.equal(-1, binary
.readI32([0xff, 0xff, 0xff, 0xff]));
67 assert
.equal(-2147483648, binary
.readI32([0x80, 0x00, 0x00, 0x00]));
69 assert
.equal(2147483647, binary
.readI32([0x7f, 0xff, 0xff, 0xff]));
73 "Should write I32": function(assert
) {
74 assert
.deepEqual([0x00, 0x00, 0x00, 0x00], binary
.writeI32([], 0));
75 assert
.deepEqual([0x00, 0x00, 0x00, 0x01], binary
.writeI32([], 1));
76 assert
.deepEqual([0xff, 0xff, 0xff, 0xff], binary
.writeI32([], -1));
80 [0x80, 0x00, 0x00, 0x00],
81 binary
.writeI32([], -2147483648)
84 assert
.deepEqual([0x7f, 0xff, 0xff, 0xff], binary
.writeI32([], 2147483647));
88 "Should read doubles": function(assert
) {
91 binary
.readDouble([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
95 binary
.readDouble([0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
99 binary
.readDouble([0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
103 binary
.readDouble([0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
107 binary
.readDouble([0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
112 binary
.readDouble([0x40, 0x9, 0x21, 0xfb, 0x54, 0x44, 0x2d, 0x18])
117 binary
.readDouble([0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
121 binary
.readDouble([0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
125 isNaN(binary
.readDouble([0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00]))
130 binary
.readDouble([0x3f, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55])
133 // Min subnormal positive double
135 4.9406564584124654e-324,
136 binary
.readDouble([0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01])
138 // Min normal positive double
140 2.2250738585072014e-308,
141 binary
.readDouble([0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00])
143 // Max positive double
145 1.7976931348623157e308
,
146 binary
.readDouble([0x7f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff])
151 "Should write doubles": function(assert
) {
153 [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
154 binary
.writeDouble([], 0)
157 [0x3f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
158 binary
.writeDouble([], 1)
161 [0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
162 binary
.writeDouble([], 2)
165 [0xc0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
166 binary
.writeDouble([], -2)
170 [0x40, 0x9, 0x21, 0xfb, 0x54, 0x44, 0x2d, 0x18],
171 binary
.writeDouble([], Math
.PI
)
175 [0x7f, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
176 binary
.writeDouble([], Infinity
)
179 [0xff, 0xf0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
180 binary
.writeDouble([], -Infinity
)
184 [0x7f, 0xf8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
185 binary
.writeDouble([], NaN
)
189 [0x3f, 0xd5, 0x55, 0x55, 0x55, 0x55, 0x55, 0x55],
190 binary
.writeDouble([], 1 / 3)
193 // Min subnormal positive double
195 [0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01],
196 binary
.writeDouble([], 4.9406564584124654e-324)
198 // Min normal positive double
200 [0x00, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00],
201 binary
.writeDouble([], 2.2250738585072014e-308)
203 // Max positive double
205 [0x7f, 0xef, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff],
206 binary
.writeDouble([], 1.7976931348623157e308
)
212 Object
.keys(cases
).forEach(function(caseName
) {
213 test(caseName
, cases
[caseName
]);