Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

autobahn websocket test suite tracking #1006

Open
2 of 79 tasks
rustrust opened this issue Jul 23, 2019 · 6 comments
Open
2 of 79 tasks

autobahn websocket test suite tracking #1006

rustrust opened this issue Jul 23, 2019 · 6 comments
Labels
C-bug Category: bug websockets

Comments

@rustrust
Copy link

rustrust commented Jul 23, 2019

To ensure that actix-web provides production-grade websockets, it should pass the crossbar autobahn test suite.

https://github.com/crossbario/autobahn-testsuite

Currently failing cases:

@mlodato517
Copy link
Contributor

mlodato517 commented May 21, 2020

I'd be happy to take this on if no one else has. I imagine this starts by making some sort of reasonable ws example. I currently have this which is near-randomness as I don't understand the domain very well yet.

Then I ran the autobahn test suite and got these results (Edit: rendered results). Unsurprisingly there are lots of failures. The fixes for those failures are going to presumably go into different repos (like actix or actix-web or what-have-you) but will be tested in examples. I'm not exactly sure how to set up Cargo to make that work.

So I guess what I might need help with is:

  1. Setting up a good ws example to test against
  2. Learning how to update actix / actix-web and use the updated version of those packages to test the example (or maybe the example needs to be moved?)

Once I have that all set up I'd be happy to create a checklist of all the test failures that need to be fixed and start knocking them off/opening the floor for others to pick them off.

@mlodato517
Copy link
Contributor

Just bumping this again to see if anyone has time helping me with those two steps above so I can get kicking on fixing these issues!

@mlodato517
Copy link
Contributor

I made actix/examples#331 as hopefully the place where we can start

Setting up a good ws example to test against

Once that's set, I'll document the current failures in this issue and we can figure out how to work on fixing them!

@mlodato517
Copy link
Contributor

mlodato517 commented Jun 22, 2020

[list moved to issue description by admin]

@robjtede robjtede changed the title autobahn websocket test suite autobahn websocket test suite tracking Jun 22, 2020
@robjtede
Copy link
Member

The changes made in PR actix/examples#335 have caused many improvements to close behavior but have highlighted some issues wrt invalid close code handling. When that PR is merged we may check off cases: 7.1.3 & 7.1.4 but will need to add the entirety of section 7.9.

Screenshots of test results.

Tests with -fixed-1 suffix, to the right, show the new behavior, with close codes sent.
Note that 7.1.3 and 7.1.4 are shown failing but will be passing before the PR is merged.

2020-06-24_01 07 06-8f92b67a 2020-06-24_01 07 23-6fcf6539

@mskorkowski
Copy link

Hi, I'm new to the actix-web, so sorry for silly questions.

I've created a repo https://github.com/mskorkowski/actix-web-websocket-echo where you can find a code with echo server handling all except 7 test cases below:

  • Test cases 3.* require access to the reserved bits so they are unfixable on the echo server side.
  • 7.5.1 failure would require changes in the CloseReason. Currently Codec is performig lossy conversion to utf8, which makes it impossible to detect if the description part of the close frame is valid or not.

My question are

  1. Are you interested in merging this code with the autobahn echo example? If so what is the proper procedure to follow?
  2. Should I open a ticket for 7.5.1 for detailed discussion?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
C-bug Category: bug websockets
Projects
None yet
Development

No branches or pull requests

4 participants