pedrocarlo
bb9c8dea4f
rework interaction generation to only generate possible queries + do less allocations
2025-10-07 02:36:13 -03:00
pedrocarlo
1d1b09dc17
modify query generation to always sample from valid queries
2025-10-07 02:36:13 -03:00
Jussi Saurio
aab7d989df
Merge 'Simulator diff print' from Pedro Muniz
...
I was trying to debug MVCC simulator and database diffs, and this change
makes it much easier to visualize this. This PR is just a small quality
of life upgrade for debugability.
Reviewed-by: Jussi Saurio <jussi.saurio@gmail.com >
Closes #3548
2025-10-05 18:34:26 +03:00
pedrocarlo
25ad94079c
print_diff in ReadYourUpdatesBack + TableHasExpectedContent
2025-10-03 11:34:40 -03:00
pedrocarlo
dc0d4e2dcb
print diffs in assert tables
2025-10-03 02:01:14 -03:00
bit-aloo
889ae2cd78
Remove log and env_logger in favor of tracing
...
- Deleted `log` and `env_logger` from simulator dependencies
- Migrated remaining `log::error!` and `log::trace!` calls to `tracing` macros
2025-10-02 19:09:09 +05:30
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