• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// Flags: --expose-internals
2'use strict';
3const common = require('../common');
4const assert = require('assert');
5
6const { internalBinding } = require('internal/test/binding');
7const StreamWrap = require('internal/js_stream_socket');
8const { Duplex } = require('stream');
9const { ShutdownWrap } = internalBinding('stream_wrap');
10
11function testShutdown(callback) {
12  const stream = new Duplex({
13    read: function() {
14    },
15    write: function() {
16    }
17  });
18
19  const wrap = new StreamWrap(stream);
20
21  const req = new ShutdownWrap();
22  req.oncomplete = function(code) {
23    assert(code < 0);
24    callback();
25  };
26  req.handle = wrap._handle;
27
28  // Close the handle to simulate
29  wrap.destroy();
30  req.handle.shutdown(req);
31}
32
33testShutdown(common.mustCall());
34