This PR improves and refactors the test.topology.util new_test_keyspace generator and adds a corresponding create_new_test_keyspace function to be used by most if not all topology unit tests in order to standardize the way the tests create keyspaces and to mitigate the python driver create keyspace retry issue: https://github.com/scylladb/python-driver/issues/317 Fixes #22342 Fixes #21905 Refs https://github.com/scylladb/scylla-enterprise/issues/5060 Fixes #23699 - (cherry picked from commit50ce0aaf1c) - (cherry picked from commit5d448f721e) - (cherry picked from commitf946302369) - (cherry picked from commit0fd1b846fe) - (cherry picked from commita66ddb7c04) - (cherry picked from commitdf84097a4b) - (cherry picked from commit59687c25e0) - (cherry picked from commitfdb339bf28) - (cherry picked from commit205ed113dd) - (cherry picked from commit57faab9ffa) - (cherry picked from commit4fefffe335) - (cherry picked from commit480a5837ab) - (cherry picked from commitfed078a38a) - (cherry picked from commitc6653e65ba) - (cherry picked from commit9c095b622b) - (cherry picked from commit0668c642a2) - (cherry picked from commit0e11aad9c5) - (cherry picked from commitef85c4b27e) - (cherry picked from commitb13e48b648) - (cherry picked from commita82e734110) - (cherry picked from commit629ee3cb46) - (cherry picked from commit42a104038d) - (cherry picked from commitd5e3c578f5) - (cherry picked from commitc05794c156) - (cherry picked from commit966cf82dae) - (cherry picked from commit11005b10db) - (cherry picked from commitff9c8428df) - (cherry picked from commit55b35eb21c) - (cherry picked from commit5759a97eb4) - (cherry picked from commitc68d2a471c) - (cherry picked from commite05372afa4) - (cherry picked from commit380c5e5ac8) - (cherry picked from commit3f35491264) - (cherry picked from commite72a9d3faa) - (cherry picked from commit47326d01b7) - (cherry picked from commit72bc4016e7) - (cherry picked from commit4fd6c2d24e) - (cherry picked from commit50a8f5c1c0) - (cherry picked from commit005ceb77d3) - (cherry picked from commit649e68c6db) - (cherry picked from commit0b88ea9798) - (cherry picked from commit6b37d04aa9) - (cherry picked from commite59aca66bf) - (cherry picked from commit5ff3153912) - (cherry picked from commit20f7eda16e) - (cherry picked from commitf30e4c6917) - (cherry picked from commit96d327fb83) - (cherry picked from commit16ef78075c) - (cherry picked from commit2d4af01281) - (cherry picked from commitb810791fbb) - (cherry picked from commit46b1850f0c) - (cherry picked from commit0564e95c51) - (cherry picked from commit12f85ce57c) - (cherry picked from commit9829b1594f) - (cherry picked from commitcbe79b20f7) - (cherry picked from commitcc281ff88d) Parent PR: #22399 Closes scylladb/scylladb#23408 * github.com:scylladb/scylladb: test_tablet_repair_scheduler: prepare_multi_dc_repair: use create_new_test_keyspace test/repair: create_table_insert_data_for_repair: create keyspace with unique name topology_tasks/test_tablet_tasks: use new_test_keyspace topology_tasks/test_node_ops_tasks: use new_test_keyspace topology_custom/test_zero_token_nodes_no_replication: use create_new_test_keyspace topology_custom/test_zero_token_nodes_multidc: use create_new_test_keyspace topology_custom/test_view_build_status: use new_test_keyspace topology_custom/test_truncate_with_tablets: use new_test_keyspace topology_custom/test_topology_failure_recovery: use new_test_keyspace topology_custom/test_tablets_removenode: use create_new_test_keyspace topology_custom/test_tablets_migration: use new_test_keyspace topology_custom/test_tablets_merge: use new_test_keyspace topology_custom/test_tablets_intranode: use new_test_keyspace topology_custom/test_tablets_cql: use new_test_keyspace topology_custom/test_tablets2: use *new_test_keyspace topology_custom/test_tablets2: test_schema_change_during_cleanup: drop unused check function test/cluster/test_tablets.py: Fix test errorneous indentation topology_custom/test_tablets: use new_test_keyspace topology_custom/test_table_desc_read_barrier: use new_test_keyspace topology_custom/test_shutdown_hang: use new_test_keyspace topology_custom/test_select_from_mutation_fragments: use new_test_keyspace topology_custom/test_rpc_compression: use new_test_keyspace topology_custom/test_reversed_queries_during_simulated_upgrade_process: use new_test_keyspace topology_custom/test_raft_snapshot_truncation: use create_new_test_keyspace topology_custom/test_raft_no_quorum: use new_test_keyspace topology_custom/test_raft_fix_broken_snapshot: use new_test_keyspace topology_custom/test_query_rebounce: use new_test_keyspace topology_custom/test_not_enough_token_owners: use new_test_keyspace topology_custom/test_node_shutdown_waits_for_pending_requests: use new_test_keyspace topology_custom/test_node_isolation: use create_new_test_keyspace topology_custom/test_mv_topology_change: use new_test_keyspace topology_custom/test_mv_tablets_replace: use new_test_keyspace topology_custom/test_mv_tablets_empty_ip: use new_test_keyspace topology_custom/test_mv_tablets: use new_test_keyspace topology_custom/test_mv_read_concurrency: use new_test_keyspace topology_custom/test_mv_fail_building: use new_test_keyspace topology_custom/test_mv_delete_partitions: use new_test_keyspace topology_custom/test_mv_building: use new_test_keyspace topology_custom/test_mv_backlog: use new_test_keyspace topology_custom/test_mv_admission_control: use new_test_keyspace topology_custom/test_major_compaction: use new_test_keyspace topology_custom/test_maintenance_mode: use new_test_keyspace topology_custom/test_lwt_semaphore: use new_test_keyspace topology_custom/test_ip_mappings: use new_test_keyspace topology_custom/test_hints: use new_test_keyspace topology_custom/test_group0_schema_versioning: use new_test_keyspace topology_custom/test_data_resurrection_after_cleanup: use new_test_keyspace topology_custom/test_read_repair_with_conflicting_hash_keys: use new_test_keyspace topology_custom/test_read_repair: use new_test_keyspace topology_custom/test_compacting_reader_tombstone_gc_with_data_in_memtable: use new_test_keyspace topology_custom/test_commitlog_segment_data_resurrection: use new_test_keyspace topology_custom/test_change_replication_factor_1_to_0: use new_test_keyspace topology/test_tls: test_upgrade_to_ssl: use new_test_keyspace test/topology/util: new_test_keyspace: drop keyspace only on success test/topology/util: refactor new_test_keyspace test/topology/util: CREATE KEYSPACE IF NOT EXISTS test/topology/util: new_test_keyspace: accept ManagerClient
Scylla in-source tests.
For details on how to run the tests, see docs/dev/testing.md
Shared C++ utils, libraries are in lib/, for Python - pylib/
alternator - Python tests which connect to a single server and use the DynamoDB API unit, boost, raft - unit tests in C++ cqlpy - Python tests which connect to a single server and use CQL topology* - tests that set up clusters and add/remove nodes cql - approval tests that use CQL and pre-recorded output rest_api - tests for Scylla REST API Port 9000 scylla-gdb - tests for scylla-gdb.py helper script nodetool - tests for C++ implementation of nodetool
If you can use an existing folder, consider adding your test to it. New folders should be used for new large categories/subsystems, or when the test environment is significantly different from some existing suite, e.g. you plan to start scylladb with different configuration, and you intend to add many tests and would like them to reuse an existing Scylla cluster (clusters can be reused for tests within the same folder).
To add a new folder, create a new directory, and then
copy & edit its suite.ini.