Skip to content

Commit 535a01d

Browse files
ci: add Node.js 18 in the test matrix
A few notes: - the certificates were recreated because Node.js 18 includes OpenSSL v3, which has deprecated support for some legacy ciphers (like RC2) - eiows currently fails to build on Node.js 18, so the tests are temporarily skipped See also: https://github.com/nodejs/Release
1 parent 1b71a6f commit 535a01d

File tree

8 files changed

+90
-80
lines changed

8 files changed

+90
-80
lines changed

.github/workflows/ci.yml

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,21 +6,35 @@ on:
66
schedule:
77
- cron: '0 0 * * 0'
88

9+
permissions:
10+
contents: read
11+
912
jobs:
1013
test-node:
1114
runs-on: ubuntu-latest
15+
timeout-minutes: 10
1216

1317
strategy:
1418
matrix:
15-
node-version: [14, 16]
19+
node-version:
20+
- 10
21+
- 18
1622

1723
steps:
18-
- uses: actions/checkout@v2
24+
- name: Checkout repository
25+
uses: actions/checkout@v3
26+
1927
- name: Use Node.js ${{ matrix.node-version }}
20-
uses: actions/setup-node@v1
28+
uses: actions/setup-node@v3
2129
with:
2230
node-version: ${{ matrix.node-version }}
23-
- run: npm ci
24-
- run: npm test
25-
env:
26-
CI: true
31+
32+
- name: Install dependencies
33+
run: npm ci
34+
35+
- name: Run tests
36+
run: npm test
37+
38+
- name: Run tests with µWebSockets.js
39+
run: npm run test:uws
40+
if: ${{ matrix.node-version == '18' }}

package-lock.json

