From 7efc64dc94aab8cee73c243ab901513005de00ed Mon Sep 17 00:00:00 2001 From: James Cowgill Date: Wed, 26 Nov 2014 17:06:19 +0000 Subject: [PATCH] test: fix floating point NaN tests on mips MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit MIPS machines use a slightly different format for NaNs (still perfectly valid though). This patch adjusts the buffer testcases to allow for this. See https://en.wikipedia.org/wiki/NaN#Encoding for some more info. Based on patch applied to debian by Jérémy Lal Reviewed-By: Fedor Indutny PR-URL: https://github.com/joyent/node/pull/8793 --- test/simple/test-writedouble.js | 29 +++++++++++++++-------------- test/simple/test-writefloat.js | 13 +++++++------ 2 files changed, 22 insertions(+), 20 deletions(-) diff --git a/test/simple/test-writedouble.js b/test/simple/test-writedouble.js index 10b87d9b7f52f1..a700a82b42c0ae 100644 --- a/test/simple/test-writedouble.js +++ b/test/simple/test-writedouble.js @@ -170,20 +170,21 @@ function test(clazz) { // Darwin ia32 does the other kind of NaN. // Compiler bug. No one really cares. ASSERT(0x7F === buffer[0] || 0xFF === buffer[0]); - ASSERT.equal(0xF8, buffer[1]); - ASSERT.equal(0x00, buffer[2]); - ASSERT.equal(0x00, buffer[3]); - ASSERT.equal(0x00, buffer[4]); - ASSERT.equal(0x00, buffer[5]); - ASSERT.equal(0x00, buffer[6]); - ASSERT.equal(0x00, buffer[7]); - ASSERT.equal(0x00, buffer[8]); - ASSERT.equal(0x00, buffer[9]); - ASSERT.equal(0x00, buffer[10]); - ASSERT.equal(0x00, buffer[11]); - ASSERT.equal(0x00, buffer[12]); - ASSERT.equal(0x00, buffer[13]); - ASSERT.equal(0xF8, buffer[14]); + // mips processors use a slightly different NaN + ASSERT(0xF8 === buffer[1] || 0xF7 === buffer[1]); + ASSERT(0x00 === buffer[2] || 0xFF === buffer[2]); + ASSERT(0x00 === buffer[3] || 0xFF === buffer[3]); + ASSERT(0x00 === buffer[4] || 0xFF === buffer[4]); + ASSERT(0x00 === buffer[5] || 0xFF === buffer[5]); + ASSERT(0x00 === buffer[6] || 0xFF === buffer[6]); + ASSERT(0x00 === buffer[7] || 0xFF === buffer[7]); + ASSERT(0x00 === buffer[8] || 0xFF === buffer[8]); + ASSERT(0x00 === buffer[9] || 0xFF === buffer[9]); + ASSERT(0x00 === buffer[10] || 0xFF === buffer[10]); + ASSERT(0x00 === buffer[11] || 0xFF === buffer[11]); + ASSERT(0x00 === buffer[12] || 0xFF === buffer[12]); + ASSERT(0x00 === buffer[13] || 0xFF === buffer[13]); + ASSERT(0xF8 === buffer[14] || 0xF7 === buffer[14]); // Darwin ia32 does the other kind of NaN. // Compiler bug. No one really cares. ASSERT(0x7F === buffer[15] || 0xFF === buffer[15]); diff --git a/test/simple/test-writefloat.js b/test/simple/test-writefloat.js index 4c736b73afef79..0b4d21532eae9b 100644 --- a/test/simple/test-writefloat.js +++ b/test/simple/test-writefloat.js @@ -116,12 +116,13 @@ function test(clazz) { // Darwin ia32 does the other kind of NaN. // Compiler bug. No one really cares. ASSERT(0x7F === buffer[0] || 0xFF === buffer[0]); - ASSERT.equal(0xc0, buffer[1]); - ASSERT.equal(0x00, buffer[2]); - ASSERT.equal(0x00, buffer[3]); - ASSERT.equal(0x00, buffer[4]); - ASSERT.equal(0x00, buffer[5]); - ASSERT.equal(0xc0, buffer[6]); + // mips processors use a slightly different NaN + ASSERT(0xC0 === buffer[1] || 0xBF === buffer[1]); + ASSERT(0x00 === buffer[2] || 0xFF === buffer[2]); + ASSERT(0x00 === buffer[3] || 0xFF === buffer[3]); + ASSERT(0x00 === buffer[4] || 0xFF === buffer[4]); + ASSERT(0x00 === buffer[5] || 0xFF === buffer[5]); + ASSERT(0xC0 === buffer[6] || 0xBF === buffer[6]); // Darwin ia32 does the other kind of NaN. // Compiler bug. No one really cares. ASSERT(0x7F === buffer[7] || 0xFF === buffer[7]);