Skip to content

Commit fa5afce

Browse files
agraciokkoopa
authored andcommitted
fix tests
1 parent b46b26c commit fa5afce

File tree

7 files changed

+147
-96
lines changed

7 files changed

+147
-96
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ jobs:
1717
steps:
1818
- uses: actions/checkout@v4
1919
- uses: pre-commit/[email protected]
20-
20+
2121
ci:
2222
strategy:
2323
fail-fast: false
@@ -35,14 +35,6 @@ jobs:
3535
os: ubuntu-24.04-arm # Linux on arm64
3636
- node-version: lts/*
3737
os: windows-2025
38-
- node-version: 14.x
39-
os: windows-2019
40-
- node-version: 12.x
41-
os: windows-2019
42-
- node-version: 10.x
43-
os: windows-2019
44-
- node-version: 8.x
45-
os: windows-2019
4638
runs-on: ${{ matrix.os }}
4739
steps:
4840
- uses: actions/checkout@v4

test/cpp/indexedinterceptors.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ NAN_INDEX_QUERY(IndexedInterceptor::PropertyQuery) {
122122
info.GetReturnValue().Set(Nan::New(0));
123123
return Intercepted::Yes();
124124
}
125-
return Intercepted::No();
125+
return Intercepted::Yes();
126126
}
127127

128128
NODE_MODULE(indexedinterceptors, IndexedInterceptor::Init)

test/cpp/namedinterceptors.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ NAN_PROPERTY_QUERY(NamedInterceptor::PropertyQuery) {
122122
info.GetReturnValue().Set(Nan::New(0));
123123
return Intercepted::Yes();
124124
}
125-
return Intercepted::No();
125+
return Intercepted::Yes();
126126
}
127127

128128
NODE_MODULE(namedinterceptors, NamedInterceptor::Init)

test/js/accessors-test.js

Lines changed: 42 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -9,27 +9,50 @@
99
const test = require('tap').test
1010
, testRoot = require('path').resolve(__dirname, '..')
1111
, bindings = require('bindings')({ module_root: testRoot, bindings: 'accessors' });
12+
const nodeVersion = parseInt(process.versions.node.split('.')[0]);
1213

1314
test('accessors', function (t) {
14-
t.plan(9)
1515
var settergetter = bindings.create()
16-
t.equal(settergetter.prop1, 'this is property 1')
17-
t.ok(settergetter.prop2 === '')
18-
settergetter.prop2 = 'setting a value'
19-
t.equal(settergetter.prop2, 'setting a value')
20-
t.equal(settergetter.log(),
21-
'New()\n' +
22-
'Prop1:GETTER(this is property 1)\n' +
23-
'Prop2:GETTER()\n' +
24-
'Prop2:SETTER(setting a value)\n' +
25-
'Prop2:GETTER(setting a value)\n'
26-
)
2716
var derived = Object.create(settergetter)
28-
t.equal(derived.prop1, 'this is property 1')
29-
derived.prop2 = 'setting a new value'
30-
t.equal(derived.prop2, 'setting a new value')
31-
t.equal(settergetter.prop2, 'setting a value')
32-
settergetter.prop2 = 'setting another value'
33-
t.equal(settergetter.prop2, 'setting another value')
34-
t.equal(derived.prop2, 'setting a new value')
17+
if(nodeVersion > 22){
18+
t.plan(9)
19+
t.equal(settergetter.prop1, 'this is property 1')
20+
t.ok(settergetter.prop2 === '')
21+
settergetter.prop2 = 'setting a value'
22+
t.equal(settergetter.prop2, 'setting a value')
23+
t.equal(settergetter.log(),
24+
'New()\n' +
25+
'Prop1:GETTER(this is property 1)\n' +
26+
'Prop2:GETTER()\n' +
27+
'Prop2:SETTER(setting a value)\n' +
28+
'Prop2:GETTER(setting a value)\n'
29+
)
30+
t.equal(derived.prop1, 'this is property 1')
31+
derived.prop2 = 'setting a new value'
32+
t.equal(derived.prop2, 'setting a new value')
33+
t.equal(settergetter.prop2, 'setting a value')
34+
settergetter.prop2 = 'setting another value'
35+
t.equal(settergetter.prop2, 'setting another value')
36+
t.equal(derived.prop2, 'setting a new value')
37+
38+
}
39+
else{
40+
t.plan(7)
41+
t.equal(settergetter.prop1, 'this is property 1')
42+
t.ok(settergetter.prop2 === '')
43+
settergetter.prop2 = 'setting a value'
44+
t.equal(settergetter.prop2, 'setting a value')
45+
t.equal(settergetter.log(),
46+
'New()\n' +
47+
'Prop1:GETTER(this is property 1)\n' +
48+
'Prop2:GETTER()\n' +
49+
'Prop2:SETTER(setting a value)\n' +
50+
'Prop2:GETTER(setting a value)\n'
51+
)
52+
t.equal(derived.prop1, 'this is property 1')
53+
derived.prop2 = 'setting a new value'
54+
t.equal(derived.prop2, 'setting a new value')
55+
t.equal(settergetter.prop2, 'setting a new value')
56+
57+
}
3558
})

test/js/methodswithdata-test.js

Lines changed: 42 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -9,32 +9,53 @@
99
const test = require('tap').test
1010
, testRoot = require('path').resolve(__dirname, '..')
1111
, bindings = require('bindings')({ module_root: testRoot, bindings: 'methodswithdata' })
12+
const nodeVersion = parseInt(process.versions.node.split('.')[0]);
1213

1314
test('SetMethod with data', function (t) {
1415
t.plan(1);
1516
t.ok(bindings.testWithData());
1617
});
1718

1819
test('accessors with data', function (t) {
19-
t.plan(9)
20-
var settergetter = bindings.create()
21-
t.equal(settergetter.prop1, 'this is property 1')
22-
t.ok(settergetter.prop2 === '')
23-
settergetter.prop2 = 'setting a value'
24-
t.equal(settergetter.prop2, 'setting a value')
25-
t.equal(settergetter.log(),
26-
'New()\n' +
27-
'Prop1:GETTER(this is property 1)\n' +
28-
'Prop2:GETTER()\n' +
29-
'Prop2:SETTER(setting a value)\n' +
30-
'Prop2:GETTER(setting a value)\n'
31-
)
32-
var derived = Object.create(settergetter)
33-
t.equal(derived.prop1, 'this is property 1')
34-
derived.prop2 = 'setting a new value'
35-
t.equal(derived.prop2, 'setting a new value')
36-
t.equal(settergetter.prop2, 'setting a value')
37-
settergetter.prop2 = 'setting another value'
38-
t.equal(settergetter.prop2, 'setting another value')
39-
t.equal(derived.prop2, 'setting a new value')
20+
var settergetter = bindings.create()
21+
var derived = Object.create(settergetter)
22+
if (nodeVersion > 22) {
23+
t.plan(9)
24+
t.equal(settergetter.prop1, 'this is property 1')
25+
t.ok(settergetter.prop2 === '')
26+
settergetter.prop2 = 'setting a value'
27+
t.equal(settergetter.prop2, 'setting a value')
28+
t.equal(settergetter.log(),
29+
'New()\n' +
30+
'Prop1:GETTER(this is property 1)\n' +
31+
'Prop2:GETTER()\n' +
32+
'Prop2:SETTER(setting a value)\n' +
33+
'Prop2:GETTER(setting a value)\n'
34+
)
35+
t.equal(derived.prop1, 'this is property 1')
36+
derived.prop2 = 'setting a new value'
37+
t.equal(derived.prop2, 'setting a new value')
38+
t.equal(settergetter.prop2, 'setting a value')
39+
settergetter.prop2 = 'setting another value'
40+
t.equal(settergetter.prop2, 'setting another value')
41+
t.equal(derived.prop2, 'setting a new value')
42+
} else {
43+
t.plan(7)
44+
t.equal(settergetter.prop1, 'this is property 1')
45+
t.ok(settergetter.prop2 === '')
46+
settergetter.prop2 = 'setting a value'
47+
t.equal(settergetter.prop2, 'setting a value')
48+
t.equal(settergetter.log(),
49+
'New()\n' +
50+
'Prop1:GETTER(this is property 1)\n' +
51+
'Prop2:GETTER()\n' +
52+
'Prop2:SETTER(setting a value)\n' +
53+
'Prop2:GETTER(setting a value)\n'
54+
)
55+
t.equal(derived.prop1, 'this is property 1')
56+
derived.prop2 = 'setting a new value'
57+
t.equal(derived.prop2, 'setting a new value')
58+
t.equal(settergetter.prop2, 'setting a new value')
59+
60+
}
4061
})

test/js/weak-test.js

Lines changed: 34 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -10,38 +10,46 @@ const test = require('tap').test
1010
, testRoot = require('path').resolve(__dirname, '..')
1111
, bindings = require('bindings')({ module_root: testRoot, bindings: 'weak' })
1212
, gc = require('./gc-fn');
13+
const nodeVersion = parseInt(process.versions.node.split('.')[0]);
1314

14-
test('weak', function (t) {
15-
t.plan(3);
15+
// https://github.com/nodejs/nan/issues/995
16+
// https://chromium-review.googlesource.com/c/v8/v8/+/4733273
17+
// Week tests are incompatible with recent V8 changes
1618

17-
var weak = bindings, count = 0;
18-
t.type(weak.hustle, 'function');
19+
if(nodeVersion < 24){
20+
test('weak', function (t) {
21+
t.plan(3);
1922

20-
weak.hustle(function () {}, function (val) {
21-
t.equal(val, 42);
22-
count++;
23-
});
23+
var weak = bindings, count = 0;
24+
t.type(weak.hustle, 'function');
25+
26+
weak.hustle(function () {}, function (val) {
27+
t.equal(val, 42);
28+
count++;
29+
});
2430

25-
var timeout = setTimeout(function () {
26-
// run weak callback, should dispose
27-
gc();
31+
var timeout = setTimeout(function () {
32+
// run weak callback, should dispose
33+
gc();
2834

29-
// do not run weak callback
30-
gc();
35+
// do not run weak callback
36+
gc();
3137

32-
if (count > 0) {
33-
clearTimeout(timeout);
34-
t.equal(count, 1);
35-
}
36-
}, 100);
37-
});
38+
if (count > 0) {
39+
clearTimeout(timeout);
40+
t.equal(count, 1);
41+
}
42+
}, 100);
43+
});
3844

39-
test('weak external', function (t) {
40-
t.plan(2);
45+
test('weak external', function (t) {
46+
t.plan(2);
4147

42-
var weak = bindings;
43-
t.type(weak.weakExternal, 'function');
48+
var weak = bindings;
49+
t.type(weak.weakExternal, 'function');
50+
51+
weak.weakExternal();
52+
t.ok(true); // All good if the previous line didn't crash.
53+
});
54+
}
4455

45-
weak.weakExternal();
46-
t.ok(true); // All good if the previous line didn't crash.
47-
});

test/js/weak2-test.js

Lines changed: 26 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -10,28 +10,35 @@ const test = require('tap').test
1010
, testRoot = require('path').resolve(__dirname, '..')
1111
, bindings = require('bindings')({ module_root: testRoot, bindings: 'weak2' })
1212
, gc = require('./gc-fn');
13+
const nodeVersion = parseInt(process.versions.node.split('.')[0]);
1314

14-
test('weak2', function (t) {
15-
t.plan(3);
15+
// https://github.com/nodejs/nan/issues/995
16+
// https://chromium-review.googlesource.com/c/v8/v8/+/4733273
17+
// Week tests are incompatible with recent V8 changes
1618

17-
var weak2 = bindings, count = 0;
18-
t.type(weak2.hustle, 'function');
19+
if(nodeVersion < 24){
20+
test('weak2', function (t) {
21+
t.plan(3);
1922

20-
weak2.hustle(function (val) {
21-
t.equal(val, 42);
22-
count++;
23-
});
23+
var weak2 = bindings, count = 0;
24+
t.type(weak2.hustle, 'function');
25+
26+
weak2.hustle(function (val) {
27+
t.equal(val, 42);
28+
count++;
29+
});
2430

25-
// run weak callback, should dispose
26-
gc();
31+
// run weak callback, should dispose
32+
gc();
2733

28-
// do not run weak callback
29-
gc();
34+
// do not run weak callback
35+
gc();
3036

31-
var timeout = setTimeout(function () {
32-
if (count > 0) {
33-
clearTimeout(timeout);
34-
t.equal(count, 1);
35-
}
36-
}, 100);
37-
});
37+
var timeout = setTimeout(function () {
38+
if (count > 0) {
39+
clearTimeout(timeout);
40+
t.equal(count, 1);
41+
}
42+
}, 100);
43+
});
44+
}

0 commit comments

Comments
 (0)