From d6fcd18540dd4f49d41b73ed955e76646ff2e29d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20M=C4=99drek?= Date: Mon, 1 Sep 2025 21:50:42 +0200 Subject: [PATCH] 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 --- test/boost/schema_loader_test.cc | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/boost/schema_loader_test.cc b/test/boost/schema_loader_test.cc index b41245c34e..8f6e1e5526 100644 --- a/test/boost/schema_loader_test.cc +++ b/test/boost/schema_loader_test.cc @@ -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)").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 schemas, std::vector 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& 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();