[ 
https://issues.apache.org/jira/browse/CASSANDRA-9160?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14577374#comment-14577374
 ] 

Joshua McKenzie commented on CASSANDRA-9160:
--------------------------------------------

Re: Paxos testing: I'm fine with this change. We need formal paxos / CAS 
testing in dtests as well to confirm the multi-node setup is working, but 
testing the CQL3CasRequest in isolation makes sense.
bq. A few dtests were exercising the QueryPager functionality of 
SelectStatement.execute(). This is not supported by executeInternal(). Should 
we add paging to executeInternal()?
This might speak to my ignorance on this area of the code, but is there a 
reason you can't use execute() instead of executeInternal() and trust the 
QueryPager to make the determination on whether the query is local or not? I 
believe that should work fine on single-node unit tests.
bq. We can either commit the tests with the @Ignore annotation or we can remove 
them from this patch and add them as a separate patch the the respective 
tickets.
I'd say append the tests to the respective tickets so we don't calcify their 
interfaces / usage patterns while they're still in progress and leave the 
responsibility on the developers to test their code.
bq. Overall I feel we may end up with a gap if we move the CQL tests entirely 
to unit tests, specifically the statement execute() methods and the code paths 
around these methods (e.g. StorageProxy). Perhaps we should extend CQLTester to 
execute over the network rather than only internally or leave some very basic 
CQL statements as dtests (one per statement for example).
I think the latter - the 1 dtest per CQL statement type nested under a 
test_storageproxy dtest (for example) would be clean and keep those concerns 
separated. I think network-based execution unnecessarily expands/blends the 
scope of CQLTester.
bq. The rearrangement of converted or existing CQL unit tests is not done yet. 
I parked most of the converted tests in a class called "TableTest" unless it 
was clear they belonged somewhere else. To rearrange properly I would need some 
guidance on a top level structure.
A naive initial look at the file indicates some clear lines of separation: 
select tests, create tests, delete tests, dense/compact tests, batch tests, 
indexes, and collections are the first ones that pop to me. I'd recommend 
organizing the tests in terms of the underlying CQL operations they're testing 
and then renaming TableTest to something to indicate the "overflow" nature of 
those tests.

I have more reading / reviewing to do on the tests but figured initial feedback 
could be helpful.

> Migrate CQL dtests to unit tests
> --------------------------------
>
>                 Key: CASSANDRA-9160
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-9160
>             Project: Cassandra
>          Issue Type: Test
>            Reporter: Sylvain Lebresne
>            Assignee: Stefania
>
> We have CQL tests in 2 places: dtests and unit tests. The unit tests are 
> actually somewhat better in the sense that they have the ability to test both 
> prepared and unprepared statements at the flip of a switch. It's also better 
> to have all those tests in the same place so we can improve the test 
> framework in only one place (CASSANDRA-7959, CASSANDRA-9159, etc...). So we 
> should move the CQL dtests to the unit tests (which will be a good occasion 
> to organize them better).



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to