11cb0ef41Sopenharmony_ci'use strict';
21cb0ef41Sopenharmony_ci
31cb0ef41Sopenharmony_ciconst common = require('../common');
41cb0ef41Sopenharmony_ciconst net = require('net');
51cb0ef41Sopenharmony_ciconst assert = require('assert');
61cb0ef41Sopenharmony_ci
71cb0ef41Sopenharmony_ciconst server = net.createServer();
81cb0ef41Sopenharmony_ciserver.listen(0, common.mustCall(() => {
91cb0ef41Sopenharmony_ci  const port = server.address().port;
101cb0ef41Sopenharmony_ci  const conn = net.createConnection(port);
111cb0ef41Sopenharmony_ci  server.on('connection', (socket) => {
121cb0ef41Sopenharmony_ci    socket.on('error', common.expectsError({
131cb0ef41Sopenharmony_ci      code: 'ECONNRESET',
141cb0ef41Sopenharmony_ci      message: 'read ECONNRESET',
151cb0ef41Sopenharmony_ci      name: 'Error'
161cb0ef41Sopenharmony_ci    }));
171cb0ef41Sopenharmony_ci  });
181cb0ef41Sopenharmony_ci
191cb0ef41Sopenharmony_ci  conn.on('connect', common.mustCall(() => {
201cb0ef41Sopenharmony_ci    assert.strictEqual(conn, conn.resetAndDestroy().destroy());
211cb0ef41Sopenharmony_ci    conn.on('error', common.mustNotCall());
221cb0ef41Sopenharmony_ci
231cb0ef41Sopenharmony_ci    conn.write(Buffer.from('fzfzfzfzfz'), common.expectsError({
241cb0ef41Sopenharmony_ci      code: 'ERR_STREAM_DESTROYED',
251cb0ef41Sopenharmony_ci      message: 'Cannot call write after a stream was destroyed',
261cb0ef41Sopenharmony_ci      name: 'Error'
271cb0ef41Sopenharmony_ci    }));
281cb0ef41Sopenharmony_ci    server.close();
291cb0ef41Sopenharmony_ci  }));
301cb0ef41Sopenharmony_ci}));
31