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

Berenguer Blasi commented on CASSANDRA-15583:
---------------------------------------------

Update: I expect CASSANDRA-15991 to go into review soon. After several days 
adding UTs just for the smaller tools and just sanity checking their input args 
on a happy path, I've come to realize this task is even bigger, fiddlier and 
brittler than you can imagine:
 * UT has been added for basic sanity checking params to not fail the tool. 
Some broken or missing options in docs have been found. I intend to fix those 
in an upcoming ticket.
 * Just adding proper UT for params (boundary, poisoned, random,... params) 
would entail _a lot_ of work as many tools work only on the happy path but 
crash otherwise. So there is a lot of hidden cost fixing the tools as you add 
new test cases. I.e. negative numbers for a 'size' and similar input 
validation/guardrails
 * If we got to have good params UT, then you'd have to focus on that tool 
specifics and UT it as most have 0% coverage atm. That again is a huge task 
bigger than the 2 before this one.
 * Then there are the big ones: nodetool, cassandra-stress, cqlsh... which 
again are on their own bigger than the 3 before this one.

Currently 15583 seeds and unblocks tooling testing. But providing good UT for 
all tools would imply a multi-month effort and I don't dislike anybody that 
much to whish him work on that after my recent experience lol.

Here is what I intend to do:
 # Fix the broken options and docs
 # Create tickets to UT each tool and flag them LHF if applicable imo
 # Create tickets for the bigger tools

With that we can scope tickets in/out at a doable pace + newcomers can help 
with the LHF ones. That leaves 15583 more as a seeding/unblocking & surface 
area discovery ticket for UT tooling than actually _solving_ it. So I don't 
know what was the original spirit of the ticket and if it makes sense to close 
it or not?

 

See CASSANDRA-15991 PR for details. I'll ping when it's ready for review so we 
can merge.

> 4.0 quality testing: Tooling, Bundled and First Party
> -----------------------------------------------------
>
>                 Key: CASSANDRA-15583
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15583
>             Project: Cassandra
>          Issue Type: Task
>          Components: Test/dtest, Test/unit
>            Reporter: Josh McKenzie
>            Assignee: Berenguer Blasi
>            Priority: Normal
>             Fix For: 4.0-beta
>
>
> Reference [doc from 
> NGCC|https://docs.google.com/document/d/1uhUOp7wpE9ZXNDgxoCZHejHt5SO4Qw1dArZqqsJccyQ/edit#]
>  for context.
> *Shepherd: Sam Tunnicliffe*
> Test plans should cover bundled first-party tooling and CLIs such as 
> nodetool, cqlsh, and new tools supporting full query and audit logging 
> (CASSANDRA-13983, CASSANDRA-12151).
> ||Tool||UX test||UT coverage||dtest coverage||Comments||
> |Nodetool|(x)|(x)|(!)|Deserves it's own ticket. Not all the sub commands are 
> tested. Dtest also test nodetool as a side effect|
> |Cqlsh|(x)|(x)|(!)|Deserves it's own ticket|
> |Cassandra-stress|(x)|(x)|(x)|Some UT. Deserves it's own ticket|
> |debug-cql|(x)|(x)|(x)|Deserves it's own ticket |
> |fqltool|(x)|(/)|(!)|Deserves it's own ticket |
> |auditlogviewer|(/)|(!)|(!)|UX tests: C-15991. Docs missing option -i|
> |*Sstable utilities*| | | | |
> |sstabledump|(/)|(x)|(!)|UX tests: C-15991|
> |sstableexpiredblockers|(/)|(x)|(!)|UX tests: C-15991|
> |sstablelevelreset|(/)|(x)|(!)|UX tests: C-15991|
> |sstableloader|(x)|(x)|(!)|Needs it's own ticket probably|
> |sstablemetadata|(/)|(x)|(x)|Ran in dtests, no dedicated test, UX tests: 
> C-15991, missing options in docs, brittle args parsing|
> |sstableofflinerelevel|(/)|(x)|(!)|UX tests: C-15991, brittle args parsing|
> |sstablerepairedset|(/)|(x)|(x)|Ran in dtests, no dedicated test, UX tests: 
> C-15991, brittle args parsing|
> |sstablescrub|(/)|(x)|(!)|UX tests: C-15991 but missing options in docs|
> |sstablesplit|(/)|(x)|(!)|UX tests: C-15991|
> |sstableupgrade|(/)|(x)|(!)|UX tests: C-15991|
> |sstableutil|(/)|(x)|(!)|UX tests: C-15991|
> |sstableverify|(/)|(x)|(!)|UX tests: C-15991 but missing options in docs + 
> broken token_range option|



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to