Test fixtures

Files the embedded engine’s tests read. Paths in tests are relative to a crate directory under crates/sqlite/ (../fixtures/...).

File What it is Used by
cities.schema The Seattle communities schema: 30 idents (:community/*, :neighborhood/*, :district/*, :region/*), two fulltext attributes. EDN transaction. mentat/tests/pull.rs, mentat/src/store.rs tests, seattle.script
all_seattle.edn Data for cities.schema: about 2000 entity maps, with Datomic-style string tempids ("a17592186045438"). EDN transaction. the same
seattle.script A mentat_cli script: imports the two files above, runs fulltext, join, cache and ordered queries. Run it from crates/sqlite/: mentat_cli -d /tmp/s.db -f fixtures/seattle.script. cli/tests/batch.rs (test_seattle_script_fixture)
v1encrypted.db A store encrypted with SQLCipher, key key. db/src/db.rs test_sqlcipher_* (only with --features sqlcipher)
v1empty.db An empty store from 2018 (Mozilla Mentat, PRAGMA user_version = 1): bootstrap schema only. mentat/tests/scale_regressions.rs
v1toodle_empty.db The same, with the Toodle sample app’s schema (:label/*, :item/*) and no data. mentat/tests/scale_regressions.rs
old/ Older pre-release stores, kept for reference only (see old/README.md). nothing

Why the .db files are “version 1”

They are kept as they were written, on purpose: they are the inputs to the encryption tests and to the test that an old file is handled safely. Do not regenerate them with a current build, which would write a version-3 store and make those tests check nothing.

v1empty.db and v1toodle_empty.db predate the version 1 that the current code upgrades (upgrade in db/src/db.rs handles the 1.x layout, where transactions is a view over timelined_transactions and partitions live in known_parts). In these files transactions is a table and partitions are in parts. Opening one fails with no such table: main.timelined_transactions and leaves the file unchanged; test_prerelease_v1_fixtures_are_refused_untouched checks both. The upgrade from the real version 1 and 2 layouts is tested on stores the tests create and then downgrade (test_v1_store_is_upgraded_on_open, test_upgraded_store_gets_schema_indexes).

Their bootstrap idents are those of today except :db.schema/core, which came later. That is expected: they are not meant to be current.