Skip to content

[BUG] Unexpected thunks when checking coverage #669

Open
@jeltsch

Description

@jeltsch

When I run the test suite (currently with ad1292b) 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions