mirror of
https://github.com/aljazceru/turso.git
synced 2025-12-18 17:14:20 +01:00
Include test
This commit is contained in:
@@ -126,3 +126,60 @@ fn test_per_page_encryption() -> anyhow::Result<()> {
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn test_non_4k_page_size_encryption() -> anyhow::Result<()> {
|
||||
let _ = env_logger::try_init();
|
||||
let db_name = format!("test-8k-{}.db", rng().next_u32());
|
||||
let tmp_db = TempDatabase::new(&db_name, false);
|
||||
let db_path = tmp_db.path.clone();
|
||||
|
||||
{
|
||||
let conn = tmp_db.connect_limbo();
|
||||
// Set page size to 8k (8192 bytes) and test encryption. Default page size is 4k.
|
||||
run_query(&tmp_db, &conn, "PRAGMA page_size = 8192;")?;
|
||||
run_query(
|
||||
&tmp_db,
|
||||
&conn,
|
||||
"PRAGMA hexkey = 'b1bbfda4f589dc9daaf004fe21111e00dc00c98237102f5c7002a5669fc76327';",
|
||||
)?;
|
||||
run_query(&tmp_db, &conn, "PRAGMA cipher = 'aegis256';")?;
|
||||
run_query(
|
||||
&tmp_db,
|
||||
&conn,
|
||||
"CREATE TABLE test (id INTEGER PRIMARY KEY, value TEXT);",
|
||||
)?;
|
||||
run_query(
|
||||
&tmp_db,
|
||||
&conn,
|
||||
"INSERT INTO test (value) VALUES ('Hello, World!')",
|
||||
)?;
|
||||
let mut row_count = 0;
|
||||
run_query_on_row(&tmp_db, &conn, "SELECT * FROM test", |row: &Row| {
|
||||
assert_eq!(row.get::<i64>(0).unwrap(), 1);
|
||||
assert_eq!(row.get::<String>(1).unwrap(), "Hello, World!");
|
||||
row_count += 1;
|
||||
})?;
|
||||
|
||||
assert_eq!(row_count, 1);
|
||||
do_flush(&conn, &tmp_db)?;
|
||||
}
|
||||
|
||||
{
|
||||
// Reopen the existing db with 8k page size and test encryption
|
||||
let existing_db = TempDatabase::new_with_existent(&db_path, false);
|
||||
let conn = existing_db.connect_limbo();
|
||||
run_query(&tmp_db, &conn, "PRAGMA cipher = 'aegis256';")?;
|
||||
run_query(
|
||||
&existing_db,
|
||||
&conn,
|
||||
"PRAGMA hexkey = 'b1bbfda4f589dc9daaf004fe21111e00dc00c98237102f5c7002a5669fc76327';",
|
||||
)?;
|
||||
run_query_on_row(&existing_db, &conn, "SELECT * FROM test", |row: &Row| {
|
||||
assert_eq!(row.get::<i64>(0).unwrap(), 1);
|
||||
assert_eq!(row.get::<String>(1).unwrap(), "Hello, World!");
|
||||
})?;
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user