-
Type: Task
-
Resolution: Fixed
-
Priority: Unknown
-
None
-
Affects Version/s: None
-
Component/s: None
-
2550
-
SDK end 2019-11-26, SDK end 2019-12-03, SDK end 2019-12-10, SDK end 2019-12-17, SDK end 2020-1-8, SDK end 2020-1-20
In an attempt to increase the likelihood of catching bugs in corner cases of the Realm JS API which might surface from the upcoming upgrade to Realm Core v6, we could implement randomized tests on the API surface of Realm JS.
Most of our current unit and integration tests operate on single Realms for a few seconds and does exercise multiple (seemingly unrelated) parts of the API in sequence.
In particular we would like randomized testing which:
- Execute semantically valid operations on multiple Realms for a longer period of time (hours).
- Writes a trail of actions to a log, to enable easy replay of failing tests.
- Uses a seeded pseudorandom generator, to enable regenerating the actions for a failing test.
- Continuously checks invariants, either with a model-based approach or comparing end states of parallel executions with different versions of the library.
- Is resilient to crashes, by capturing the crash back trace + trail of actions which led to the crash and continuing tests from a clean state.