• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1'use strict';
2
3const common = require('../common');
4const assert = require('assert');
5const net = require('net');
6
7// First test. Check that after error event you can listen right away.
8{
9  const dummyServer = net.Server();
10  const server = net.Server();
11
12  // Run some server in order to simulate EADDRINUSE error.
13  dummyServer.listen(common.mustCall(() => {
14    // Try to listen used port.
15    server.listen(dummyServer.address().port);
16  }));
17
18  server.on('error', common.mustCall((e) => {
19    server.listen(common.mustCall(() => {
20      dummyServer.close();
21      server.close();
22    }));
23  }));
24}
25
26// Second test. Check that second listen call throws an error.
27{
28  const server = net.Server();
29
30  server.listen(common.mustCall(() => server.close()));
31
32  assert.throws(() => server.listen(), {
33    code: 'ERR_SERVER_ALREADY_LISTEN',
34    name: 'Error'
35  });
36}
37
38// Third test.
39// Check that after the close call you can run listen method just fine.
40{
41  const server = net.Server();
42
43  server.listen(common.mustCall(() => {
44    server.close();
45    server.listen(common.mustCall(() => server.close()));
46  }));
47}
48