Age | Commit message (Collapse) | Author |
|
Soledad's events server might be a pain for tests because if it is not
properly initialized and shut down there might be parts of the server
missing or leftover in the reactor after tests are run. With the recent
changes to the way tests are invocated, there's the need to further
isolate events server startup for benchmarks, otherwise it will conflict
with other tests. This commit moves the events server setup to inside
the pytest_collection_modifyitems() hook, where we can check if the
benchmark subdir was selected and properly start the events server if
needed.
|
|
|
|
|
|
- create payloads before running tests
- use different group names for different amount/sizes
- move legacy index creation to setup function
- limit concurrency on blobmanager to 2 (same as thread pool size)
- add a VACUUM call to observe blobs db size decreasing between tests
- properly cleanup server between blobs test runs
- refactor blobs pipeline so it makes more sense and is easier to read
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
As sqlcipher benchmark tests take longer, we want to limit the number of
repetitions. Previous to this change, these tests were being calibrated
automatically and would run 5 times becuase it is the default minimum
number of times for pytest-benchmark. By changing the runner to pedantic
mode, now they will be run 4 times, the same number of times as
benchmark sync tests.
|
|
|
|
|
|
We noticed that instrumentation added for watching resources has an
impact in time statistics (i.e. it increases average and stddev). This
commit makes the benchmark tests run twice: once for measuring time and
a second time for measuring resources.
|
|
This commit adds the --watch-resources command line option for
benchmarks tests, and allows to running the benchmark test suite with
and without resource monitoring instrumentation code.
This is needed because resource consumption monitoring impacts the mean
time and standard deviation of time taken to run benchmarked tests.
|
|
|
|
|
|
|
|
|
|
|
|
SQLCipher synchronous benchmark tests were introduced when we started
developing benchmark tests to compare synchronous and asynchronous code.
Synchronous access to sqlcipher database is not used in soledad, and
those tests are much slower than asynchronous tests (more than 10 times
using ssd drive), so we want to avoid running them on ci. This commit
introduces a "synchronous" marker and avoid running tests markes as such
in ci environment.
|
|
|
|
|
|
|
|
We were previously not using an empty local db for download benchmark
tests, so there was actually nothing to sync. This commit fixes that by
adding a way to force an empty local db on soledad client instantiation.
|
|
Integrated the secrets's JSON key that specifies ciphers into _crypto
and added optional GCM. Also added a test to check if both cipher types
can be imported.
Resolves: #8680
Signed-off-by: Victor Shyba <victor1984@riseup.net>
|
|
Resolves: #8668 - client: substitute usage of CTR mode + HMAC by GCM
cipher mode
Signed-off-by: Victor Shyba <victor1984@riseup.net>
|
|
We aren't testing huge payloads on CI, so it doesn't make sense to
insert docs one by one. 'gatherResults' can speed up bench setup.
|
|
We are already doing this on encryption, now we can stream also from
decryption. This unblocks the reactor and will be valuable for blobs-io.
|
|
encrypt returns a deferred and needs the adapted benchmark runner.
|
|
When we use marks the new pytests from benchmarks folder are collected
and ignored, but this causes trial to fail sometimes. Using --ignore
avoids it from being loaded while --benchmark-only will properly select
the benchmarks for tox, as intended.
|
|
|