-
Notifications
You must be signed in to change notification settings - Fork 30.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
test: fix tests on mips #20377
test: fix tests on mips #20377
Conversation
Mips has a different way of handling NaN. This makes sure the tests pass on MIPS as well.
@@ -70,6 +70,10 @@ buffer.writeDoubleLE(NaN, 8); | |||
assert.ok(buffer.equals(new Uint8Array([ | |||
0x7F, 0xF8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, | |||
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xF8, 0x7F | |||
// Mips processors use a different NaN. | |||
])) || buffer.equals(new Uint8Array([ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can we detect running on mips and only assert the alternative value if so?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done.
The performance jit logger is not implemented on mips.
Comment addressd. I also added another commit to fix the flag issue. |
0x7F, 0xF7, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, | ||
0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xF7, 0x7F | ||
]))); | ||
if (process.arch === 'mips') { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
According to the docs for process.arch
:
The current possible values are:
'arm'
,'arm64'
,'ia32'
,'mips'
,'mipsel'
,'ppc'
,'ppc64'
,'s390'
,'s390x'
,'x32'
, and'x64'
.
so we probably need to be checking for mipsel
as well. Maybe mips64el
too. Perhaps @kapouer or anyone else with access to mips can check?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm, actually, it seems like we either have to use the first approach or we can just check one byte.
https://sourceware.org/binutils/docs/as/MIPS-NaN-Encodings.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If we go back to the first approach, maybe add a comment Allow both quiet and signalling NaNs
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have not built nodejs 10 on mipsel yet, but nodejs 8.11 gives the same result as mips on mipsel.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I check one byte now and the check will then verify if the whole entry is correct and added a comment.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
So now there is no need to be specific about any architecture anymore.
assert.ok( | ||
buffer.equals(new Uint8Array( | ||
[ 0x7F, 0xC0, 0x00, 0x00, 0x00, 0x00, 0xC0, 0x7F ]))); | ||
} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
buffer[1] === 0xF7
isn't true for either assert?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It was late ^^. Fixed.
Mips has a different way of handling NaN. This makes sure the tests pass on MIPS as well. PR-URL: nodejs#20377 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
The performance jit logger is not implemented on mips. PR-URL: nodejs#20377 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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>
The performance jit logger is not implemented on mips. PR-URL: #20377 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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>
The performance jit logger is not implemented on mips. PR-URL: #20377 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
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>
The performance jit logger is not implemented on mips. PR-URL: #20377 Reviewed-By: Richard Lau <riclau@uk.ibm.com>
Mips has a different way of handling NaN. This makes sure the tests
pass on MIPS as well.
This partially fix-es #20336 (the - is there to prevent github to close the issue).
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes