Compat: run them from a copy, and keep our listeners out of the way
Rehearsed the run against a real RocksDB store, and it died at startup before checking anything: the harness inserts listeners of its own, the registry keys them by name, and a real server already has a "jmap" and an "imap". The message was "Primary key conflict on property name with existing object NetworkListener", which says nothing about what to do. Under NO_INSERT the harness now calls its listeners compat-jmap and so on, and the same run gets through to the test's own checks. run-compat.sh copies the store for each test and removes the copy after, because several of these write to what they open: monitoring_compat purges the history it reads and undelete_compat restores what it finds. The source stays untouched, which matters when it is the only copy of a production store anyone took that day. INBUXA runs RocksDB, so a copy is a directory copy. The SQL backends would need more than this: the harness builds its own container and connects to fixed local credentials, so it cannot open a dump in place.
This commit is contained in:
@@ -32,3 +32,13 @@ tools/fork/record-compat.py --server https://mail.example.org \
|
||||
--admin '[email protected]:PASSWORD' --out ./compat \
|
||||
--tenant-admin '[email protected]:PASSWORD'
|
||||
```
|
||||
|
||||
## run-compat.sh
|
||||
|
||||
Runs the `*_compat` tests against a copy of INBUXA's RocksDB store, making
|
||||
a fresh copy for each one. See `docs/spec/compat-tests.md`.
|
||||
|
||||
```bash
|
||||
tools/fork/run-compat.sh --store /srv/inbuxa-copy/rocks.db \
|
||||
--admin '[email protected]:PASSWORD' --recordings ~/compat
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user