davedoesdev / bpmux

Node stream multiplexing with back-pressure on each stream
MIT License
18 stars 2 forks source link

Tests fail on Node 20.9.0 #21

Open patuwwy opened 8 months ago

patuwwy commented 8 months ago
21:36 $ node -v
v20.9.0
✔ ~/github/bpmux [master|…1]
23:20 $ grunt test
Running "exec:certs" (exec) task

Running "mochaTest:default" (mochaTest) task

  tcp aho=false coa=false
    ✔ (x1, client initiated) should support fragmented data
    ✔ (x1, server initiated) should support fragmented data
    ✔ (x1, client initiated) should support fragmented data when read(0) sends status message (2005ms)
    ✔ (x1, server initiated) should support fragmented data when read(0) sends status message (2004ms)
    ✔ (x1, client initiated) should support not parsing handshake data
    ✔ (x1, server initiated) should support not parsing handshake data
    ✔ (x1, client initiated) should pass this as mux in parse_handshake_data
    ✔ (x1, server initiated) should pass this as mux in parse_handshake_data
    ✔ (x1, client initiated) should emit an error if handshake message length too short
    ✔ (x1, server initiated) should emit an error if handshake message length too short
    ✔ (x1, client initiated) should emit an error if pre-handshake message length too short
    ✔ (x1, server initiated) should emit an error if pre-handshake message length too short
    ✔ (x1, client initiated) should emit an error if status message length too short
    ✔ (x1, server initiated) should emit an error if status message length too short
    ✔ (x1, client initiated) should support small high-water marks
    ✔ (x1, server initiated) should support small high-water marks
    ✔ (x1, client initiated) should not deliver data if duplex has ended
    ✔ (x1, server initiated) should not deliver data if duplex has ended
    1) "after each" hook for "(x1, server initiated) should not deliver data if duplex has ended"
    2) "after each" hook for "(x1, server initiated) should not deliver data if duplex has ended"

  18 passing (4s)
  2 failing

  1) tcp aho=false coa=false
       "after each" hook for "(x1, server initiated) should not deliver data if duplex has ended":
     Uncaught AssertionError: expected 'expected handshake, got: 4' to be one of [ 'write after end', …(7) ]
      at BPMux.mux_error_listener (test/test_comms.js:228:39)
      at BPMux.emit (node:events:514:28)
      at BPMux.emit (node:domain:488:12)
      at BPMux._process_header (index.js:1130:18)
      at Writable.write [as _write] (index.js:913:29)
      at writeOrBuffer (node:internal/streams/writable:447:12)
      at _write (node:internal/streams/writable:389:10)
      at Writable.write (node:internal/streams/writable:393:10)
      at exports.Decoder.ondata (node:internal/streams/readable:817:22)
      at exports.Decoder.emit (node:events:526:35)

  2) tcp aho=false coa=false
       "after each" hook for "(x1, server initiated) should not deliver data if duplex has ended":
     Error: done() called multiple times in hook <tcp aho=false coa=false "after each" hook for "(x1, server initiated) should not deliver data if duplex has ended"> of file /home/pfalba/github/bpmux/test/test_tcp.js
      at Object.onceWrapper (node:events:628:28)
      at Server.emit (node:events:514:28)
      at Server.emit (node:domain:488:12)
      at emitCloseNT (node:net:2273:8)
      at process.processTicksAndRejections (node:internal/process/task_queues:81:21)

Warning: Task "mochaTest:default" failed. Use --force to continue.
patuwwy commented 8 months ago

FYI: pass on 19.0.0 but fail on 19.1.0

davedoesdev commented 8 months ago

Thanks for letting me know, I'll take a look when I get some time. The node stream implementation no doubt changed again