Skip to content
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

n-api: port test for make_callback #12409

Closed

Conversation

digitalinfinity
Copy link
Contributor

Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to napi

Checklist
  • make -j4 test (UNIX), or vcbuild test (Windows) passes
  • tests and/or benchmarks are included
  • commit message follows commit guidelines
Affected core subsystem(s)

n-api, test

@nodejs-github-bot nodejs-github-bot added node-api Issues and PRs related to the Node-API. test Issues and PRs related to the tests. labels Apr 14, 2017
@digitalinfinity
Copy link
Contributor Author

cc @nodejs/n-api

FYI, @jasongin - noticed that one of the existing node::makeCallback tests was failing- I've commented that test case out in this test, and we can track that with a separate issue

@vsemozhetbyt
Copy link
Contributor

@digitalinfinity
Copy link
Contributor Author

Thanks @vsemozhetbyt - pushed a quick commit to fix the typo that caused the CI break - I haven't had a chance to fully retest after the latest commit, but I'll try that in the morning. Apologies for the break 😞

@vsemozhetbyt
Copy link
Contributor

Copy link
Member

@addaleax addaleax left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks good to me, but it’s probably worth mentioning that this doesn’t seem to test the relevant use case for MakeCallback, i.e. entering JS from a async worker’s complete callback without any pre-existing JS stack.

That’s probably best kept for another PR, but something like that should be added.


napi_valuetype func_type;

NAPI_CALL(env, napi_typeof(env, args[1], &func_type));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why args[1] instead of func?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oversight - I'll change (initially everything was args[blah] but I refactored to use locals but missed updating this reference)

@addaleax
Copy link
Member

Oh, also: For test-only changes we prefer to use test: instead of another subsystem label, that makes it easier to filter out the actual behavioural changes in our changelogs, it would be good if you could update that here

@digitalinfinity
Copy link
Contributor Author

Thanks @addaleax @benjamingr for reviewing. @addaleax I can rewrite the commit title- is that what you meant, or did you mean I should update the PR title?

@addaleax
Copy link
Member

@digitalinfinity Yes, updating the commit message would be good (you can squash the commits together at the same time, if you like). Or we just hope the person landing these changes doesn’t overlook these comments. 😄

@digitalinfinity
Copy link
Contributor Author

Thanks @addaleax - rebased and squashed.

jasnell pushed a commit that referenced this pull request Apr 17, 2017
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

PR-URL: #12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
@jasnell
Copy link
Member

jasnell commented Apr 17, 2017

Landed in 70b51c8

@jasnell jasnell closed this Apr 17, 2017
@jasnell jasnell reopened this Apr 17, 2017
@jasnell
Copy link
Member

jasnell commented Apr 17, 2017

opened a PR to revert this. It's broken on windows.

@jasnell
Copy link
Member

jasnell commented Apr 17, 2017

Post mortem on having to revert this: I had seen the CI failure on windows but had moved this to the wrong list when I was organizing the set of PRs to land and which needed more time. Since the CI failure only shows on Windows, it didn't show up when I ran make test locally on Ubuntu before landing. The Windows CI failure needs to be looked at then it can be landed again.

@mhdawson
Copy link
Member

@digitalinfinity this is waiting for fixup due to the ci failures.

@addaleax
Copy link
Member

New CI because the old one is inaccessible: https://ci.nodejs.org/job/node-test-commit/9514/

@addaleax
Copy link
Member

CI looks really good – I can’t see the old failures anymore, maybe this has been fixed as part of other changes? Can somebody from @nodejs/platform-windows check that this works fine now?

@refack
Copy link
Contributor

refack commented Apr 30, 2017

I started a build.
Can anyone tell me what to look for? What were the previous failures?

@refack
Copy link
Contributor

refack commented Apr 30, 2017

D:\code\node-cur\test\addons-napi\test_make_callback$ d:\code\node-cur\Debug\node.exe --napi-modules test.js
MyFunc was called with 3 arguments
(node:2820) Warning: N-API is an experimental feature and could change at any time.

D:\code\node-cur\test\addons-napi\test_make_callback$ echo %ERRORLEVEL%
0

