The Faye WebSocket stack consists of these modules:
- faye-websocket: node, ruby
- websocket-driver: node, ruby
- websocket-extensions: node, ruby
- permessage-deflate: node, ruby
These are all tested using Autobahn, an exhaustive black-box test suite for WebSocket servers and clients.
This repo contains everything we use to run the test suite for all the combinations of languages, versions and app servers we support. It is very much in a "works on my machines" state, and assumes you have nvm and chruby installed in the canonical locations, and that you have all the required Node and Ruby versions installed.
To get set up:
git clone git://github.com/faye/wstest.git
cd wstest
pipenv install
To update all the WebSocket modules from source and set up their dependencies:
./scripts/update-code
To run the server tests, first start up the test servers:
./scripts/node-servers
./scripts/ruby-servers
Then, in a pipenv shell, run the wstest client:
pipenv shell
wstest -m fuzzingclient
Once the tests are complete, shut down all the test servers:
killall node ruby java
To run the client tests, start the wstest server in a pipenv shell:
pipenv shell
wstest -m fuzzingserver
Then, run the test clients:
./scripts/clients