Skip to content

Commit f6f69aa

Browse files
BridgeARMylesBorins
authored andcommitted
test: fix buffer writes on mips
Mips has a different way of handling NaN. This makes sure the tests pass on MIPS as well. PR-URL: #20377 Reviewed-By: Richard Lau <[email protected]>
1 parent 5de1771 commit f6f69aa

File tree

2 files changed

+25
-6
lines changed

2 files changed

+25
-6
lines changed

test/parallel/test-buffer-writedouble.js

+13-4
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,19 @@ assert.strictEqual(buffer.readDoubleLE(8), -Infinity);
6767
buffer.writeDoubleBE(NaN, 0);
6868
buffer.writeDoubleLE(NaN, 8);
6969

70-
assert.ok(buffer.equals(new Uint8Array([
71-
0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
72-
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F
73-
])));
70+
// JS only knows a single NaN but there exist two platform specific
71+
// implementations. Therefore, allow both quiet and signalling NaNs.
72+
if (buffer[1] === 0xF7) {
73+
assert.ok(buffer.equals(new Uint8Array([
74+
0x7F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF,
75+
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7F
76+
])));
77+
} else {
78+
assert.ok(buffer.equals(new Uint8Array([
79+
0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
80+
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F
81+
])));
82+
}
7483

7584
assert.ok(Number.isNaN(buffer.readDoubleBE(0)));
7685
assert.ok(Number.isNaN(buffer.readDoubleLE(8)));

test/parallel/test-buffer-writefloat.js

+12-2
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,18 @@ assert.strictEqual(buffer.readFloatLE(4), -Infinity);
5050

5151
buffer.writeFloatBE(NaN, 0);
5252
buffer.writeFloatLE(NaN, 4);
53-
assert.ok(buffer.equals(
54-
new Uint8Array([ 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F ])));
53+
54+
// JS only knows a single NaN but there exist two platform specific
55+
// implementations. Therefore, allow both quiet and signalling NaNs.
56+
if (buffer[1] === 0xBF) {
57+
assert.ok(
58+
buffer.equals(new Uint8Array(
59+
[ 0x7F, 0xBF, 0xFF, 0xFF, 0xFF, 0xFF, 0xBF, 0x7F ])));
60+
} else {
61+
assert.ok(
62+
buffer.equals(new Uint8Array(
63+
[ 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F ])));
64+
}
5565

5666
assert.ok(Number.isNaN(buffer.readFloatBE(0)));
5767
assert.ok(Number.isNaN(buffer.readFloatLE(4)));

0 commit comments

Comments
 (0)