Commit 6c2ba81
Adds a test harnesses and utilities framework for sources.
Helper functions and test harnesses for checking correctness of source
(``iobase.BoundedSource``) and range tracker (``iobase.RangeTracker``)
implementations.
Contains a few lightweight utilities (e.g. reading items from a source
such as ``readFromSource()``, as well as heavyweight property testing
and stress testing harnesses that help getting a large amount of test
coverage with few code.
Most notable ones are:
* ``assertSourcesEqualReferenceSource()`` helps testing that the data
read by the union of sources produced by ``BoundedSource.split()`` is
the same as data read by the original source.
* If your source implements dynamic work rebalancing, use the
``assertSplitAtFraction()`` family of functions - they test behavior of
``RangeTracker.try_split()``, in particular, that various consistency
properties are respected and the total set of data read by the source
is preserved when splits happen. Use ``assertSplitAtFractionBehavior()``
to test individual cases of ``splitAtFraction()`` and use
``assertSplitAtFractionExhaustive()`` as a heavy-weight stress test
including concurrency.1 parent 062af66 commit 6c2ba81
3 files changed
Lines changed: 710 additions & 10 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | 22 | | |
24 | 23 | | |
| 24 | + | |
| 25 | + | |
25 | 26 | | |
26 | 27 | | |
27 | 28 | | |
| |||
90 | 91 | | |
91 | 92 | | |
92 | 93 | | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | 94 | | |
102 | | - | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
| 99 | + | |
| 100 | + | |
| 101 | + | |
| 102 | + | |
103 | 103 | | |
104 | 104 | | |
105 | 105 | | |
| |||
141 | 141 | | |
142 | 142 | | |
143 | 143 | | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
144 | 159 | | |
145 | 160 | | |
146 | 161 | | |
| |||
0 commit comments