1mod db;
29pub use db::*;
30
31mod read;
32pub use read::*;
33
34mod write;
35pub use write::*;
36
37mod table;
38pub use table::*;
39
40mod range;
41pub use range::*;
42
43#[cfg(test)]
44mod tests {
45 use crate::RocksdbDatabase;
46 use std::path::PathBuf;
47
48 fn create_temp_db() -> (RocksdbDatabase, PathBuf) {
49 let timestamp = std::time::SystemTime::now()
50 .duration_since(std::time::UNIX_EPOCH)
51 .unwrap()
52 .as_nanos();
53 let temp_dir = std::env::temp_dir().join(format!(
54 "crepedb-rocksdb-test-{}-{}",
55 std::process::id(),
56 timestamp
57 ));
58 let backend = RocksdbDatabase::open_or_create(&temp_dir).unwrap();
59 (backend, temp_dir)
60 }
61
62 #[test]
63 fn test_db_10() {
64 let _ = env_logger::builder().is_test(true).try_init();
65
66 let (backend, temp_dir) = create_temp_db();
67
68 let result = crepedb_core::tests::test_db_10(backend);
69
70 let _ = std::fs::remove_dir_all(temp_dir);
72
73 result.unwrap();
74 }
75
76 #[test]
77 fn test_read() {
78 let _ = env_logger::builder().is_test(true).try_init();
79
80 let (backend, temp_dir) = create_temp_db();
81
82 let result = crepedb_core::read_tests::test_read(backend);
83
84 let _ = std::fs::remove_dir_all(temp_dir);
86
87 result.unwrap();
88 }
89
90 #[test]
91 fn test_snapshot_isolation() {
92 let _ = env_logger::builder().is_test(true).try_init();
93
94 let (backend, temp_dir) = create_temp_db();
95
96 let result = crepedb_core::read_tests::test_snapshot_isolation(backend);
97
98 let _ = std::fs::remove_dir_all(temp_dir);
100
101 result.unwrap();
102 }
103
104 #[test]
105 fn test_multiple_keys() {
106 let _ = env_logger::builder().is_test(true).try_init();
107
108 let (backend, temp_dir) = create_temp_db();
109
110 let result = crepedb_core::read_tests::test_multiple_keys(backend);
111
112 let _ = std::fs::remove_dir_all(temp_dir);
114
115 result.unwrap();
116 }
117
118 #[test]
119 fn test_error_handling() {
120 let _ = env_logger::builder().is_test(true).try_init();
121
122 let (backend, temp_dir) = create_temp_db();
123
124 let result = crepedb_core::read_tests::test_error_handling(backend);
125
126 let _ = std::fs::remove_dir_all(temp_dir);
128
129 result.unwrap();
130 }
131
132 #[test]
133 fn test_multiple_tables() {
134 let _ = env_logger::builder().is_test(true).try_init();
135
136 let (backend, temp_dir) = create_temp_db();
137
138 let result = crepedb_core::read_tests::test_multiple_tables(backend);
139
140 let _ = std::fs::remove_dir_all(temp_dir);
142
143 result.unwrap();
144 }
145
146 #[test]
147 fn test_basic_table_type() {
148 let _ = env_logger::builder().is_test(true).try_init();
149
150 let (backend, temp_dir) = create_temp_db();
151
152 let result = crepedb_core::read_tests::test_basic_table_type(backend);
153
154 let _ = std::fs::remove_dir_all(temp_dir);
156
157 result.unwrap();
158 }
159
160 #[test]
161 fn test_edge_cases() {
162 let _ = env_logger::builder().is_test(true).try_init();
163
164 let (backend, temp_dir) = create_temp_db();
165
166 let result = crepedb_core::read_tests::test_edge_cases(backend);
167
168 let _ = std::fs::remove_dir_all(temp_dir);
170
171 result.unwrap();
172 }
173
174 #[test]
175 fn test_version_chain() {
176 let _ = env_logger::builder().is_test(true).try_init();
177
178 let (backend, temp_dir) = create_temp_db();
179
180 let result = crepedb_core::read_tests::test_version_chain(backend);
181
182 let _ = std::fs::remove_dir_all(temp_dir);
184
185 result.unwrap();
186 }
187
188 #[test]
189 fn test_delete_operations() {
190 let _ = env_logger::builder().is_test(true).try_init();
191
192 let (backend, temp_dir) = create_temp_db();
193
194 let result = crepedb_core::read_tests::test_delete_operations(backend);
195
196 let _ = std::fs::remove_dir_all(temp_dir);
198
199 result.unwrap();
200 }
201
202 #[test]
203 fn test_root_snapshot() {
204 let _ = env_logger::builder().is_test(true).try_init();
205
206 let (backend, temp_dir) = create_temp_db();
207
208 let result = crepedb_core::read_tests::test_root_snapshot(backend);
209
210 let _ = std::fs::remove_dir_all(temp_dir);
212
213 result.unwrap();
214 }
215
216 #[test]
217 fn test_transaction_lifecycle() {
218 let _ = env_logger::builder().is_test(true).try_init();
219
220 let (backend, temp_dir) = create_temp_db();
221
222 let result = crepedb_core::read_tests::test_transaction_lifecycle(backend);
223
224 let _ = std::fs::remove_dir_all(temp_dir);
226
227 result.unwrap();
228 }
229
230 #[test]
231 fn test_mixed_operations() {
232 let _ = env_logger::builder().is_test(true).try_init();
233
234 let (backend, temp_dir) = create_temp_db();
235
236 let result = crepedb_core::read_tests::test_mixed_operations(backend);
237
238 let _ = std::fs::remove_dir_all(temp_dir);
240
241 result.unwrap();
242 }
243
244 #[test]
245 fn test_parent_child_visibility() {
246 let _ = env_logger::builder().is_test(true).try_init();
247
248 let (backend, temp_dir) = create_temp_db();
249
250 let result = crepedb_core::read_tests::test_parent_child_visibility(backend);
251
252 let _ = std::fs::remove_dir_all(temp_dir);
254
255 result.unwrap();
256 }
257
258 #[test]
259 fn test_complex_branching() {
260 let _ = env_logger::builder().is_test(true).try_init();
261
262 let (backend, temp_dir) = create_temp_db();
263
264 let result = crepedb_core::read_tests::test_complex_branching(backend);
265
266 let _ = std::fs::remove_dir_all(temp_dir);
268
269 result.unwrap();
270 }
271}