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
399f35f73c
for each connection keep track of the tables at the start of the
...
transaction as well
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
bbbdd8c1e2
simplify rusqlite execution
2025-09-27 23:52:57 -03:00
pedrocarlo
009a8188e4
correctly shrink transaction statments across connections
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
4cbf861699
use a different seed for gen_rng
2025-09-25 01:20:35 -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
69d09bcf8c
modify code to use runtime generation
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
7d1f23dd3a
better diffing with similar crate
2025-09-22 15:24:30 -03:00
pedrocarlo
05034e1f9d
instead of incrementing interaction counter, just substitue the current state
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
0e702fbec2
check FaultyQuery depending tables when shrinking
2025-09-20 12:01:07 -03:00
pedrocarlo
021d5d272a
refactor shadowing code to take into account snapshot isolation
2025-09-20 12:01:07 -03:00
pedrocarlo
6b0011f477
in shriking remove unnecessary begin commit queries
2025-09-20 11:52:15 -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
c4843d6a6e
refactor SimulatorEnv to hold committed tables and separate connection tables for snapshot isolation
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
8b05dcba21
add 10 connections to base profiles
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
04154bf368
simplify code for doublecheck testing
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
35ddcb4270
adjust shrinking as we do not have a property pointer
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
3c91ae206b
move as many dependencies as possible to workspace to avoid multiple versions of the same dependency
2025-09-15 17:19:36 -03:00
Pekka Enberg
860627942a
Merge 'core: Rename IO::run_once() to IO::step()' from Pekka Enberg
...
The `run_once()` name is just a historical accident. Furthermore, it now
started to appear elsewhere as well, so let's just call it IO::step() as
we should have from the beginning.
Closes #3001
2025-09-10 15:11:28 +03:00
Pekka Enberg
e0a3d2741b
Merge 'simulator: Clean up code to use extract_if()' from Pavan Nambi
...
As we are in rust 1.88 rn, we can safely use extract_if
Reviewed-by: Pedro Muniz (@pedrocarlo)
Closes #2911
2025-09-10 14:59:42 +03:00
Pekka Enberg
2131a04b7d
core: Rename IO::run_once() to IO::step()
...
The `run_once()` name is just a historical accident. Furthermore, it now
started to appear elsewhere as well, so let's just call it IO::step() as we
should have from the beginning.
2025-09-10 14:36:02 +03:00