Feature/SQLite persistence #20
Open
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.
SQLite feature developed based on #11
*Development Summary:
[sqlite.rs file (NEW FILE)]:
Implemented the following functions:
Implemented the following tests:
[main.rs file (MODIFICATIONS)]:
Implemented the following logic:
[lib.rs file (MODIFICATIONS)]:
[git_changes.rs file (MODIFICATIONS)]:
[error.rs file (MODIFICATIONS)]:
[analyze.rs file (MODIFICATIONS)]:
[Cargo.toml file (MODIFICATIONS)]:
*Additional comments:
strategy, config_json from the current execution config -> NOT IMPLEMENTED
The database schema follows the issue documentation entirely, with only one exception on table mutant that was inserted an additional column called file_name to query on analyze section
Apart from the code tests, the following functional tests were performed manually:
(mutate) -> --sqlite flag optional, normal behavior {OK}
(mutate --sqlite ) -> Creates/open "db/mutation.db" and uses it {OK}
(mutate --sqlite results.db) -> Creates/open "db/results.db" and uses it {OK}
(mutate --sqlite ...) -> Verify INSERT OR IGNORE INTO projects (name, repository_url) VALUES ('Bitcoin Core', 'https://github.com/bitcoin/bitcoin'); {OK}
(mutate --sqlite...) -> General behavior: Open DB (create if missing) Ensure projects seed (bitcoin core), create run, insert mutants {OK}
(analyze --sqlite) -> Asks for run_id {OK}
(analyze --sqlite <db_file> <run_id> ) -> Record standard commands {OK}
(analyze <without file (-f ...)> --sqlite <run_id> ...) -> Record only for run_id, behave like analyze normally {OK}
*Further implementations suggestion: