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 <riclau@uk.ibm.com>
1 parent 5de1771 commit f6f69aa

2 files changed

Lines changed: 25 additions & 6 deletions

File tree

‎test/parallel/test-buffer-writedouble.js‎

Lines changed: 13 additions & 4 deletions
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(newUint8Array([
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(newUint8Array([
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(newUint8Array([
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‎

Lines changed: 12 additions & 2 deletions
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-
newUint8Array([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(newUint8Array(
59+
[0x7F,0xBF,0xFF,0xFF,0xFF,0xFF,0xBF,0x7F])));
60+
}else{
61+
assert.ok(
62+
buffer.equals(newUint8Array(
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)