Files
scylladb/test/cql-pytest/cassandra_tests
Nadav Har'El f32c34d8ad cql-pytest: port Cassandra's unit test validation/entities/frozen_collections_test
In this patch, we port validation/entities/frozen_collections_test.java,
containing 33 tests for frozen collections of all types, including
nesting collections.

In porting these tests, I uncovered four previously unknown bugs in Scylla:

Refs #7852: Inserting a row with a null key column should be forbidden.
Refs #7868: Assertion failure (crash) when clustering key is a frozen
            collection and reverse order.
Refs #7888: Certain combination of filtering, index, and frozen collection,
            causes "marshalling error" failure.
Refs #7902: Failed SELECT with tuple of reversed-ordered frozen collections.

These tests also provide two more reproducers for an already known bug:

Refs #7745: Length of map keys and set items are incorrectly limited to
            64K in unprepared CQL.

Due to these bugs, 7 out of the 33 tests here currently xfail. We actually
had more failing tests, but we fixed issue #7868 before this patch went in,
so its tests are passing at the time of this submission.

As usual in these sort of tests, all 33 pass when running against Cassandra.

Signed-off-by: Nadav Har'El <nyh@scylladb.com>
Message-Id: <20210110231350.3843686-1-nyh@scylladb.com>
2021-01-11 08:48:08 +01:00
..

All tests in this directory and its subdirectories were translated from
Apache Cassandra's unit tests - the test/unit/org/apache/cassandra/cql3
directory in the Apache Cassandra source code repository.

The organization of this directory mirrors that of the Cassandra directory,
with test files renamed from SomeThingTest.java to some_thing_test.py.

Individual files were translated in their entirety, and each individual
file includes a comment on which version of the file was translated
(Cassandra's tests continue to evolve, so we may later want to catch up
with the differences).

Please avoid adding new tests, not translated from Cassandra, in this
directory. Instead, place new tests written from scratch for Scylla,
or improved tests, in the directory above.