pedrocarlo
5f24ff6e45
fix non determinism by using IndexSet for order preserving iteration
2025-09-05 02:00:18 -03:00
pedrocarlo
fd4e74929a
Cli option to enable memory IO
2025-09-01 14:12:11 -03:00
pedrocarlo
8c7da3a704
impl SimIO for SimulatorIO
2025-09-01 11:11:03 -03:00
pedrocarlo
61fa7546c1
fold some SimulatorOpts fields to Profile
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
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
pedrocarlo
6388ed2017
FaultyQuery enabled by default
2025-08-18 11:52:10 -03:00
PThorpe92
2810b5d8a2
Add --keep-files flag and force Drop of database in simulator to prevent issues with the Registry
2025-08-15 17:54:40 -04:00
pedrocarlo
0c9ecbc768
simulator should delete files after a successful run
2025-08-09 16:25:51 -03:00
Jussi Saurio
e604a80e93
fix/sim: actually enable indexes by default
2025-07-21 13:35:11 +03:00
Jussi Saurio
dce355d9b7
test/stress&sim: enable indexes by default
2025-07-21 11:49:30 +03:00
Jussi Saurio
687d126e25
sim: change --disable-create-index flag to --enable-create-index (default false)
2025-07-18 11:21:24 +03:00
pedrocarlo
b80218324d
fix merge conflicts
2025-07-17 12:25:31 -03:00
pedrocarlo
0ab2f2b951
cli options for max and min tick + adjust github action to run with faster clock so no timeouts happen
2025-07-17 12:25:31 -03:00
alpaylan
e28ad97ac7
cargo fmt and cargo clippy fixes
2025-07-11 03:35:32 -04:00
alpaylan
3a967f9127
remove rusqlite integrity check, sync generation with --experimental-indexes, move FaultyQuery to disabled by default
2025-07-11 03:35:02 -04:00
alpaylan
b98542d112
cargo fmt and cargo clippy fixes
2025-07-11 02:12:56 -04:00
alpaylan
65fe60ba57
fix the merge conflicts
2025-07-11 02:04:14 -04:00
alpaylan
8f46bbc77e
Merge branch 'main' of https://github.com/tursodatabase/limbo
2025-07-11 01:33:50 -04:00
alpaylan
489602b095
updates to the oracle implementations for differential and doublecheck, add integrity check to the end of the simulation, run cargo clippy --fix
2025-07-11 01:22:40 -04:00
alpaylan
44a2fa60a3
add union all cardinality preservation, start generating INSERT INTO t SELECT... queries, add integrity checks to the end of run_simulation
2025-07-09 00:14:13 -04:00
pedrocarlo
d21a629cd9
rollback simulator table when we encounter a Rollback query
2025-07-07 13:37:51 -03:00
Jussi Saurio
ec939eaaa9
sim: add feature flags (indexes,mvcc) to CLI args
2025-07-07 10:27:15 +03:00
alpaylan
2124cc41c0
enable indexes
2025-07-06 14:51:20 -04:00
alpaylan
0bce68b38d
wip: add joins to the select
2025-07-06 14:46:38 -04:00
pedrocarlo
4a32f83bd0
add cli option to disable faulty query
2025-06-29 15:56:03 -03:00
pedrocarlo
684a23020d
add cli options to disable fsync property
2025-06-29 12:40:53 -03:00
Pekka Enberg
53ba3ff926
Rename limbo_core crate to turso_core
2025-06-29 09:59:17 +03:00
pedrocarlo
e2aafacbb4
add cli option to adjust latency probability
2025-06-26 22:17:27 -03:00
Pekka Enberg
2fc5c0ce5c
Switch to runtime flag for enabling indexes
...
Makes it easier to test the feature:
```
$ cargo run -- --experimental-indexes
Limbo v0.0.22
Enter ".help" for usage hints.
Connected to a transient in-memory database.
Use ".open FILENAME" to reopen on a persistent database
limbo> CREATE TABLE t(x);
limbo> CREATE INDEX t_idx ON t(x);
limbo> DROP INDEX t_idx;
```
2025-06-26 10:07:28 +03:00
Jussi Saurio
9aae1ff00a
sim: add Fault::ReopenDatabase
...
Add fault type that reopens the DB and reconnects the connections.
It purposefully does not call conn.close(), as the default behavior
of that method is to checkpoint the database.
This easily exposes multiple manifestations of DB/WAL corruption caused by
this issue: https://github.com/tursodatabase/limbo/issues/1725
in fact, in my testing, every run fails when this fault is enabled. Hence I've
added the --disable-reopen-database flag if you want to try to find some other
bugs.
2025-06-24 14:41:50 -03:00
Pekka Enberg
90c1e3fc06
Switch Connection to use Arc instead of Rc
...
Connection needs to be Arc so that bindings can wrap it with `Mutex` for
multi-threading.
2025-06-16 10:43:19 +03:00
pedrocarlo
e19fa9f951
add additional cli options to disable other properties
2025-06-11 11:32:45 -03:00
pedrocarlo
9f601ccb18
add cli option to disable select optimizer
2025-06-11 11:32:45 -03:00
Jussi Saurio
e53ac59532
Fix assertion failing on 100 != 99.99999999999999999999
2025-06-04 09:28:26 +03:00
Jussi Saurio
5680326881
sim: add CREATE INDEX to interactions
2025-06-04 09:21:59 +03:00
pedrocarlo
1c424818aa
simulator options to disable certain query types
2025-06-03 22:21:40 -03:00
alpaylan
e13b5bc698
fix min/max-tests bug
2025-04-11 15:33:32 -04:00
alpaylan
d4707fe391
add non-zero exit code in case of failures, remove the interactive initalization option in bug base for now, fix bugs in differential mode, add detailed information regarding runs to the bug base
2025-04-11 11:23:03 -04:00
alpaylan
64c2917e81
add bug base, refactor
2025-04-08 17:48:16 -04:00
Pekka Enberg
96175cccf7
cli: Add --experimental-mvcc option to enable MVCC
2025-03-06 10:16:42 +02:00
alpaylan
c133bbdd29
add differential testing against rusqlite
2025-02-11 14:13:14 -05:00
Pekka Enberg
4c064790b2
Merge 'simulator: add DROP TABLE <t> support' from Alperen Keleş
...
I wanted to assist the current development in an up-to-date fashion,
this PR adds drop table(which is being implemented currently in
https://github.com/tursodatabase/limbo/pull/897 ) testing support to the
generator.
Unfortunately, we don't have feature flags in the simulator yet, so the
users should manually fix the generation probability in
`simulator/generation/plan.rs#L644` and
`simulator/generation/property.rs#L629`.
Closes #949
2025-02-11 17:44:49 +02:00
Aarni Koskela
eaea02c567
Fix a handful of typos
2025-02-09 18:08:29 +02:00
alpaylan
6f567bd2ef
fix formatting
2025-02-09 09:34:32 -05:00
alpaylan
47420db16f
- implement DROP TABLE support, toggled off from generation for now
...
- clean up the query generation/printing by separating it into different files and removing duplications
2025-02-09 09:28:33 -05:00
alpaylan
e476b9f697
implement watch mode
...
- add `--watch` flag
- start saving seeds in persistent storage
- make a separate version of execution functions that use `vector of interaction` instead of `InteractionPlan`
2025-01-18 23:54:03 +03:00
alpaylan
c30e2757b4
- implement '--load <PATH>' flag that loads an interaction plan and executes it instead of generating one from scratch
...
- save a json serialization of the generated plans to `<tempdir>/simulator.plan.json`
2025-01-17 22:04:55 +03:00