test/boost/schema_loader_test.cc: Explicitly enable rf_rack_valid_keyspaces

The test cases in the file aren't run via an existing interface like
`do_with_cql_env`, but they rely on a more direct approach -- calling
one of the schema loader tools. Because of that, they manage the
`db::config` object on their own and don't enable the configuration
option `rf_rack_valid_keyspaces`.

That hasn't been a problem so far since the test doesn't attempt to
create RF-rack-invalid keyspaces anyway. However, in an upcoming commit,
we're going to further restrict views with tablets and require that the
option is enabled.

To prepare for that, we enable the option in all test cases. It's only
necessary in a small subset of them, but it won't hurt the enforce it
everywhere, so let's do that.

Refs scylladb/scylladb#23958
This commit is contained in:
Dawid Mędrek
2025-09-01 21:50:42 +02:00
parent a1254fb6f3
commit d6fcd18540

View File

@@ -25,17 +25,23 @@
SEASTAR_THREAD_TEST_CASE(test_empty) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_THROW(tools::load_schemas(dbcfg, "").get(), std::exception);
BOOST_REQUIRE_THROW(tools::load_schemas(dbcfg, ";").get(), std::exception);
}
SEASTAR_THREAD_TEST_CASE(test_keyspace_only) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1};").get().size(), 0);
}
SEASTAR_THREAD_TEST_CASE(test_single_table) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE TABLE ks.cf (pk int PRIMARY KEY, v int)").get().size(), 1);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE TABLE ks.cf (pk int PRIMARY KEY, v map<int, int>)").get().size(), 1);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1}; CREATE TABLE ks.cf (pk int PRIMARY KEY, v int);").get().size(), 1);
@@ -43,6 +49,8 @@ SEASTAR_THREAD_TEST_CASE(test_single_table) {
SEASTAR_THREAD_TEST_CASE(test_keyspace_replication_strategy) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1}; CREATE TABLE ks.cf (pk int PRIMARY KEY, v int);").get().size(), 1);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 3}; CREATE TABLE ks.cf (pk int PRIMARY KEY, v int);").get().size(), 1);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'mydc1': 1, 'mydc2': 4}; CREATE TABLE ks.cf (pk int PRIMARY KEY, v int);").get().size(), 1);
@@ -50,6 +58,8 @@ SEASTAR_THREAD_TEST_CASE(test_keyspace_replication_strategy) {
SEASTAR_THREAD_TEST_CASE(test_multiple_tables) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE TABLE ks.cf1 (pk int PRIMARY KEY, v int); CREATE TABLE ks.cf2 (pk int PRIMARY KEY, v int)").get().size(), 2);
BOOST_REQUIRE_EQUAL(tools::load_schemas(dbcfg, "CREATE TABLE ks.cf1 (pk int PRIMARY KEY, v int); CREATE TABLE ks.cf2 (pk int PRIMARY KEY, v int);").get().size(), 2);
BOOST_REQUIRE_EQUAL(tools::load_schemas(
@@ -70,6 +80,8 @@ SEASTAR_THREAD_TEST_CASE(test_multiple_tables) {
SEASTAR_THREAD_TEST_CASE(test_udts) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_EQUAL(tools::load_schemas(
dbcfg,
"CREATE KEYSPACE ks WITH replication = {'class': 'NetworkTopologyStrategy', 'replication_factor': 1}; "
@@ -107,6 +119,8 @@ SEASTAR_THREAD_TEST_CASE(test_udts) {
SEASTAR_THREAD_TEST_CASE(test_dropped_columns) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
BOOST_REQUIRE_EQUAL(tools::load_schemas(
dbcfg,
"CREATE TABLE ks.cf (pk int PRIMARY KEY, v1 int); "
@@ -177,6 +191,7 @@ void check_views(std::vector<schema_ptr> schemas, std::vector<view_type> views_t
SEASTAR_THREAD_TEST_CASE(test_materialized_view) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
check_views(
tools::load_schemas(
@@ -219,6 +234,7 @@ SEASTAR_THREAD_TEST_CASE(test_materialized_view) {
SEASTAR_THREAD_TEST_CASE(test_index) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
check_views(
tools::load_schemas(
@@ -269,6 +285,7 @@ SEASTAR_THREAD_TEST_CASE(test_index) {
SEASTAR_THREAD_TEST_CASE(test_mv_index) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
check_views(
tools::load_schemas(
@@ -308,6 +325,7 @@ void check_schema_columns(const schema& a, const schema& b, bool check_key_colum
void check_sstable_schema(sstables::test_env& env, std::filesystem::path sst_path, const utils::chunked_vector<mutation>& mutations, bool has_scylla_metadata) {
db::config dbcfg;
dbcfg.rf_rack_valid_keyspaces(true);
auto schema = tools::load_schema_from_sstable(dbcfg, sst_path).get();