From f7c700620d29b3344a37b1b1949bf30009624a93 Mon Sep 17 00:00:00 2001 From: Dominic Tarr Date: Fri, 16 Sep 2022 21:00:53 +1200 Subject: [PATCH 1/4] ping an introducer server, to check that are able to receive send and receive packets from a remote server --- test/src/dgram.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/src/dgram.js b/test/src/dgram.js index 5bd927d2..dc50ad89 100644 --- a/test/src/dgram.js +++ b/test/src/dgram.js @@ -298,3 +298,27 @@ test('client ~> server (~500 messages)', async (t) => { util.promisify(client.close.bind(client))() ]) }) + +test('can send and receive packets to a remote server', async function (t) { + const server = dgram.createSocket({ + type: 'udp4', + reuseAddr: false + }) + + const client = dgram.createSocket('udp4') + + const msg = new Promise((resolve, reject) => { + server.on('message', resolve) + server.on('error', reject) + }) + + client.send(JSON.stringify({ + type: 'ping', + id: crypto.randomBytes(32).toString('hex') + })) + + var data = JSON.parse(Buffer.from(await msg)) + console.log('received', await msg) + client.close() + +}) \ No newline at end of file From 4af184b61454d4e744f1785ce3af751f3c94e90d Mon Sep 17 00:00:00 2001 From: Dominic Tarr Date: Fri, 16 Sep 2022 21:11:18 +1200 Subject: [PATCH 2/4] give the failing test a 3 second timeout --- test/src/dgram.js | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/test/src/dgram.js b/test/src/dgram.js index dc50ad89..a3fd08ae 100644 --- a/test/src/dgram.js +++ b/test/src/dgram.js @@ -308,7 +308,11 @@ test('can send and receive packets to a remote server', async function (t) { const client = dgram.createSocket('udp4') const msg = new Promise((resolve, reject) => { - server.on('message', resolve) + const timer = setTimeout(()=>reject(new Error('no ping back after 3 seconds'), 3_000) + server.on('message', (data)=>{ + clearTimeout(timer) + resolve(data) + }) server.on('error', reject) }) From 36e772a764d76c79861505ab3c6b1d39d309c02b Mon Sep 17 00:00:00 2001 From: Dominic Tarr Date: Fri, 16 Sep 2022 21:12:34 +1200 Subject: [PATCH 3/4] oops, syntax --- test/src/dgram.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/src/dgram.js b/test/src/dgram.js index a3fd08ae..03c52499 100644 --- a/test/src/dgram.js +++ b/test/src/dgram.js @@ -308,7 +308,7 @@ test('can send and receive packets to a remote server', async function (t) { const client = dgram.createSocket('udp4') const msg = new Promise((resolve, reject) => { - const timer = setTimeout(()=>reject(new Error('no ping back after 3 seconds'), 3_000) + const timer = setTimeout(()=>reject(new Error('no ping back after 3 seconds'), 3_000)) server.on('message', (data)=>{ clearTimeout(timer) resolve(data) From 191f93eb7360fb1f9ee6598f230af412b06a42f1 Mon Sep 17 00:00:00 2001 From: Dominic Date: Fri, 16 Sep 2022 21:29:05 +1200 Subject: [PATCH 4/4] better test --- test/src/dgram.js | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/test/src/dgram.js b/test/src/dgram.js index 03c52499..1ca68358 100644 --- a/test/src/dgram.js +++ b/test/src/dgram.js @@ -308,7 +308,9 @@ test('can send and receive packets to a remote server', async function (t) { const client = dgram.createSocket('udp4') const msg = new Promise((resolve, reject) => { - const timer = setTimeout(()=>reject(new Error('no ping back after 3 seconds'), 3_000)) + console.log('start waiting...') + const timer = setTimeout(()=>reject(new Error('no ping back after 3 +seconds')), 3_000) server.on('message', (data)=>{ clearTimeout(timer) resolve(data) @@ -325,4 +327,4 @@ test('can send and receive packets to a remote server', async function (t) { console.log('received', await msg) client.close() -}) \ No newline at end of file +})