-
Notifications
You must be signed in to change notification settings - Fork 221
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
handholding for tmpl data structures #4001
base: main
Are you sure you want to change the base?
Conversation
b61a94a
to
604a423
Compare
I feel like if you're going to do this, you should make it more strict? Basically do a tmpl_verify after every operation to check all invariants |
604a423
to
5566851
Compare
@mmcgee-jump I updated the PR to call add calls verify wherever: For cases that are not checked because of (2) my intention is to do a separate PR that adds verify calls from the usage side at the end of fuzz tests and other testing. |
5566851
to
dc982c8
Compare
(rebased on main and resolved conflicts with recent fd_map_chain changes) |
dc982c8
to
deedfc0
Compare
Having handholding in fd_map_giant is not practical because pretty soon the very frequently happening inserts/remove will have an overhead of 8-9s just for running verify. This is way too long to run things like ledger tests. |
deedfc0
to
f288304
Compare
Adjusted the vote program to use the correct wrapping variants of deque push, the previous version might seem to work correctly but leaves the deque data structure in an invalid state. |
2750377
to
ea70336
Compare
Following Kevin's comments, I included logging services only when handholding is enabled in places where we don't do other logging. (+ removed trailing whitespace at unrelated code to make the new gh action check happy) |
ea70336
to
58b9820
Compare
Rebased onto main to resolve map_chain merge conflict. |
58b9820
to
cd10d03
Compare
Add debug time assertions to be used as an early bug oracle during fuzzing and other testing * Only based on local information, so handholding can be used without any changes * Focus on data structures currently in use Drive-by: typo fixes, make magic unique, mark unreachable code with unreachable builtin
cd10d03
to
e219f22
Compare
Add debug time assertions to be used as an early bug oracle during fuzzing and other testing