Lines changed: 13 additions & 13 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@
4444
},
4545
"devDependencies": {
4646
"babel-eslint": "^8.0.2",
47-
"eiows": "^3.8.0",
47+
"eiows": "^4.1.2",
4848
"engine.io-client": "6.2.0",
4949
"engine.io-client-v3": "npm:engine.io-client@3.5.2",
5050
"expect.js": "^0.3.1",
@@ -53,17 +53,17 @@
5353
"rimraf": "^3.0.2",
5454
"superagent": "^3.8.1",
5555
"typescript": "^4.4.3",
56-
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.0.0"
56+
"uWebSockets.js": "github:uNetworking/uWebSockets.js#v20.15.0"
5757
},
5858
"scripts": {
5959
"compile": "rimraf ./build && tsc",
60-
"test": "npm run compile && npm run format:check && npm run test:default && npm run test:compat-v3 && npm run test:eiows && npm run test:uws",
60+
"test": "npm run compile && npm run format:check && npm run test:default && npm run test:compat-v3",
6161
"test:default": "mocha --bail --exit",
6262
"test:compat-v3": "EIO_CLIENT=3 mocha --exit",
6363
"test:eiows": "EIO_WS_ENGINE=eiows mocha --exit",
6464
"test:uws": "EIO_WS_ENGINE=uws mocha --exit",
6565
"format:check": "prettier --check \"lib/**/*.ts\" \"test/**/*.js\"",
66-
"format:fix": "prettier --write \"lib/**/*.ts' 'test/**/*.js\"",
66+
"format:fix": "prettier --write \"lib/**/*.ts\" \"test/**/*.js\"",
6767
"prepack": "npm run compile"
6868
},
6969
"repository": {

test/common.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
const { listen, uServer } = require("..");
2-
const { App, us_socket_local_port } = require("uWebSockets.js");
32
const { Socket } =
43
process.env.EIO_CLIENT === "3"
54
? require("engine.io-client-v3")
@@ -18,6 +17,7 @@ exports.listen = (opts, fn) => {
1817
opts.allowEIO3 = true;
1918

2019
if (process.env.EIO_WS_ENGINE === "uws") {
20+
const { App, us_socket_local_port } = require("uWebSockets.js");
2121
const engine = new uServer(opts);
2222
const app = App();
2323
engine.attach(app, opts);

test/fixtures/client.crt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIDojCCAYoCAQIwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQVUxEzARBgNV
3-
BAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
4-
ZDAeFw0xNTExMTgxNzM4MDVaFw0yNTExMTUxNzM4MDVaMG0xCzAJBgNVBAYTAkZJ
5-
MRMwEQYDVQQIEwpTb21lLVN0YXRlMREwDwYDVQQHEwhIZWxzaW5raTEhMB8GA1UE
6-
ChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRMwEQYDVQQDEwpGb28gQ2xpZW50
7-
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQD66Rn8P8O+MK13sPxIIEMHXDRZ
8-
heRLqGNlNsXzaBLWnKSlV+Wxi1OdCimtAh4ZAVRt1JkK9mQEAGdxC8TRwDMS02+E
9-
UK1H1zvh77Ek4ZcHW8p5CVEm53FTmO+jhL+7BQYXW1yi/XURBv2xm3Q95I7895ag
10-
prMFI8HiOu/Hdi/iDQIDAQABMA0GCSqGSIb3DQEBBQUAA4ICAQBynfI9C5/zcukL
11-
oQmUSEg5ys99bGUa8QyhSRbp5nb8Wl76KRIxpqGxl+3wcyhES3cH1Vgv4CMvrVag
12-
Qov4TG4B30MvEvd17BMD1BmDNqjOInW72ujS9wo+2K6NASw1r/96Ay7dJ7+3HE0r
13-
gs9yaiRL5UG4y7Sp1gy5JynXNozNowVP/cy84L9K2oyiJpyc5Owg93i3E7X+/eXd
14-
JfFTO6ZfTGNdN+hMjleyj/LXOsoeaYg3GhO9i99nzf3u0HBXI1wRbkRPJ0aNSkH0
15-
VEValjOGeRdKvlZhsf7x8Kg7Nk7fyIyhmYU/tBOSUasFiB7CfKN/m0P1e6DMqihW
16-
U/k4bzoVND3KuNH5EZmfSs3BE/w5fakObCpkxAMMm6Lxtb6qBV2HlWFfatcL2WoM
17-
nqdCEPjct7crPbgtn3Pa/erlvmAWFoqsCu4Xn4SRGP1JtGXbCLaAW4S5CffaODRp
18-
4urgxD8bfk9Mm/9b/xAAMNkcAi4oBikVTnVWrpul/qIhY0iMfqIu6MkbWAthMT4h
19-
th5AggLxl6+dcPGNaliC5JpRtCis+fWuKxwbf8YKSEIwi0VBQbPP2ATinqfOJ1Yo
20-
/tymAa3IKukil6RuTECTpE06x+Ns0rMJTSN2SGd4AG/n1/SAjhBHoH1J0J4JG30f
21-
5fx0ax5MzGuTrt9yNEUvIrKj6MIgmw==
2+
MIIDtTCCAZ0CFCt+tjtA9647yZp8eNZurQtNp4x+MA0GCSqGSIb3DQEBDQUAMEUx
3+
CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRl
4+
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjIxMTE4MjEyMzU4WhcNMzIxMTE1MjEy
5+
MzU4WjBtMQswCQYDVQQGEwJGSTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UE
6+
BxMISGVsc2lua2kxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDET
7+
MBEGA1UEAxMKRm9vIENsaWVudDCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
8+
+ukZ/D/DvjCtd7D8SCBDB1w0WYXkS6hjZTbF82gS1pykpVflsYtTnQoprQIeGQFU
9+
bdSZCvZkBABncQvE0cAzEtNvhFCtR9c74e+xJOGXB1vKeQlRJudxU5jvo4S/uwUG
10+
F1tcov11EQb9sZt0PeSO/PeWoKazBSPB4jrvx3Yv4g0CAwEAATANBgkqhkiG9w0B
11+
AQ0FAAOCAgEAMgC3j2XJ5IPB1raLrnJh8vTncnqMe6OmXpaxk0ZYb42Y66BJKlaE
12+
UpLmLYIiICmuH6R4lc00W5nexPyCT4g+1CUs3PhOJGEwWOBodv6dFJ4ayGWln1aD
13+
QX+W+PRuJAazd7wruVnPxVoEspVO+hcr5byX0F3Auqd9jdQZwFXsWvAo7tZxUnvC
14+
gdjnHt5QgMxqeqzZPTw7dreMsIjN6NrUPWaa26VCvLH0Nv+Jgs+RSVwBKp8tO3e+
15+
763bi8Htpzt4YfAB7EuRykGlAI42C5ZDzcsq30NpSGgOwveHnlvdl6KhC0QaK71h
16+
QmXwBmEUNX1f+XRnvk+fNb1acfddLLYoPP0zS1BEYOOs7KkyScagsUMsnUSOfv3d
17+
+etklFvaXFD3+b/KwljH3WH1dG4ro3J6GHXX05ncDydDDksYi6aC3wpPZYY7eMFx
18+
RWSxMZHX/bD1YH80a2+jBoskTqz3ZFkkGySMfUcpDCUwQuiwjhLp4sew9RDRB/lv
19+
kJezNSoYgnT44CT+IPoPEL1m5Evkm3C7fVzvnldO3TsWmOoza99xrQ+9gtzlWxgb
20+
Av6jNbnGG1HgDYcvxpRMKWe+6fUAHCcP0PuO+2rcygemNtEKzfMY6Py66w5L9/WW
21+
t0UJWU1rR+kLDS3qLfQqvnbvUMroZ9zxE9CJq6+aKEQEpc79lfiv464=
2222
-----END CERTIFICATE-----

test/fixtures/client.pfx

24 Bytes
Binary file not shown.

test/fixtures/server.crt

Lines changed: 20 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
11
-----BEGIN CERTIFICATE-----
2-
MIIDoTCCAYkCAQEwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQVUxEzARBgNV
3-
BAgTClNvbWUtU3RhdGUxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0
4-
ZDAeFw0xNTExMTgxNzM4MDhaFw0yNTExMTUxNzM4MDhaMGwxCzAJBgNVBAYTAkZJ
5-
MRMwEQYDVQQIEwpTb21lLVN0YXRlMREwDwYDVQQHEwhIZWxzaW5raTEhMB8GA1UE
6-
ChMYSW50ZXJuZXQgV2lkZ2l0cyBQdHkgTHRkMRIwEAYDVQQDEwlsb2NhbGhvc3Qw
7-
gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMBAs08Mguowi6W8+BrqiByLr3Fh
8-
pKnnRTtO/wfDDebgP3Da5vIapHt0NbbSIYkju1M1y/9S0uqCScSIIFeSr8wOvmB1
9-
c0jRX+P6oA6p8lJXG/HEfEuu3uK+Olkds7sHcrtuRaYLEAXNYCUTlT0VdfVvxV96
10-
0m/5wMRpexjC5h+jAgMBAAEwDQYJKoZIhvcNAQEFBQADggIBACvxt9oSl8zDz2i9
11-
DFtBVA87TYkv7MPqc6HKzpzKjUpay1CmTrXxaw9WKXGC47aoj/wXNqe1W/w5KUdH
12-
79Z7n/TKpQJ9hj3NQJerFGD5EGu+rL4/FshMiwjp0/AiuAIThVa11BDzmEltwf86
13-
mHfIhRG89m3LmJbCzOLTjqjnt3vL5fcW0KEN+5TDFxINbXC6o+ioZgMeh3n+d01D
14-
MZImN01A0ZwKch81IDmPZD/IrtCLGwG/YfTaQUshMHUaQIKqDIyzDb/VgWGh1vET
15-
J6Zpbvr3xc+mg34588qd6JcyND6X1LKBvLUNqcIrcAaChbabyPUCy1w+XDgcATZg
16-
uerXcELSApivaSVGZVNkrbUskDySjZp2NhpEhDFim3HZye7CUvVIM5AI8BPeI5ZA
17-
nYi2kcya3e9/u3YxfsCklbxCiBUMhVYT3EVHNILr0Eik4NJp92xBLyRk770WvwMc
18-
MAiRNK5+XM0DffzHe9PrcopWRwvPsh8ce9IUsTJQjx0zALc8JKT6VN8J1cNseZR5
19-
ALuTasgFliRFYCwUJcwCpoXUDJas7hbBDcbecMbFKDCrmUbG6moRqETtljDtn4na
20-
cKwaAk2sp9CSaNoLAsWd45ElXpeoKtNz7dFsRf1nSu2GPdE2SdaPJ6br+bKcO6TW
21-
LRObFtVqZM7TTrPUuVji72CfFMtl
2+
MIIDtDCCAZwCFCt+tjtA9647yZp8eNZurQtNp4x/MA0GCSqGSIb3DQEBDQUAMEUx
3+
CzAJBgNVBAYTAkFVMRMwEQYDVQQIEwpTb21lLVN0YXRlMSEwHwYDVQQKExhJbnRl
4+
cm5ldCBXaWRnaXRzIFB0eSBMdGQwHhcNMjIxMTE4MjEyNDExWhcNMzIxMTE1MjEy
5+
NDExWjBsMQswCQYDVQQGEwJGSTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UE
6+
BxMISGVsc2lua2kxITAfBgNVBAoTGEludGVybmV0IFdpZGdpdHMgUHR5IEx0ZDES
7+
MBAGA1UEAxMJbG9jYWxob3N0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDA
8+
QLNPDILqMIulvPga6ogci69xYaSp50U7Tv8Hww3m4D9w2ubyGqR7dDW20iGJI7tT
9+
Ncv/UtLqgknEiCBXkq/MDr5gdXNI0V/j+qAOqfJSVxvxxHxLrt7ivjpZHbO7B3K7
10+
bkWmCxAFzWAlE5U9FXX1b8VfetJv+cDEaXsYwuYfowIDAQABMA0GCSqGSIb3DQEB
11+
DQUAA4ICAQCDSuFPJ++HY5WBhpnumbZ7+T0ReWKaerdNnQ2Xgrna5mZfB2xeRkvY
12+
XeJ9VBCpGgEZKCKkhZCjomn/kLkYzRk4Sqr1ivN5NWl6G/9UTttHdRa3xiR1NhKI
13+
AMYghpel30w5e+cWtsdR06P2FvZMuiMFCyqsbPf1xcEIAXN7HJDswq6g0ppTVZ4L
14+
sXljG/J0vp+jAst4XKGLaGqnt8JaBnpNX9NO2Up3h5j7Pa4Nhm/LZ3Ku5ZVDmS1d
15+
B98Bsgr6tQSSyPNfZW0tGXELsNX1I+wUFw9IXFadRTHkhjeT/GhFw3i12uY7rqzm
16+
uJegTtWDkp1QOajhYhLD9WGXb9teldkAAgZawD6ax/uAzqx/4mBFvsUa3FMcua8k
17+
HF9P2lLzKAcyaKt1cvlfUYmDVZ2Gh+9PgM8SqRpMIqK5jMRvFgemxJXS9BMBrQLp
18+
TCvgRwQZD4mUloRlGNewKfJ0oQ1rY29vwdjTL8+BBS/GR8EuzYnqJG/D2nK0guIN
19+
ze+cSDghA5N2pp/ffnpLWmkIDO+fsGAj3eApLhbPQ1xCXnEv6fOjgUmnxdt41m8d
20+
+pEVBICohnvYgoEERDNAi1onJlBd/eyk0Jn37QiwqhQyrmfgwncvlt2SyzS1IZ7s
21+
cEYreG6QHghBhgYiYo0FMuDCjT6g6Ga+T8nOp0xpZtGEWvHwjLjxvQ==
2222
-----END CERTIFICATE-----

test/server.js

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -3646,7 +3646,8 @@ describe("server", () => {
36463646
}
36473647
});
36483648

3649-
it("should allow loading of other websocket server implementation like eiows", done => {
3649+
// FIXME eiows fails to build on Node.js 18 (and has dropped support for Node.js 10)
3650+
it.skip("should allow loading of other websocket server implementation like eiows", done => {
36503651
const engine = listen(
36513652
{ allowUpgrades: false, wsEngine: require("eiows").Server },
36523653
port => {
@@ -3667,19 +3668,20 @@ describe("server", () => {
36673668
});
36683669

36693670
describe("remoteAddress", () => {
3671+
const POSSIBLE_VALUES = [
3672+
"0000:0000:0000:0000:0000:0000:0000:0001",
3673+
"0000:0000:0000:0000:0000:ffff:7f00:0001",
3674+
"::ffff:127.0.0.1",
3675+
"::1"
3676+
];
3677+
36703678
it("should be defined (polling)", done => {
36713679
const engine = listen({ transports: ["polling"] }, port => {
36723680
new ClientSocket(`ws://localhost:${port}`, {
36733681
transports: ["polling"]
36743682
});
36753683
engine.on("connection", socket => {
3676-
if (process.env.EIO_WS_ENGINE === "uws") {
3677-
expect(socket.remoteAddress).to.be(
3678-
"0000:0000:0000:0000:0000:ffff:7f00:0001"
3679-
);
3680-
} else {
3681-
expect(socket.remoteAddress).to.be("::ffff:127.0.0.1");
3682-
}
3684+
expect(POSSIBLE_VALUES).to.contain(socket.remoteAddress);
36833685
done();
36843686
});
36853687
});
@@ -3691,13 +3693,7 @@ describe("server", () => {
36913693
transports: ["websocket"]
36923694
});
36933695
engine.on("connection", socket => {
3694-
if (process.env.EIO_WS_ENGINE === "uws") {
3695-
expect(socket.remoteAddress).to.be(
3696-
"0000:0000:0000:0000:0000:ffff:7f00:0001"
3697-
);
3698-
} else {
3699-
expect(socket.remoteAddress).to.be("::ffff:127.0.0.1");
3700-
}
3696+
expect(POSSIBLE_VALUES).to.contain(socket.remoteAddress);
37013697
done();
37023698
});
37033699
});

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy