mirror of
https://github.com/neondatabase/neon.git
synced 2026-01-14 17:02:56 +00:00
71 lines
3.0 KiB
Rust
71 lines
3.0 KiB
Rust
#[cfg(test)]
|
|
mod pg_helpers_tests {
|
|
|
|
use std::fs::File;
|
|
|
|
use compute_tools::pg_helpers::*;
|
|
use compute_tools::spec::ComputeSpec;
|
|
|
|
#[test]
|
|
fn params_serialize() {
|
|
let file = File::open("tests/cluster_spec.json").unwrap();
|
|
let spec: ComputeSpec = serde_json::from_reader(file).unwrap();
|
|
|
|
assert_eq!(
|
|
spec.cluster.databases.first().unwrap().to_pg_options(),
|
|
"LC_COLLATE 'C' LC_CTYPE 'C' TEMPLATE template0 OWNER \"alexk\""
|
|
);
|
|
assert_eq!(
|
|
spec.cluster.roles.first().unwrap().to_pg_options(),
|
|
"LOGIN PASSWORD 'md56b1d16b78004bbd51fa06af9eda75972'"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn settings_serialize() {
|
|
let file = File::open("tests/cluster_spec.json").unwrap();
|
|
let spec: ComputeSpec = serde_json::from_reader(file).unwrap();
|
|
|
|
assert_eq!(
|
|
spec.cluster.settings.as_pg_settings(),
|
|
"fsync = off\nwal_level = replica\nhot_standby = on\nneon.safekeepers = '127.0.0.1:6502,127.0.0.1:6503,127.0.0.1:6501'\nwal_log_hints = on\nlog_connections = on\nshared_buffers = 32768\nport = 55432\nmax_connections = 100\nmax_wal_senders = 10\nlisten_addresses = '0.0.0.0'\nwal_sender_timeout = 0\npassword_encryption = md5\nmaintenance_work_mem = 65536\nmax_parallel_workers = 8\nmax_worker_processes = 8\nneon.tenant_id = 'b0554b632bd4d547a63b86c3630317e8'\nmax_replication_slots = 10\nneon.timeline_id = '2414a61ffc94e428f14b5758fe308e13'\nshared_preload_libraries = 'neon'\nsynchronous_standby_names = 'walproposer'\nneon.pageserver_connstring = 'host=127.0.0.1 port=6400'"
|
|
);
|
|
}
|
|
|
|
#[test]
|
|
fn ident_pg_quote() {
|
|
let ident: PgIdent = PgIdent::from("\"name\";\\n select 1;");
|
|
|
|
assert_eq!(ident.pg_quote(), "\"\"\"name\"\";\\n select 1;\"");
|
|
}
|
|
|
|
#[test]
|
|
fn generic_options_search() {
|
|
let generic_options: GenericOptions = Some(vec![
|
|
GenericOption {
|
|
name: "present_value".into(),
|
|
value: Some("value".into()),
|
|
vartype: "string".into(),
|
|
},
|
|
GenericOption {
|
|
name: "missed_value".into(),
|
|
value: None,
|
|
vartype: "int".into(),
|
|
},
|
|
]);
|
|
assert_eq!(generic_options.find("present_value"), Some("value".into()));
|
|
assert_eq!(generic_options.find("missed_value"), None);
|
|
assert_eq!(generic_options.find("invalid_value"), None);
|
|
|
|
let empty_generic_options: GenericOptions = Some(vec![]);
|
|
assert_eq!(empty_generic_options.find("present_value"), None);
|
|
assert_eq!(empty_generic_options.find("missed_value"), None);
|
|
assert_eq!(empty_generic_options.find("invalid_value"), None);
|
|
|
|
let none_generic_options: GenericOptions = None;
|
|
assert_eq!(none_generic_options.find("present_value"), None);
|
|
assert_eq!(none_generic_options.find("missed_value"), None);
|
|
assert_eq!(none_generic_options.find("invalid_value"), None);
|
|
}
|
|
}
|