add a new sql genaration library for differential fuzzer that generate coverage reports and better configurations#5105
Open
pedrocarlo wants to merge 52 commits intotursodatabase:mainfrom
Open
add a new sql genaration library for differential fuzzer that generate coverage reports and better configurations#5105pedrocarlo wants to merge 52 commits intotursodatabase:mainfrom
pedrocarlo wants to merge 52 commits intotursodatabase:mainfrom
Conversation
94ee32c to
d153496
Compare
526a2cb to
a26d1c5
Compare
Merging this PR will not alter performance
Comparing Footnotes
|
73a4366 to
060af5b
Compare
0ff3db5 to
428a65d
Compare
report. the stubs maybe have incorrect function signature as of now, but its fine
7c9c591 to
522d008
Compare
522d008 to
7a80ae0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Currently Stacked on top of #5214 for the bug fix
Creates a new sql generation crate for differential fuzzer. The main advantages are that it has coverage/tracing builtin to understand what types of queries we are generating, and has a more sane configuration system without much hassle to configure.
Many expressions are currently stubbed out so that they appear in the Coverage reports that the crate generates. This is just so we can properly track what types of queries we are generating yet.
Did not delete yet
sql_gen_propbecause I just want to make sure we explore the same type of state space in the new crate.Also @LeMikaelF is doing some work trying to integrate
SQLRightinto the codebase. It will need further modifications to support a differential oracle, but it is useful to have our own crate to compare the types of statementsSQLRightgenerates.Motivation and context
Proptest makes it really hard to add proper tracing as it cannot hold references, so we would need to have some annoying way to have a
'staticcontext to capture the traces. Alsosql_gen_prophas a somewhat bad design IMO on how it tries to guarantee that the top level configuration profile is actually respected.Also
sql_gen_propis slightly slop in some places making a bit hard to understand the code (kinda due to some Proptest quirks). So I felt a rewrite was in order.Description of AI Usage
Used heavily to create the generation and tracing/coverage.