Commit graph

634 commits

Author SHA1 Message Date
Miklos Vajna
f38e0db765 test helpers: fix -Werror,-Wreturn-type
./test/helpers.hpp:211:1: error: non-void function does not return a value in all control paths [-Werror,-Wreturn-type]

Perhaps it could go further and even call LOK_ASSERT_FAIL().

Signed-off-by: Miklos Vajna <vmiklos@collabora.com>
Change-Id: I4f68f6d290bcb0a832ea71153d5f699d5366def9
2021-04-07 10:27:07 +02:00
Ashod Nakashian
e2253257ef wsd: test: http: use Response in the test server
Change-Id: I6e4960d11fc11c509c858cdcb0e68c3ba629da58
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
251f436049 wsd: test: http: loopback to echo server and random data
Change-Id: Icb57f7658aa88ff748121996187077b105a8389b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
bfc877546b wsd: test: http: echo server
The server, upon request via /echo URL,
returns in the body of the response whatever
is sent in the URL past the "/echo/" prefix.

And use socket::flush() where possible.

Change-Id: Idbb9b70cde69b9030f3f7768185f7ecf0ea321fd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
bf13f90a3a wsd: test: http: more mature http test server
Change-Id: I1ee85847da6c58922c220b7d6cdf675d8e8e4f81
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
8e81559b50 wsd: test: http: use Response instead of crafting strings
Change-Id: Ia072d34d7ea309d1d50782710c70a9539c95a777
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
ea7376df34 wsd: test: http: simplify http test server
Change-Id: I41b025bfa7bbc127f844a202c2047624ea40aa2d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
0d0dbaea79 wsd: test: http: support external regression-test server
Change-Id: I82b4ab126e85be5b414f7dac138fdb7e1780cf9a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
4d413af916 wsd: test: http: improve http test server
Change-Id: Id1e19b857d9c82f953746dbfbcd1a19c7f3cc792
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
257f8d5753 wsd: test: http: improve GET test validation
Change-Id: I6f7b1f2180a0923b85a625d460437fbb6a05097a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
8638970918 wsd: test: retry poco requests and check body
Change-Id: I42c59208f5df8cba039f8fe96e134787ab5a1ca0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
6e75fca0b1 wsd: test: http: add HttpTestServer
To be used as a loopback http test server.

Change-Id: Ifb6109f9d49d8cedb8e8502fed8bf426898201a2
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-03 19:57:03 -04:00
Ashod Nakashian
fbf42a63b9 wsd: test: http: name increase test timeout
Reduces the chance of transient timeouts
due to network issues or load.

Change-Id: I286aa0035546f0c409dddb86654256fce2eb1983
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:58:06 -04:00
Ashod Nakashian
7f8ddf0079 wsd: http: support creating http::Session from URIs
A full URI with scheme can now be used to
create http::Session instances.

Change-Id: I3e556e3e1aa247ccb93749d9bd6736a15290f442
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:58:06 -04:00
Ashod Nakashian
f3b151132c wsd: test: use chrono for readable and safe time durations
Change-Id: I0e1b380af4cff8e364564d287c8291b206622f38
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
e9c5c0f812 wsd: add utility to parse URIs into primary components
With unit-tests.

Change-Id: Ie6ae1a4fee4863e27ea90af1cf476a72300fa10e
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
91ca2e9775 test: make run_unit.sh more helpful on failure
This improves the output on test failures and
makes it more consistent with the actual command
that failed.

Change-Id: I7f1bc90163e53efb0bd7cfb3a5892c7d4f0dad45
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
23cde8454a wsd: more informative SSL state reporting
Change-Id: Icd4b05e0190f1ae581cbe1b4e7df87bb439a63c8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
6bffc7cf53 wsd: case-insensitive string equality utility added
With unit-tests.

Change-Id: I89b3589d53d117fbd1f25fbdc5d9e0fc61df4b74
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
c00dce5a2e wsd: test: log connection security
Change-Id: Iaa81fa33dbbf5d82cdbb95ab39e6e5dbd6ef7104
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
9f4fcd098e wsd: test: make test assertion failures more obvious
Change-Id: Id076c9b270837840d8aa2bc88fa42e0861ad6df7
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 13:18:41 -04:00
Ashod Nakashian
5c6cd3aaec wsd: test: properly include config.h in the tests
When config.h is not included, the build
configuration is missing from the translation
unit in question. This affects ENABLE_SSL,
for one.

Also, HttpRequest.hpp depends on LOOLWSD_VERSION,
which is defined in config.h.

The config.h header must be included in all
trasnlation-units, and must be the first include.
This is to avoid conflicts and/or mismatching
binaries built with different compile-time values.

We also statically assert if LOOLWSD_VERSION
is not defined, to help the error message.

Change-Id: Ic4b45de879f3360a07e9507fdf04abfa4cec6a71
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 12:43:39 -04:00
Ashod Nakashian
a1761c880f wsd: test: use config to decide what URI to use in tests
With this, tests use SSL connections not just based
on the build settings (and whether or not config.h
is included in the test translation-unit), but also
based on the actual config, which can be changed
by the test in question.

Change-Id: I6cce5949e7785cee481fdc805a1804df6fdd8b8d
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 12:43:39 -04:00
Ashod Nakashian
08eab4bc15 wsd: more config features
Change-Id: I2fb33a2d89ab886bc454ae961dbff7b6c2c1b0ef
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-04-02 12:43:39 -04:00
Gabriel Masei
21d514ecff admin: add support for lost kits cleanup
Signed-off-by: Gabriel Masei <gabriel.masei@1and1.ro>
Change-Id: I31969196aa138b6da964c867679ec23f34c89fd0
2021-04-01 22:09:44 +01:00
Gleb Popov
201510798c Add explanation for trick used in WhiteBoxTests::testTime()
Signed-off-by: Gleb Popov <6yearold@gmail.com>
Change-Id: I657586231eb7d7be344944c85b40eae9048931dd
2021-03-31 15:51:01 -04:00
Gleb Popov
5bb2f93688 Fix testTime tests on libc++/FreeBSD.
On some systems std::chrono::system_clock::period is std::milli instead of std::nano.

