-
Notifications
You must be signed in to change notification settings - Fork 157
Remove ConwayNewEpochPredFailure #5007
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
697448d
to
e1e3b92
Compare
libs/cardano-ledger-test/src/Test/Cardano/Ledger/Generic/PrettyCore.hs
Outdated
Show resolved
Hide resolved
I guess you can turn that check into an assertion, that way we'll be able to notice if something's wrong with the reward update in one of our tests. It seems like too expensive of a check to keep it in the production version of ledger and run it every epoch boundary. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removal itself looks good, but it would be nice not to loose the invariant check, so STS assertion seems like the most logical choice.
Also, could you please apply all of the exact same changes to the Shelley NEWEPOCH rule. It suffers from all the same problems.
8afcdd3
to
6c32856
Compare
6c32856
to
c0bf2ca
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
STS Assertion is not the same as assert
provided by GHC
c0bf2ca
to
aca97f2
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is definitely unacceptable.
Test values have no business being used in production code. Not ever!
003d1be
to
c8b89a0
Compare
c8b89a0
to
ba80316
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Beautiful! Thank you!
FYI the test failure that you see on CI in cardano-ledger-shelley-test could have been avoided if we had an STS assertion instead. In any case, it is a poorly written test anyways, since it starts with a totally arbitrary NewEpochState and it only executed for Shelley. Feel free to remove this test, I've created a ticket to bring it back with a more reasonable approach: #5047 |
@Soupstraw @lehins reverting the blooper of the STS assertion to a GHC -- | This property test checks the correctness of the TICKF transation.
-- TICKF is used by the consensus layer to get a ledger view in a computationally
-- cheaper way than using the TICK rule.
-- Therefore TICKF and TICK need to compute the same ledger view.
propTickfPerservesLedgerView :: NewEpochState ShelleyEra -> Property
propTickfPerservesLedgerView nes =
let (EpochNo e) = nesEL nes
slot = slotFromEpoch (EpochNo $ e + 1)
nes' = setDepositsToObligation (filterEmptyRewards nes)
tickNes = runShelleyBase $ applySTSTest @(ShelleyTICK ShelleyEra) (TRC ((), nes', slot))
tickFNes = runShelleyBase $ applySTSTest @(ShelleyTICKF ShelleyEra) (TRC ((), nes', slot))
in fromMaybe discard $ do
Right tickNes' <- pure tickNes
Right tickFNes' <- pure tickFNes
pure $ currentLedgerView tickNes' === currentLedgerView tickFNes'
testTickF :: TestTree
testTickF = testProperty "TICKF properties" propTickfPerservesLedgerView I think that the removal of this predicate failure is dependent on refactoring of the pulser. What do you guys think? Is there another way? I didn't see your comment earlier @lehins. 👍 |
ba80316
to
edf0098
Compare
Replace the corresponding check with an assertion.
Replace the corresponding check with an assertion.
edf0098
to
5a93279
Compare
Description
Closes #4662
Checklist
Tests added or updated when needed.CHANGELOG.md
files updated for packages with externally visible changes.NOTE: New section is never added with the code changes. (See RELEASING.md).
Versions updated in.cabal
andCHANGELOG.md
files when necessary, according to theversioning process.
Version bounds in.cabal
files updated when necessary.NOTE: If bounds change in a cabal file, that package itself must have a version increase. (See RELEASING.md).
scripts/fourmolize.sh
).scripts/cabal-format.sh
).scripts/gen-cddl.sh
)hie.yaml
updated (usescripts/gen-hie.sh
).