spdy-http2 / node-spdy

SPDY server on Node.js
2.81k stars 196 forks source link

Can't run tests #381

Open BryanJaramilloBitingbit opened 3 years ago

BryanJaramilloBitingbit commented 3 years ago

I can't run the tests: I cloned and run npm install using node js version 10.20.1

Execute of the test generate this log:

  SPDY Client
    regular
      h2
        ssl mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
        plain mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
      spdy/3.1
        ssl mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
        plain mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
      spdy/3
        ssl mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
        plain mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
    x-forwarded-for
      h2
        ssl mode
          ✓ should send x-forwarded-for
          ✓ agent should emit connection level errors
        plain mode
          ✓ should send x-forwarded-for
          ✓ agent should emit connection level errors
          1) "after each" hook
        spdy/3.1
        spdy/3
          ssl mode
            ssl mode
              2) should send x-forwarded-for
              3) agent should emit connection level errors
            plain mode
              4) "before each" hook
              5) "after each" hook for "should send x-forwarded-for"
      SPDY Server
        6) should respond to http/1.1
        7) should support custom base
        h2
          ssl mode
            8) "before each" hook
            9) "after each" hook for "should process GET request"
          plain mode
            10) "before each" hook
            11) "after each" hook for "should process GET request"
        spdy/3.1
          ssl mode
            12) "before each" hook
            13) "after each" hook for "should process GET request"
          plain mode
            14) "before each" hook
            15) "after each" hook for "should process GET request"
        spdy/3
          ssl mode
            16) "before each" hook
            17) "after each" hook for "should process GET request"
          plain mode
            18) "before each" hook
            19) "after each" hook for "should process GET request"

  28 passing (234ms)
  19 failing

  1) SPDY Client
       x-forwarded-for
         h2
           plain mode
             "after each" hook:
     Uncaught Error: write EPIPE
      at afterWriteDispatched (internal/stream_base_commons.js:78:25)
      at writeGeneric (internal/stream_base_commons.js:73:3)
      at Socket._writeGeneric (net.js:714:5)
      at Socket._write (net.js:726:8)
      at doWrite (_stream_writable.js:415:12)
      at writeOrBuffer (_stream_writable.js:399:5)
      at Socket.Writable.write (_stream_writable.js:299:11)
      at Framer.ondata (node_modules/readable-stream/lib/_stream_readable.js:681:20)
      at addChunk (node_modules/readable-stream/lib/_stream_readable.js:298:12)
      at readableAddChunk (node_modules/readable-stream/lib/_stream_readable.js:280:11)
      at Framer.Readable.push (node_modules/readable-stream/lib/_stream_readable.js:241:10)
      at Framer.tickSync (node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js:126:20)
      at Framer.tick (node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js:109:13)
      at /Users/bryanjaramillobaldeon/Documents/my_projects/node-spdy/node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js:103:10
      at process._tickCallback (internal/process/next_tick.js:61:11)

  2) SPDY Client
       x-forwarded-for
         spdy/3
           ssl mode
             should send x-forwarded-for:
     TypeError: Cannot read property 'request' of undefined
      at Context.<anonymous> (test/client-test.js:218:27)

  3) SPDY Client
       x-forwarded-for
         spdy/3
           ssl mode
             agent should emit connection level errors:
     TypeError: Cannot read property 'once' of undefined
      at Context.<anonymous> (test/client-test.js:234:15)

  4) SPDY Client
       x-forwarded-for
         spdy/3
           plain mode
             "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/client-test.js:186:16)

  5) SPDY Client
       x-forwarded-for
         spdy/3
           plain mode
             "after each" hook for "should send x-forwarded-for":
     TypeError: Cannot read property 'close' of undefined
      at Context.<anonymous> (test/client-test.js:207:15)

  6) SPDY Server
       should respond to http/1.1:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:432:12)

  7) SPDY Server
       should support custom base:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:468:12)

  8) SPDY Server
       h2
         ssl mode
           "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:26:14)

  9) SPDY Server
       h2
         ssl mode
           "after each" hook for "should process GET request":
     TypeError: Cannot read property 'socket' of undefined
      at Context.<anonymous> (test/server-test.js:43:14)

  10) SPDY Server
       h2
         plain mode
           "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:26:14)

  11) SPDY Server
       h2
         plain mode
           "after each" hook for "should process GET request":
     TypeError: Cannot read property 'socket' of undefined
      at Context.<anonymous> (test/server-test.js:43:14)

  12) SPDY Server
       spdy/3.1
         ssl mode
           "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:26:14)

  13) SPDY Server
       spdy/3.1
         ssl mode
           "after each" hook for "should process GET request":
     TypeError: Cannot read property 'socket' of undefined
      at Context.<anonymous> (test/server-test.js:43:14)

  14) SPDY Server
       spdy/3.1
         plain mode
           "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:26:14)

  15) SPDY Server
       spdy/3.1
         plain mode
           "after each" hook for "should process GET request":
     TypeError: Cannot read property 'socket' of undefined
      at Context.<anonymous> (test/server-test.js:43:14)

  16) SPDY Server
       spdy/3
         ssl mode
           "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:26:14)

  17) SPDY Server
       spdy/3
         ssl mode
           "after each" hook for "should process GET request":
     TypeError: Cannot read property 'socket' of undefined
      at Context.<anonymous> (test/server-test.js:43:14)

  18) SPDY Server
       spdy/3
         plain mode
           "before each" hook:
     Uncaught Error: listen EADDRINUSE: address already in use :::23433
      at Server.setupListenHandle [as _listen2] (net.js:1280:14)
      at listenInCluster (net.js:1328:12)
      at Server.listen (net.js:1415:7)
      at Context.<anonymous> (test/server-test.js:26:14)

  19) SPDY Server
       spdy/3
         plain mode
           "after each" hook for "should process GET request":
     TypeError: Cannot read property 'socket' of undefined
      at Context.<anonymous> (test/server-test.js:43:14)

I was able to fix a couple of them introducing a method that search for a free port. I'm can not/should not commit this change because of the test hook block. So the test looks like this:

  SPDY Client
    regular
      h2
        ssl mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
        plain mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
      spdy/3.1
        ssl mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
        plain mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
      spdy/3
        ssl mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
        plain mode
          ✓ should send GET request
          ✓ should send POST request
          ✓ should receive PUSH_PROMISE
          ✓ should receive trailing headers
    x-forwarded-for
      h2
        ssl mode
          ✓ should send x-forwarded-for
          ✓ agent should emit connection level errors
        plain mode
          ✓ should send x-forwarded-for
          ✓ agent should emit connection level errors
          1) "after each" hook
        spdy/3.1
        spdy/3
          ssl mode
            ssl mode
              2) should send x-forwarded-for
              3) agent should emit connection level errors
            plain mode
              ✓ should send x-forwarded-for
              4) "after each" hook for "should send x-forwarded-for"
              ✓ should send x-forwarded-for

  30 passing (271ms)
  4 failing

  1) SPDY Client
       x-forwarded-for
         h2
           plain mode
             "after each" hook:
     Uncaught Error: write EPIPE
      at afterWriteDispatched (internal/stream_base_commons.js:78:25)
      at writeGeneric (internal/stream_base_commons.js:73:3)
      at Socket._writeGeneric (net.js:714:5)
      at Socket._write (net.js:726:8)
      at doWrite (_stream_writable.js:415:12)
      at writeOrBuffer (_stream_writable.js:399:5)
      at Socket.Writable.write (_stream_writable.js:299:11)
      at Framer.ondata (node_modules/readable-stream/lib/_stream_readable.js:681:20)
      at addChunk (node_modules/readable-stream/lib/_stream_readable.js:298:12)
      at readableAddChunk (node_modules/readable-stream/lib/_stream_readable.js:280:11)
      at Framer.Readable.push (node_modules/readable-stream/lib/_stream_readable.js:241:10)
      at Framer.tickSync (node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js:126:20)
      at Framer.tick (node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js:109:13)
      at /Users/bryanjaramillobaldeon/Documents/projects/node-spdy/node_modules/spdy-transport/lib/spdy-transport/protocol/base/scheduler.js:103:10
      at process._tickCallback (internal/process/next_tick.js:61:11)

  2) SPDY Client
       x-forwarded-for
         spdy/3
           ssl mode
             should send x-forwarded-for:
     TypeError: Cannot read property 'request' of undefined
      at Context.<anonymous> (test/client-test.js:220:27)

  3) SPDY Client
       x-forwarded-for
         spdy/3
           ssl mode
             agent should emit connection level errors:
     TypeError: Cannot read property 'once' of undefined
      at Context.<anonymous> (test/client-test.js:236:15)

  4) SPDY Client
       x-forwarded-for
         spdy/3
           ssl mode
             "after each" hook for "should send x-forwarded-for":
     TypeError: Cannot read property 'call' of undefined

Is there any guide to work with?