From c713aa1a13e588248efb92e9a16800644d298410 Mon Sep 17 00:00:00 2001 From: Nickolay Shmyrev Date: Thu, 6 May 2021 02:10:07 +0200 Subject: [PATCH 1/3] Update tests to use Napi instead of Nan --- .travis.yml | 11 ++--- appveyor.yml | 6 +-- package.json | 16 +++---- test/binding.gyp | 26 ++++++++---- test/native_tests.cc | 99 ++++++++++++++++++++++---------------------- test/union.js | 4 +- 6 files changed, 85 insertions(+), 77 deletions(-) diff --git a/.travis.yml b/.travis.yml index 0cb9e2e..00c380e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,21 +1,18 @@ sudo: false -env: - - CXX=g++-4.9 addons: apt: sources: - ubuntu-toolchain-r-test packages: - - g++-4.9 + - g++ language: node_js node_js: - - "4" - - "6" - - "8" - - "9" + - "14" + - "15" + - "16" after_success: - npm install coveralls diff --git a/appveyor.yml b/appveyor.yml index e6fe96a..eec7471 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -5,10 +5,8 @@ environment: # Test against these versions of Node.js and io.js matrix: # node.js - - nodejs_version: "4" - - nodejs_version: "6" - - nodejs_version: "8" - - nodejs_version: "9" + - nodejs_version: "14" + - nodejs_version: "15" platform: - x86 diff --git a/package.json b/package.json index 3c7e991..32b88ee 100644 --- a/package.json +++ b/package.json @@ -21,17 +21,17 @@ "main": "./lib/union.js", "license": "MIT", "scripts": { - "test": "node-gyp rebuild --directory test && mocha -gc --reporter spec" + "test": "node-gyp rebuild --directory test && mocha --expose-gc --reporter spec" }, "dependencies": { - "debug": "^3.1.0" + "debug": "^4.3.1", + "node-gyp-build": "^4.2.1" }, "devDependencies": { - "bindings": "^1.3.0", - "mocha": "^5.0.0", - "nan": "^2.8.0", - "nyc": "^12.0.1", - "ref": "^1.3.5", - "ref-struct-di": "^1.1.0" + "mocha": "^7.1.1", + "node-addon-api": "^3.0.0", + "nyc": "^15.0.0", + "ref-napi": "^3.0.2", + "ref-struct-di": "^1.1.1" } } diff --git a/test/binding.gyp b/test/binding.gyp index 91ccbe7..061fa61 100644 --- a/test/binding.gyp +++ b/test/binding.gyp @@ -1,11 +1,23 @@ { 'targets': [ - { - 'target_name': 'native_tests', - 'sources': [ 'native_tests.cc' ], - 'include_dirs': [ - ' -#include "nan.h" +#include "napi.h" #ifdef _WIN32 #define __alignof__ __alignof #endif -using namespace node; +using namespace Napi; namespace { @@ -58,54 +58,55 @@ typedef union _test8 { } test8; -void Initialize(v8::Handle target) { - Nan::HandleScope scope; - - Nan::Set(target, Nan::New("test1 sizeof").ToLocalChecked(), Nan::New(sizeof(test1))); - Nan::Set(target, Nan::New("test1 alignof").ToLocalChecked(), Nan::New(__alignof__(test1))); - Nan::Set(target, Nan::New("test1 offsetof a").ToLocalChecked(), Nan::New(offsetof(test1, a))); - Nan::Set(target, Nan::New("test1 offsetof b").ToLocalChecked(), Nan::New(offsetof(test1, b))); - - Nan::Set(target, Nan::New("test2 sizeof").ToLocalChecked(), Nan::New(sizeof(test2))); - Nan::Set(target, Nan::New("test2 alignof").ToLocalChecked(), Nan::New(__alignof__(test2))); - Nan::Set(target, Nan::New("test2 offsetof a").ToLocalChecked(), Nan::New(offsetof(test2, a))); - Nan::Set(target, Nan::New("test2 offsetof b").ToLocalChecked(), Nan::New(offsetof(test2, b))); - - Nan::Set(target, Nan::New("test3 sizeof").ToLocalChecked(), Nan::New(sizeof(test3))); - Nan::Set(target, Nan::New("test3 alignof").ToLocalChecked(), Nan::New(__alignof__(test3))); - Nan::Set(target, Nan::New("test3 offsetof a").ToLocalChecked(), Nan::New(offsetof(test3, a))); - Nan::Set(target, Nan::New("test3 offsetof b").ToLocalChecked(), Nan::New(offsetof(test3, b))); - Nan::Set(target, Nan::New("test3 offsetof c").ToLocalChecked(), Nan::New(offsetof(test3, c))); - - Nan::Set(target, Nan::New("test4 sizeof").ToLocalChecked(), Nan::New(sizeof(test4))); - Nan::Set(target, Nan::New("test4 alignof").ToLocalChecked(), Nan::New(__alignof__(test4))); - Nan::Set(target, Nan::New("test4 offsetof a").ToLocalChecked(), Nan::New(offsetof(test4, a))); - Nan::Set(target, Nan::New("test4 offsetof b").ToLocalChecked(), Nan::New(offsetof(test4, b))); - - Nan::Set(target, Nan::New("test5 sizeof").ToLocalChecked(), Nan::New(sizeof(test5))); - Nan::Set(target, Nan::New("test5 alignof").ToLocalChecked(), Nan::New(__alignof__(test5))); - Nan::Set(target, Nan::New("test5 offsetof a").ToLocalChecked(), Nan::New(offsetof(test5, a))); - Nan::Set(target, Nan::New("test5 offsetof b").ToLocalChecked(), Nan::New(offsetof(test5, b))); - - Nan::Set(target, Nan::New("test6 sizeof").ToLocalChecked(), Nan::New(sizeof(test6))); - Nan::Set(target, Nan::New("test6 alignof").ToLocalChecked(), Nan::New(__alignof__(test6))); - Nan::Set(target, Nan::New("test6 offsetof a").ToLocalChecked(), Nan::New(offsetof(test6, a))); - Nan::Set(target, Nan::New("test6 offsetof b").ToLocalChecked(), Nan::New(offsetof(test6, b))); - - Nan::Set(target, Nan::New("test7 sizeof").ToLocalChecked(), Nan::New(sizeof(test7))); - Nan::Set(target, Nan::New("test7 alignof").ToLocalChecked(), Nan::New(__alignof__(test7))); - Nan::Set(target, Nan::New("test7 offsetof a").ToLocalChecked(), Nan::New(offsetof(test7, a))); - Nan::Set(target, Nan::New("test7 offsetof b").ToLocalChecked(), Nan::New(offsetof(test7, b))); - Nan::Set(target, Nan::New("test7 offsetof c").ToLocalChecked(), Nan::New(offsetof(test7, c))); - Nan::Set(target, Nan::New("test7 offsetof d").ToLocalChecked(), Nan::New(offsetof(test7, d))); - - Nan::Set(target, Nan::New("test8 sizeof").ToLocalChecked(), Nan::New(sizeof(test8))); - Nan::Set(target, Nan::New("test8 alignof").ToLocalChecked(), Nan::New(__alignof__(test8))); - Nan::Set(target, Nan::New("test8 offsetof a").ToLocalChecked(), Nan::New(offsetof(test8, a))); - Nan::Set(target, Nan::New("test8 offsetof b").ToLocalChecked(), Nan::New(offsetof(test8, b))); - Nan::Set(target, Nan::New("test8 offsetof c").ToLocalChecked(), Nan::New(offsetof(test8, c))); +Object Initialize(Env env, Object exports) { + + exports.Set("test1 sizeof", sizeof(test1)); + exports.Set("test1 alignof", __alignof__(test1)); + exports.Set("test1 offsetof a", offsetof(test1, a)); + exports.Set("test1 offsetof b", offsetof(test1, b)); + + exports.Set("test2 sizeof", sizeof(test2)); + exports.Set("test2 alignof", __alignof__(test2)); + exports.Set("test2 offsetof a", offsetof(test2, a)); + exports.Set("test2 offsetof b", offsetof(test2, b)); + + exports.Set("test3 sizeof", sizeof(test3)); + exports.Set("test3 alignof", __alignof__(test3)); + exports.Set("test3 offsetof a", offsetof(test3, a)); + exports.Set("test3 offsetof b", offsetof(test3, b)); + exports.Set("test3 offsetof c", offsetof(test3, c)); + + exports.Set("test4 sizeof", sizeof(test4)); + exports.Set("test4 alignof", __alignof__(test4)); + exports.Set("test4 offsetof a", offsetof(test4, a)); + exports.Set("test4 offsetof b", offsetof(test4, b)); + + exports.Set("test5 sizeof", sizeof(test5)); + exports.Set("test5 alignof", __alignof__(test5)); + exports.Set("test5 offsetof a", offsetof(test5, a)); + exports.Set("test5 offsetof b", offsetof(test5, b)); + + exports.Set("test6 sizeof", sizeof(test6)); + exports.Set("test6 alignof", __alignof__(test6)); + exports.Set("test6 offsetof a", offsetof(test6, a)); + exports.Set("test6 offsetof b", offsetof(test6, b)); + + exports.Set("test7 sizeof", sizeof(test7)); + exports.Set("test7 alignof", __alignof__(test7)); + exports.Set("test7 offsetof a", offsetof(test7, a)); + exports.Set("test7 offsetof b", offsetof(test7, b)); + exports.Set("test7 offsetof c", offsetof(test7, c)); + exports.Set("test7 offsetof d", offsetof(test7, d)); + + exports.Set("test8 sizeof", sizeof(test8)); + exports.Set("test8 alignof", __alignof__(test8)); + exports.Set("test8 offsetof a", offsetof(test8, a)); + exports.Set("test8 offsetof b", offsetof(test8, b)); + exports.Set("test8 offsetof c", offsetof(test8, c)); + + return exports; } } // anonymous namespace -NODE_MODULE(native_tests, Initialize); +NODE_API_MODULE(native_tests, Initialize); diff --git a/test/union.js b/test/union.js index c8942df..ff8e716 100644 --- a/test/union.js +++ b/test/union.js @@ -1,9 +1,9 @@ var assert = require('assert') - , ref = require('ref') + , ref = require('ref-napi') , Struct = require('ref-struct-di')(ref) , Union = require('../')(ref) - , bindings = require('bindings')({ module_root: __dirname, bindings: 'native_tests' }) + , bindings = require('node-gyp-build')(__dirname); describe('Union', function () { From 0cab080b9fd2d4b33b0c3be2787b95a02c0735f3 Mon Sep 17 00:00:00 2001 From: Nickolay Shmyrev Date: Thu, 6 May 2021 14:01:55 +0200 Subject: [PATCH 2/3] Move node-gyp-build to dev dependencies --- package.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 32b88ee..03c2c2c 100644 --- a/package.json +++ b/package.json @@ -24,13 +24,13 @@ "test": "node-gyp rebuild --directory test && mocha --expose-gc --reporter spec" }, "dependencies": { - "debug": "^4.3.1", - "node-gyp-build": "^4.2.1" + "debug": "^4.3.1" }, "devDependencies": { "mocha": "^7.1.1", - "node-addon-api": "^3.0.0", "nyc": "^15.0.0", + "node-gyp-build": "^4.2.1", + "node-addon-api": "^3.0.0", "ref-napi": "^3.0.2", "ref-struct-di": "^1.1.1" } From 8afd47c5a768410f06ac2c1d269c2f6e4e833cfd Mon Sep 17 00:00:00 2001 From: Nickolay Shmyrev Date: Thu, 6 May 2021 14:10:26 +0200 Subject: [PATCH 3/3] No need for separate gcc --- .travis.yml | 2 -- package.json | 4 ++-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 00c380e..0d31a73 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,8 +4,6 @@ addons: apt: sources: - ubuntu-toolchain-r-test - packages: - - g++ language: node_js diff --git a/package.json b/package.json index 03c2c2c..639aaa1 100644 --- a/package.json +++ b/package.json @@ -28,9 +28,9 @@ }, "devDependencies": { "mocha": "^7.1.1", - "nyc": "^15.0.0", - "node-gyp-build": "^4.2.1", "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.1", + "nyc": "^15.0.0", "ref-napi": "^3.0.2", "ref-struct-di": "^1.1.1" }