Initialize or open an existing database.
Inspects a module for functions starting with upgradeV to create a table of functions that can be used to upgrade a database.
If the database start it version 0, not initialized, then initialize to the latest schema version.
2018-04-08
2018-11-25
2019-04-06
2019-08-28
2019-11-12
2020-01-12
2020-01-21
2020-02-12
2020-02-12
2020-03-21
2020-04-01
2018-04-22
2020-06-01
2020-11-28
2020-11-28
2020-12-06
2020-12-06
2020-12-25
2020-12-25
2020-12-25
2020-12-25
2020-12-27
2018-09-01
2020-12-29
2020-12-29
2021-01-02
2021-01-15
2021-03-14
2021-03-28
2021-03-29
2018-09-24
2018-09-30
2018-10-11
2018-10-15
2018-10-20
2018-11-10
Track all test cases that has been found by the test suite output analyzer. Useful to find test cases that has never killed any mutant. name should match test_case_killed_v2_tbl TODO: name should be the primary key. on a conflict a counter should be updated.
All functions that has been discovered in the source code. The offset_begin is where instrumentation points can be injected.
Each coverage region that has a valid status has an entry in this table. It do mean that there can be region that do not exist in this table. That mean that something went wrong when gathering the data.
When the coverage information was gathered.
Files that roots are dependent on. They do not need to contain mutants.
The lower 64bit of the checksum should be good enough as the primary key. By doing it this way it is easier to update a marked mutant without "peeking" in the database ("insert or update").
The defaults for the schema is the state that the state machine start in.
Timeout mutants that are re-tested until none of them change status from timeout.
Mutants that should be tested.
there shall never exist two mutations points for the same file+offset.
the status of a mutant. if it is killed or otherwise. multiple mutation operators can result in the same change of the source code. By coupling the mutant status to the checksum of the source code change it means that two mutations that have the same checksum will "cooperate". TODO: change the checksum to being NOT NULL in the future. Can't for now when migrating to schema version 5->6. compile_time_ms = time it took to compile the program for the mutant test_time_ms = time it took to run the test suite updated_ts = is when the status where last updated. Seconds at UTC+0. added_ts = when the mutant where added to the system. UTC+0.
The runtime of the test commands.
This could use an intermediate adapter table to normalise the test_case data but I chose not to do that because it makes it harder to add test cases and do a cleanup.