IntersectMBO / IntersectMBO/lsm-tree
[BUG] Unexpected thunks when checking coverage
- Dominant language
- Haskell
- Stars
- 53
- Forks
- 17
- Avg merge
- 2d 3h
- Merged PRs (30d)
- 4
Description
When I run the test suite (currently with ad1292b970a3fd990265808245aa4904ee6951d1) and have coverage checking enabled, then I get failures like the following ones:
```
prop_noThunks_newPageAcc: FAIL
*** Failed! Falsified (after 1 test):
Found thunk ThunkInfo {thunkContext = ["PageAcc"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 6848572901445988197 3866298262932292735,0)" to reproduce.
Use -p '/prop_noThunks_newPageAcc/' to rerun this test only.
prop_noThunks_pageAccAddElem: FAIL
*** Failed! Falsified (after 1 test):
Found thunk ThunkInfo {thunkContext = ["PageAcc"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 11663673265626043436 15978012764355855857,0)" to reproduce.
Use -p '/prop_noThunks_pageAccAddElem/' to rerun this test only.
prop_noThunks_resetPageAcc: FAIL
*** Failed! Falsified (after 1 test):
Found thunk ThunkInfo {thunkContext = ["PageAcc"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 7347757721205846164 14956855808673582855,0)" to reproduce.
Use -p '/prop_noThunks_resetPageAcc/' to rerun this test only.
propLockstep_RealImpl_RealFS_IO: FAIL (0.01s)
*** Failed! Falsified (after 1 test):
do pure ()
Found thunk ThunkInfo {thunkContext = ["Session'"], thunkInfo = Nothing}
Use --quickcheck-replay="(SMGen 17214650247628038002 3390861474545086669,0)" to reproduce.
Use -p '/propLockstep_RealImpl_RealFS_IO/' to rerun this test only.
```
When I have coverage checking *disabled*, no such failures occur. I guess there is indeed some unwanted laziness here, which just doesn’t show up without coverage checking because of better optimization. Since we shouldn’t rely on such optimization subtleties, we should investigate this further and fix any issues we find.
Contributor guide
Assessment
This issue has not been assessed yet.