Skip to content

Commit 6b33262

Browse files
committed
tests: additional unit test cases for lbp config
Added test cases for rack-awareness, and extended dc-awareness tests by empty and nullptr parameters checks.
1 parent b647d48 commit 6b33262

File tree

1 file changed

+62
-0
lines changed

1 file changed

+62
-0
lines changed

scylla-rust-wrapper/src/cluster.rs

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -886,11 +886,13 @@ mod tests {
886886
let cluster = ptr_to_ref(cluster_raw);
887887
{
888888
assert_matches!(cluster.load_balancing_config.dc_awareness, None);
889+
assert_matches!(cluster.load_balancing_config.rack_awareness, None);
889890
assert!(cluster.load_balancing_config.token_awareness_enabled);
890891
assert!(!cluster.load_balancing_config.latency_awareness_enabled);
891892
}
892893
{
893894
cass_cluster_set_token_aware_routing(cluster_raw, 0);
895+
// Just for the test purposes we enable both dc and rack+dc awareness.
894896
assert_cass_error_eq!(
895897
cass_cluster_set_load_balance_dc_aware(
896898
cluster_raw,
@@ -900,6 +902,14 @@ mod tests {
900902
),
901903
CassError::CASS_OK
902904
);
905+
assert_cass_error_eq!(
906+
cass_cluster_set_load_balance_rack_aware(
907+
cluster_raw,
908+
"eu-east\0".as_ptr() as *const i8,
909+
"rack1\0".as_ptr() as *const i8,
910+
),
911+
CassError::CASS_OK
912+
);
903913
cass_cluster_set_latency_aware_routing(cluster_raw, 1);
904914
// These values cannot currently be tested to be set properly in the latency awareness builder,
905915
// but at least we test that the function completed successfully.
@@ -914,6 +924,13 @@ mod tests {
914924

915925
let dc_awareness = cluster.load_balancing_config.dc_awareness.as_ref().unwrap();
916926
assert_eq!(dc_awareness.local_dc, "eu");
927+
let rack_awareness = cluster
928+
.load_balancing_config
929+
.rack_awareness
930+
.as_ref()
931+
.unwrap();
932+
assert_eq!(rack_awareness.local_dc, "eu-east");
933+
assert_eq!(rack_awareness.local_rack, "rack1");
917934
assert!(!cluster.load_balancing_config.token_awareness_enabled);
918935
assert!(cluster.load_balancing_config.latency_awareness_enabled);
919936
}
@@ -938,6 +955,51 @@ mod tests {
938955
),
939956
CassError::CASS_ERROR_LIB_BAD_PARAMS
940957
);
958+
959+
// null pointers
960+
assert_cass_error_eq!(
961+
cass_cluster_set_load_balance_dc_aware(cluster_raw, std::ptr::null(), 0, 0),
962+
CassError::CASS_ERROR_LIB_BAD_PARAMS
963+
);
964+
assert_cass_error_eq!(
965+
cass_cluster_set_load_balance_rack_aware(
966+
cluster_raw,
967+
"eu\0".as_ptr() as *const i8,
968+
std::ptr::null(),
969+
),
970+
CassError::CASS_ERROR_LIB_BAD_PARAMS
971+
);
972+
assert_cass_error_eq!(
973+
cass_cluster_set_load_balance_rack_aware(
974+
cluster_raw,
975+
std::ptr::null(),
976+
"rack\0".as_ptr() as *const i8,
977+
),
978+
CassError::CASS_ERROR_LIB_BAD_PARAMS
979+
);
980+
981+
// empty strings
982+
let empty_str = "\0".as_ptr() as *const i8;
983+
assert_cass_error_eq!(
984+
cass_cluster_set_load_balance_dc_aware(cluster_raw, std::ptr::null(), 0, 0),
985+
CassError::CASS_ERROR_LIB_BAD_PARAMS
986+
);
987+
assert_cass_error_eq!(
988+
cass_cluster_set_load_balance_rack_aware(
989+
cluster_raw,
990+
"eu\0".as_ptr() as *const i8,
991+
empty_str,
992+
),
993+
CassError::CASS_ERROR_LIB_BAD_PARAMS
994+
);
995+
assert_cass_error_eq!(
996+
cass_cluster_set_load_balance_rack_aware(
997+
cluster_raw,
998+
empty_str,
999+
"rack\0".as_ptr() as *const i8,
1000+
),
1001+
CassError::CASS_ERROR_LIB_BAD_PARAMS
1002+
);
9411003
}
9421004
}
9431005

0 commit comments

Comments
 (0)