and

D:\code\node-cur\test\addons-napi\test_make_callback_recurse$ d:\code\node-cur\Debug\node.exe --napi-modules test.js
(node:10872) Warning: N-API is an experimental feature and could change at any time.

D:\code\node-cur\test\addons-napi\test_make_callback_recurse$ echo %ERRORLEVEL%
0

@digitalinfinity
Copy link
Contributor Author

Whoops, my bad y'all, I missed that this guy hadn't landed yet- I'll fix the lint error and update

@digitalinfinity
Copy link
Contributor Author

Ok, rebased and fixed the lint error- can someone help trigger a CI run please for sanity?

@refack
Copy link
Contributor

refack commented May 5, 2017

New CI: https://ci.nodejs.org/job/node-test-commit/9652/
Good luck 🤞

@digitalinfinity
Copy link
Contributor Author

gah- it fails on the older version of the compiler for windows- i'll update the PR

Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api
@digitalinfinity
Copy link
Contributor Author

Updated the PR to use const instead of constexpr- @nodejs/platform-windows what is the support story for compilers on Windows. The failing case was VS2015, but AFAIK VS2015 has supported constexpr since at least VS2015 Update 1. Do we support older compilers or does Jenkins need to be updated?

@kunalspathak
Copy link
Member

kunalspathak commented May 5, 2017

@seishun
Copy link
Contributor

seishun commented May 5, 2017

It seems CI is accidentally using the wrong VS version to build the addons, since 12.0 is VS2013 (which is not supported for building Node.js).

@refack
Copy link
Contributor

refack commented May 5, 2017

Ping @nodejs/build is win2008r2/vs2015 purposefully using Visual Studio 2015 without Update 1?

@digitalinfinity
Copy link
Contributor Author

Independent of the CI configuration, it looks like the CI for the latest commit passed- thanks @kunalspathak for triggering the CI

@refack
Copy link
Contributor

refack commented May 6, 2017

@jasnell / @addaleax can I land this?

@addaleax
Copy link
Member

addaleax commented May 6, 2017

@refack I think so, yes

refack pushed a commit to refack/node that referenced this pull request May 6, 2017
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

PR-URL: nodejs#12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Refael Ackermann <[email protected]>
@refack
Copy link
Contributor

refack commented May 6, 2017

Landed in 73d9c0f

@refack refack closed this May 6, 2017
@refack
Copy link
Contributor

refack commented May 6, 2017

@joaocgreis
Copy link
Member

A note about our CI configuration: All Windows 2008 machines run VS2013, since for building native modules VS2013 is still supported. So, the node-compile-windows job does not run on VS2013 for recent versions, but the node-test-binary-windows job will run the addons tests with VS2013 on the configurations that run in Windows 2008.

anchnk pushed a commit to anchnk/node that referenced this pull request May 19, 2017
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

PR-URL: nodejs#12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Refael Ackermann <[email protected]>
@jasnell jasnell mentioned this pull request May 11, 2017
gabrielschulhof pushed a commit to gabrielschulhof/node that referenced this pull request Apr 10, 2018
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

PR-URL: nodejs#12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
gabrielschulhof pushed a commit to gabrielschulhof/node that referenced this pull request Apr 10, 2018
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

PR-URL: nodejs#12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Refael Ackermann <[email protected]>
MylesBorins pushed a commit that referenced this pull request Apr 16, 2018
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

Backport-PR-URL: #19447
PR-URL: #12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
MylesBorins pushed a commit that referenced this pull request Apr 16, 2018
Improved test coverage for napi_make_callback by porting the
existing addons/make_callback test to n-api

Backport-PR-URL: #19447
PR-URL: #12409
Reviewed-By: Anna Henningsen <[email protected]>
Reviewed-By: Benjamin Gruenbaum <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Refael Ackermann <[email protected]>
@MylesBorins MylesBorins mentioned this pull request Apr 16, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
node-api Issues and PRs related to the Node-API. test Issues and PRs related to the tests.
Projects
None yet
Development

Successfully merging this pull request may close these issues.