Commit Graph

241 Commits

Author SHA1 Message Date
Benjamin Sergeant
ce9feeafdf try to delete subtree usocket again 2020-02-12 10:08:42 -08:00
Benjamin Sergeant
4d7332c4ee activate chat test on Windows 2020-01-13 16:44:10 -08:00
Benjamin Sergeant
b96b3b099f test broadcast server 2020-01-12 21:32:26 -08:00
Benjamin Sergeant
bb31612ebe more doc 2020-01-12 11:16:54 -08:00
Benjamin Sergeant
a01584ad9d compatibility websocket server / add non ssl echo_server which does not run into the ssl error (#140) 2020-01-12 10:34:33 -08:00
Benjamin Sergeant
9651f3823d (apple ssl) model write method after the OpenSSL one for consistency
More test code for #140.
2020-01-10 18:32:34 -08:00
Benjamin Sergeant
a5bc39be55 (websocket client) better error propagation when errors are detected while sending data + (ws send) detect failures to send big files, terminate in those cases and report error (troubleshooting #140) 2020-01-06 14:34:43 -08:00
Benjamin Sergeant
c62ad5f466 add reference ssl echo server using websockets and nginx reverse proxy to terminate ssl 2020-01-05 15:26:35 -08:00
Benjamin Sergeant
effa115ed2 Merge commit 'c992cb4e42cc223f67ede0e48d7ff3f4947af0c6' as 'test/compatibility/C/uWebSockets' 2020-01-04 15:41:03 -08:00
Benjamin Sergeant
b9504fcd44 add another compatibility python client 2020-01-04 15:37:40 -08:00
Benjamin Sergeant
299bcd4b92 Add a simple python program to send a file (debugging #140) 2020-01-04 15:18:02 -08:00
Benjamin Sergeant
d60777b9cc clang-format 2019-12-30 08:46:18 -08:00
Benjamin Sergeant
d2acfd5d1f (ws client) use correct compilation defines so that spdlog is not used as a header only library (reduce binary size and increase compilation speed) 2019-12-25 09:03:57 -08:00
Benjamin Sergeant
9347664622 (cobra) Add TLS options to all cobra commands and classes. Add example to the doc. 2019-12-19 20:49:28 -08:00
Benjamin Sergeant
5c5ea6dec1 (ws) #125 / cmake detects an already installed jsoncpp and will try to use this one if present 2019-12-03 16:01:46 -08:00
Benjamin Sergeant
28a0ba4768 tweaks to the test python proxy code / (moved here) https://gist.github.com/bsergean/bad452fa543ec7df6b7fd496696b2cd8 2019-11-20 11:32:21 -08:00
Benjamin Sergeant
cc492bf1a3 add a python websocket proxy which works on Linux, while ws proxy_server does not 2019-11-18 13:46:11 -08:00
Benjamin Sergeant
16c6f08e2d fix android build + proxy work 2019-11-16 06:51:53 -08:00
Benjamin Sergeant
081dd2c4bb Add unittest to IXSentryClient to lua backtrace parsing code 2019-10-26 10:54:47 -07:00
Benjamin Sergeant
bbfa76a2c9 move sentry code around and add a stub unittest for it 2019-10-25 14:54:31 -07:00
Benjamin Sergeant
c3a619f114 Add client support for websocket subprotocol. Look for the new addSubProtocol method for details 2019-10-13 13:37:34 -07:00
Benjamin Sergeant
a383ac10d9 make sure the unittest pass withouth SSL 2019-10-03 09:41:17 -07:00
Benjamin Sergeant
afed387bcf Socket Factory has only one function which works for server and client code, and can do tls for both 2019-09-30 22:06:46 -07:00
Benjamin Sergeant
bf46f3fe8f unittest / specify a cacert for tls client tests 2019-09-29 21:24:22 -07:00
Benjamin Sergeant
7e1a60e61d DNS lookup test works on windows 2019-09-27 14:34:47 -07:00
Benjamin Sergeant
4cd11fdbc7 mbedtls fixes / the unittest now pass on macOS, and hopefully will on Windows/AppVeyor as well. 2019-09-27 14:07:01 -07:00
Benjamin Sergeant
6762978ddf http server unittest + refactoring 2019-09-26 09:45:59 -07:00
Benjamin Sergeant
3cd7c0194f Stop having ws send subcommand send a binary message in text mode, which would cause error in make ws_test shell script test 2019-09-25 15:39:43 -07:00
Benjamin Sergeant
94c589f696 Fix 2 race conditions detected with TSan, one in CobraMetricsPublisher::push and another one in WebSocketTransport::sendData (that one was bad). 2019-09-24 11:46:54 -07:00
Benjamin Sergeant
490fbf4cb5 try to enable more tests on windows 2019-09-23 21:52:32 -07:00
Benjamin Sergeant
d46ce7eb63 fix tsan errors on macOS when running the unittest 2019-09-23 21:51:55 -07:00
Benjamin Sergeant
ceb0c602c9 Add simple Redis Server which is only capable of doing publish / subscribe. New ws redis_server sub-command to use it. The server is used in the unittest, so that we can run on CI in environment where redis isn not available like github actions env. 2019-09-23 21:04:01 -07:00
Benjamin Sergeant
95722e3bbb fix linux compilation error, by ordering dependant libraries properly 2019-09-23 12:32:04 -07:00
Benjamin Sergeant
1cde26771a move snake code to its own subfolder like ixcobra, ixcrypto, etc... 2019-09-23 11:46:16 -07:00
Benjamin Sergeant
cd3c9d879c reformat everything with clang-format 2019-09-23 10:25:23 -07:00
Benjamin Sergeant
398c4fbf99 fix unittest 2019-09-22 19:40:33 -07:00
Benjamin Sergeant
e7b4a985b4 fix unittest compiler warnings 2019-09-22 19:22:48 -07:00
Benjamin Sergeant
20ce498d23 On error while doing a client handshake, additionally display port number next to the host name 2019-09-17 12:08:52 -07:00
Benjamin Sergeant
354c9b412e rename test file 2019-09-17 12:07:31 -07:00
Benjamin Sergeant
e2121d809e fix unittest warnings + remove trailing spaces 2019-09-12 11:43:52 -07:00
Benjamin Sergeant
2453f5b717 restructure project 2019-09-10 12:19:22 -07:00
Benjamin Sergeant
64d3c99f99 improve some websocket error messages + add a utility function with unittest to parse status line and stop using scanf which triggers warnings on Windows 2019-09-09 21:23:57 -07:00
Benjamin Sergeant
6c0890594b improve some websocket error messages + add a utility function with unittest to parse status line and stop using scanf which triggers warnings on Windows 2019-09-09 17:34:36 -07:00
Benjamin Sergeant
427db5bd59 Fix Windows CI with appveyor (#110)
Fix windows CI with appveyor + minor tweaks.
2019-09-07 14:07:00 -07:00
Benjamin Sergeant
c259c918ac cobra metrics publisher test uses random free port 2019-09-05 22:05:00 -07:00
Benjamin Sergeant
2f7438f0d5 cobra chat test uses random free port 2019-09-05 22:02:10 -07:00
Benjamin Sergeant
37a7b362d8 add cobra metrics publisher + server unittest 2019-09-05 21:57:05 -07:00
Benjamin Sergeant
c0f098a578 Add new cobra unittest, using server and client 2019-09-05 20:49:58 -07:00
Benjamin Sergeant
51799353a6 Sending invalid UTF-8 TEXT message should fail and close the connection (fix remaining autobahn test: 6.X UTF-8 Handling) 2019-09-03 14:12:40 -07:00
Benjamin Sergeant
e98ec9ec75 clang format 2019-08-13 10:59:18 -07:00
Benjamin Sergeant
dfc188a24d do not use mbed tls for the unittest 2019-07-03 14:39:46 -07:00
Benjamin Sergeant
e8a20c7e8a refactor select code + add protection against large fds (cf Android 9) 2019-06-25 15:41:39 -07:00
Benjamin Sergeant
0423ed01a6 Add extra check in IXWebSocketCloseTest.cpp 2019-06-25 14:10:39 -07:00
Benjamin Sergeant
f84bc53c8d Feature/httpd (#94)
* Stub code for http server

* can send a response, cannot process body yet

* write headers to the response

* remove commented code

* add simple test + set default http handler

* tweak CI + unittest

* add missing file

* rewrite http::trim in a simple way

* doc
2019-06-23 14:54:21 -07:00
Benjamin Sergeant
b26e9d0338 IXDNSLookup. Uses weak pointer + smart_ptr + shared_from_this instead of static sets + mutex to handle object going away before dns lookup has resolved 2019-06-19 00:43:59 -07:00
Benjamin Sergeant
9d70fb2b86 disable building ws on windows on travis 2019-06-10 22:01:19 -07:00
Benjamin Sergeant
03b5a57474 compile error in IXWebSocketMessageQTest 2019-06-09 12:25:36 -07:00
Benjamin Sergeant
f58cf4826a fix IXWebSocketMessageQTest.cpp 2019-06-09 12:08:00 -07:00
Benjamin Sergeant
3e15840b14 - WebSocket::send() sends message in TEXT mode by default
- WebSocketMessage sets a new binary field, which tells whether the received incoming message is binary or text
2019-06-09 11:56:47 -07:00
Benjamin Sergeant
be93f7480a WebSocket callback only take one object, a const ix::WebSocketMessagePtr& msg 2019-06-09 11:33:17 -07:00
Benjamin Sergeant
2e5f24f1f8 ... 2019-06-09 10:22:27 -07:00
Benjamin Sergeant
051c34bc5d Add test/compatibility folder with small servers and clients written in different languages and different libraries to test compatibility. 2019-06-08 09:46:26 -07:00
Benjamin Sergeant
076e8bf6a3 add an option to easily disable per message deflate compression 2019-06-06 13:48:53 -07:00
Benjamin Sergeant
78b3d7ff2d Feature/http async (#90)
* unittest working / uses shared_ptr for a bunch of things 🗿

* fix command line tools

* fix ws + add doc

* add more logging
2019-06-05 17:04:24 -07:00
Benjamin Sergeant
539abe5151 HttpResponse is a struct, not a tuple 🉐 2019-06-03 22:12:52 -07:00
Benjamin Sergeant
6b933391e5 http client: stop hardcoding Accept header, and use a default value if one is passed in 👭 2019-06-03 14:02:54 -07:00
Benjamin Sergeant
1e2a5ee21d Add simple HTTP and HTTPS client test ㊙️ 2019-06-03 12:23:35 -07:00
Benjamin Sergeant
06cbebe22e Feature/mbedtls (#84)
* try to import mbedtls and build it

* add stubs socket class

* some boilterplate, read and write function implemented

* more boilterplate / current error in handshake because no CA cert is setup

* add something so skip ca verification, can ws curl https://google.com !

* cleanup / close implemented

* tweak CMakefiles

* typo in include

* update readme

* disable unittests
2019-06-01 17:41:48 -07:00
Benjamin Sergeant
285386e47f fix cobra to sentry + change ws docker file to use alpine (much smaller footprint) 2019-05-31 00:43:22 -07:00
Benjamin Sergeant
718154cfb4 enable IXWebSocketMessageQTest.cpp on mac and windows 2019-05-22 11:03:13 -07:00
Kumamon38
3365facf9f Fix ping (#80)
* let poll do his job when closing

* try fix test

* try fix test

* Update IXWebSocketTransport.cpp

* add log to find issue on CI

* add log to find issue on CI

* add log to find issue on CI

* add log to find issue on CI

* add log to find issue on CI

* change state immediately, and send close frame after

* add immediate close test

* disable test for windows

* reenable ping / ping timeout tests

* add time to let windows close client

* reenable ping timeout test

* add 100ms more

* disable test for windows
2019-05-21 09:35:41 -07:00
Kumamon38
8a4826164b fix close bug and tests : let poll do his job when closing (#79)
* let poll do his job when closing

* try fix test

* try fix test

* Update IXWebSocketTransport.cpp

* add log to find issue on CI

* add log to find issue on CI

* add log to find issue on CI

* add log to find issue on CI

* add log to find issue on CI

* change state immediately, and send close frame after

* add immediate close test

* disable test for windows
2019-05-21 09:34:08 -07:00
Benjamin Sergeant
d6eabae4f0 one cpu on windows for executing tests 2019-05-17 15:45:31 -07:00
Benjamin Sergeant
6bd81bb92e add back IXWebSocketMessageQueue, with its unittest disabled 2019-05-16 22:41:39 -07:00
Benjamin Sergeant
51fa147b99 Revert "Merge branch 'Dimon4eg-message-queue'"
This reverts commit 13fa325134, reversing
changes made to aecd5e9c94.
2019-05-16 22:15:17 -07:00
Benjamin Sergeant
8c1d66bcf3 refactor connect unittest so that it hits a local server instead of a remote server 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
fc0776303a first socket test hit a local server instead of a remote server / this can help with a windows intermittent failure 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
dae21e7681 use a regular mutex instead of a recursive one + stop properly 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
d28437ecc0 adding logging to IXWebSocketTestConnectionDisconnection makes it fails reliably 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
f94c7cef59 -j option actually work ... 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
7734d63b1b unittest / add options to set the number of jobs 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
f894504761 enum class HttpErrorCode derives from int 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
7aa9b4ee64 try to re-enable some tests 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
a12250dc16 recursive mutex + enable test that was breaking on Ubuntu Xenial + gcc + tsan 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
d8fbe1a63e comment failing test 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
91e1760719 comment failing test 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
0c9bcfb8ac more protection against socket when closing 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
bd4c5037c7 fix compile errors with C++ enum class 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
ccaaedf38f close and stop with code and reason + docker = ubuntu xenial 2019-05-16 19:23:32 -07:00
Dimon4eg
751f294164 add isEnabledAutomaticReconnection (#75)
* add isEnabledAutomaticReconnection

* test isEnabledAutomaticReconnection

* rename
2019-05-16 19:23:32 -07:00
Kumamon38
a220774a3b add more time to let client close (#73) 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
66dae5840c use spdlog for logging in the unittest 2019-05-16 19:23:32 -07:00
Benjamin Sergeant
89b9e6e531 fix inverted conditional 2019-05-16 19:23:31 -07:00
Benjamin Sergeant
1023e925f6 travis cmake version on macOS does not know --parallel option 2019-05-16 19:23:31 -07:00
Benjamin Sergeant
5d65365751 build in parallel + stop building linux + clang 2019-05-16 19:23:31 -07:00
Benjamin Sergeant
ee64a6ec7e disable ping tests for now as they are not super reliable 2019-05-16 19:23:31 -07:00
Benjamin Sergeant
9bc09105d7 Feature/windows ci (#76)
* close with params

* ...

* different generator

* core size = 1

* disable more tests to get something working on windows

* try to enable another test on windows

* enable all OS

* set proper version of linux

* another try

* try again with just env variables

* Revert "core size = 1"

This reverts commit 29af74bba6.

* add windows and mac

* Revert "close with params"

This reverts commit 6bb00b6788.
2019-05-16 19:23:31 -07:00
Kumamon38
4b96632a69 save timepoints after connect and not in contructor, adjusted tests (#72)
* save timepoints after connect and not in contructor, adjusted tests

* move call into setReadyState

* more time to detect client close in test
2019-05-16 19:20:29 -07:00
Dimon4eg
d8dc977fc1 Fix run.py (#71)
* fix run.py

* run.py: fix Windows support

* fix test listing
2019-05-16 19:20:29 -07:00
dimon4eg
f9ec89cf7a update test 2019-05-12 19:57:31 +03:00