This patch includes more tests (in Python) that I wrote while implementing the Alternator UpdateTable feature for adding a GSI to an existing table (https://github.com/scylladb/scylladb/issues/11567). I explain each of these tests in the separate patches below, but basically they fall into two types: 1. Tests which pass with today's materialized views and Alternator GSI/LSI, and serve to ensure that whatever changes I do to the view update implementation, doesn't break corner cases that already worked. 2. Tests for the UpdateTable feature in Alternator which doesn't work today so xfail - and will need to work for #11567. We already had a few tests for this, but here I add more and improve coverage of various corner cases I discovered while implementing the featue. I already have a working prototype for #11567 which passes all these tests. Many of these tests helped exposed various bugs in earlier versions of my code. Closes scylladb/scylladb#21927 * github.com:scylladb/scylladb: test/cqlpy: a few more functional tests for materialized views test/alternator: more tests for UpdateTable create and delete GSI test/alternator: make UpdateTable tests wait less test/alternator: move UpdateTable tests to a separate file test/alternator: add another test for elaborate GSI updates test/alternator: test that DescribeTable returns IndexStatus for GSI test/alternator: fix wrong test for UpdateTable metrics test/alternator: add test for missing attribute in item in LSI test/alternator: test that DescribeTable doesn't return IndexStatus for LSI test/alternator: add tests for RBAC for create and delete GSI
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.