Signed-off-by: Gleb Popov <6yearold@gmail.com>
Change-Id: I3ac5ad3f47b1488c28e1ba3a5621c57c1ec2d78c
2021-03-27 17:59:11 -04:00
Ashod Nakashian
38f2707881 wsd: test: http: improve HttpRequestTests
Change-Id: Ideaf8f1cad492fda6eab57bcefefac861a05e28a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-22 10:09:22 -04:00
Ashod Nakashian
5749d7457d wsd: http: improve StatusLine
And update unit-tests.

Change-Id: I29bcb8232c77d3c0c1fe316854417726671765f1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-22 10:09:22 -04:00
Ashod Nakashian
1f978d9b50 wsd: cleanup Poco headers
Change-Id: I1eec2301576fc2f1cde40389b1f858f80b1204c0
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-22 10:09:22 -04:00
Ashod Nakashian
d15528ea91 wsd: http: improved whitebox http tests
Change-Id: I42cd2f6f8ea08923c9f0facab7a51f84bff7f524
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-22 10:09:22 -04:00
Ashod Nakashian
da07625352 wsd: http: parse the http header only
Previously, we were parsing the Status Line
and the header, both together. This of course
doesn't work when we had removed the Status
Line already. This wasn't an issue in parsing
responses from servers, but doesn't work when
parsing requests from clients (i.e. in a server).

Also, it's simpler.

Tests extended accordingly.

Change-Id: Id1c9a6385080c86b6072130fa8a169a699c42462
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-22 10:09:22 -04:00
Ashod Nakashian
f7d5428f3c wsd: test: better http tests
Change-Id: I9cb6b91790951dcb20ccd6f3f4746d66aed5b72b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-22 10:09:22 -04:00
Ashod Nakashian
56539c60ab test: don't use colored logging when output is redirected
Change-Id: I048dfb02fc37ae7be137ae7285758a89615b2dff
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
c1cc2eacc8 wsd: test: LOK_ASSERT messages support ostream
Change-Id: I123348d51cb6a35080f323fb37119cfa382e0a52
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
72e2b1ac9a wsd: http: better test assertions
Change-Id: Ifccbc6f7a85515ca1d372755df28409fa5d7a26b
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
ea9c483a28 wsd: http: StatusLine tests
Change-Id: Iac39191b407463d2691ec3c58af2a4b4abfc6645
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
78fe04a58d wsd: better http poll thread name
Change-Id: I60a4ee09fcfb1bd34b44a21253ecac78f3d6830f
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
e7d336afbd wsd: test: HttpRequestTests improved
Change-Id: I143f2e172c6134a793839154e898ab3f63cf3390
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
1517355747 wsd: test: WhiteBoxTests include cleanup
Change-Id: Ibddf5e0d6008c8d8684b3c7a329dc85d82efd22a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
774afe1393 wsd: http::Request parser
This adds support to parse client request
on the server side.

Unit-tests included.

Change-Id: I90e9ad3007a3215682991fd2383362e1c48589a8
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-16 08:27:46 -04:00
Ashod Nakashian
65f71a2efb wsd: better logging of hex data dumps
And guard http data dumping with debug directives.

Change-Id: I22a725ba49bfb0399a27889ce9732dfe061e2563
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-13 19:34:02 -05:00
Ashod Nakashian
5467a7f7ef wsd: simplify and document dumpHex
Change-Id: I636dd6548b0712a72dfc162eb7381e3e7ac18b5a
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-13 19:34:02 -05:00
Ashod Nakashian
494161940b wsd: test: minor fix to Makefile
Change-Id: Iecfe38b598adf4f9ddea97a02fd2a7d64d23cbde
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-11 09:15:40 -05:00
Ashod Nakashian
96f542a3be wsd: resuable http test helpers
Change-Id: Ib3419ad221bf957fb04d1a8112a2b1dc2ea549bd
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-11 09:15:40 -05:00
Ashod Nakashian
c215f203dd wsd: test: use unique_ptr
Change-Id: Ia00d90d83ad35de56b2563e80b20b575325b5745
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-11 09:15:40 -05:00
Ashod Nakashian
b46ff5f985 wsd: test: improve unit-integration
Change-Id: I9b5f13012278c8f3e0f4e79a46d462faa76ba78c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-11 09:15:40 -05:00
Ashod Nakashian
b8c08b3e00 wsd: test: more informative test failure
When we fail to read any data from the WS,
'bytes' is -1 and is unsuitable for creating
a std::string instance from, as it throws.

Make failure in this case more informative
with proper assertion.

Change-Id: I8966b922aa0053502c58b528005602193b0593c1
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-11 09:15:40 -05:00
Ashod Nakashian
95bb52d945 wsd: test: better logging
Change-Id: I3d17afb2e76f1d4b2b27182a6419482801342e8c
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-08 22:49:53 -05:00
Ashod Nakashian
a533627b5a wsd: test: improved logging
Change-Id: Iac80450cd88997572727ffe30e0b26737df96f46
Signed-off-by: Ashod Nakashian <ashod.nakashian@collabora.co.uk>
2021-03-08 22:49:53 -05:00