Commit Graph

216 Commits

Author SHA1 Message Date
pedrocarlo
dc0d4e2dcb print diffs in assert tables 2025-10-03 02:01:14 -03:00
pedrocarlo
b624e449bc simulator: reopen database with mvcc when necessary 2025-10-01 11:38:11 -03:00
pedrocarlo
9f95499a55 do not count BEGIN, COMMIT, and ROLLBACK queries as interactions in the InteractionPlan, so we can generate more meaningful intereactions without hitting the max cap quickly 2025-09-27 23:52:57 -03:00
pedrocarlo
13764e6b8e in mvcc if creating a ddl statement, first commit all connections 2025-09-27 23:52:57 -03:00
pedrocarlo
dc1b1469a3 write connection index to sql file 2025-09-27 23:52:57 -03:00
pedrocarlo
461c765b7b fix shrinking extensional queries. Now we only keep queries and/or properties that contain a depending table 2025-09-27 23:52:57 -03:00
pedrocarlo
d3c2198a75 keep track of each pending query for the transaction and then apply the queries on commit 2025-09-27 23:52:57 -03:00
pedrocarlo
9fd73855d2 after we generated all interactions if some connection is still in a transaction, commit 2025-09-27 23:52:57 -03:00
pedrocarlo
ff9599abe1 do not generate non-conccurent transactions with mvcc 2025-09-27 23:52:57 -03:00
pedrocarlo
df420ab815 consolidate SimulatorEnv rollback code 2025-09-27 23:52:57 -03:00
pedrocarlo
026fd9ae9e add ignore_error flag to interaction so that we fail on errors when executing interactions 2025-09-27 23:52:57 -03:00
pedrocarlo
f2d29ffaaf make transactions truly concurrent with mvcc 2025-09-27 23:52:57 -03:00
pedrocarlo
d070c1c184 rollback active transaction in properties that error is acceptable 2025-09-27 23:52:57 -03:00
pedrocarlo
44c08c02d1 do not shadow interactions when generating the next plan, only after the interaction is ran 2025-09-23 21:57:06 -03:00
pedrocarlo
5f83f3bdfe modify plan generation to generate interactions on demand 2025-09-23 21:57:06 -03:00
pedrocarlo
6569d27bdc compare rows order insensitively for differential testing 2025-09-22 15:33:37 -03:00
pedrocarlo
2cd7c68c35 adjust property generation to not panic by always having some property to select from 2025-09-22 15:24:30 -03:00
pedrocarlo
6e2b0c901e remove PanicGenerationContext and instead just pass the connection context directly 2025-09-21 14:16:46 -03:00
pedrocarlo
021d5d272a refactor shadowing code to take into account snapshot isolation 2025-09-20 12:01:07 -03:00
pedrocarlo
0293c32616 disable integrity check and indexes when using mvcc 2025-09-20 11:52:15 -03:00
pedrocarlo
850dbc75a2 adjust shrinking to keep previous interactions if there are no depending tables 2025-09-20 11:52:15 -03:00
pedrocarlo
c3cdb0e0fd add begin concurrent before each statement with mvcc 2025-09-20 11:52:15 -03:00
pedrocarlo
13f36880f8 adjust generation code to use the context from the current connection index instead of the whole database 2025-09-20 11:52:15 -03:00
pedrocarlo
30538e7898 modify Begin struct 2025-09-20 11:52:15 -03:00
pedrocarlo
c072b0314b fix shrinking 2025-09-18 12:00:18 -03:00
pedrocarlo
27a8f019c6 clippy 2025-09-17 10:49:24 -03:00
pedrocarlo
6039a30222 fix double create failure 2025-09-17 10:49:24 -03:00
pedrocarlo
81cff3e3d7 fix shrinking to use a secondary index that points to the Property that generated the interactions 2025-09-17 10:49:24 -03:00
pedrocarlo
f95ac87f06 simplify code for differential testing 2025-09-17 10:49:24 -03:00
pedrocarlo
4d9e676f65 simplify run_simualtion signature + remove watch mode file as it shares logic with default run simulation logic 2025-09-17 10:49:24 -03:00
pedrocarlo
b98c22a90e run simulation on the total list of interactions to avoid recomputing whole vec of interactions on each loop + change state management in preparation for multiple connections change 2025-09-17 10:49:24 -03:00
pedrocarlo
faf38fe196 add connection Index to interaction struct 2025-09-17 10:49:24 -03:00
pedrocarlo
7e02fbe7e7 make assertion to be cloneable 2025-09-17 10:49:24 -03:00
pedrocarlo
77cab30c5b add connection index to interaction 2025-09-17 10:49:24 -03:00
pedrocarlo
5f24ff6e45 fix non determinism by using IndexSet for order preserving iteration 2025-09-05 02:00:18 -03:00
pedrocarlo
8c7da3a704 impl SimIO for SimulatorIO 2025-09-01 11:11:03 -03:00
pedrocarlo
4f2bc96dbe add Faultless profile 2025-08-30 13:07:19 -03:00
pedrocarlo
5881ee71d6 clippy 2025-08-30 12:21:37 -03:00
pedrocarlo
61fa7546c1 fold some SimulatorOpts fields to Profile 2025-08-30 11:31:52 -03:00
pedrocarlo
463eb1fefd simplify profile weights for writes 2025-08-30 11:31:52 -03:00
pedrocarlo
2f237fdcfd adjust remaining calculation to use the profile 2025-08-30 11:31:52 -03:00
pedrocarlo
962666831b read Profile file from path or use predefined profiles 2025-08-30 11:31:52 -03:00
pedrocarlo
06b923d0c1 adjust simulator to use correct trait signature 2025-08-30 11:31:52 -03:00
pedrocarlo
e0552629e3 create Generation Options structs 2025-08-30 11:31:52 -03:00
pedrocarlo
8010b7d0c7 make simulator use sql_generation crate as dependency 2025-08-25 22:59:31 -03:00
Jussi Saurio
97657a86b3 Do not assume error message content in FaultyQuery 2025-08-19 12:49:01 +03:00
pedrocarlo
d96a26aef9 Property TableHasExpectedContent should just check the expected
content on runtime, not generation time
2025-08-18 16:00:59 -03:00
pedrocarlo
59da828362 do not shadow FaultyQuery's immediately. Only shadow them later 2025-08-18 12:40:02 -03:00
pedrocarlo
6388ed2017 FaultyQuery enabled by default 2025-08-18 11:52:10 -03:00
Jussi Saurio
6c17fa2a5e fix/sim: prevent sim from trying to create an existing table or index
We recently merged a change that panics the sim on parse errors, because
not doing so has masked many scenarios where the sim unintentionally
creates incorrect sql and we just ignore it.

We already have Property::DoubleCreateFailure to assert that the same table
cannot be created twice, so this should not hide any bugs.
2025-08-17 18:13:05 +03:00