Whatever we decide on, let's make sure we document it so newcomers on the 
project (or really anyone new to property based testing) can better discover 
those things.

https://cassandra.apache.org/_/development/testing.html

On Tue, Dec 13, 2022, at 1:08 PM, David Capwell wrote:
> Speaking to Caleb in Slack, so putting the main comments I have there here…
> 
> I am not -1 on this new dependency, but more asking what we should use for 
> random testing moving forward…. ATM we have the following:
> 
> 1) QuickTheories - I feel like I am the only user at this point…
> 2) 1-off - many reinvent random testing for a specific class; using Random, 
> ThreadLocalRandom, UUID.randomUUID(), and lang3 classes (such as 
> org.apache.commons.lang3.RandomUtils)
> 3) Harry - even though the main API is for cluster testing, this is built 
> on-top of random generation so could be used for low level random testing 
> (just less fleshed out for this use-case)
> 4) Simulator - same as Harry, built on top of a random generator and not 
> fleshed out for low level random testing
> 
> Another reason I ask this is I have a fuzz testing that I have developed for 
> Accord testing that generates random valid CQL statements to make sure we “do 
> the right thing” and have been struggling with the question “where do I put 
> this” and “what random do I use?”.  I built this off QuickTheories as I have 
> a lot of utilities for building all supported Tables and Types so really 
> quick do bootstrap, and every other random testing thing we have are less 
> fleshed out… so if we add yet another random testing library what “should” we 
> be using?  Do we build on-top of it to get to the same level QuickTheory is 
> (see org.apache.cassandra.utils.Generators, 
> org.apache.cassandra.utils.CassandraGenerators, and 
> org.apache.cassandra.utils.AbstractTypeGenerators)?
> 
>> On Dec 13, 2022, at 9:21 AM, Caleb Rackliffe <calebrackli...@gmail.com> 
>> wrote:
>> 
>> We need random generators no matter what for these tests, so I think what we 
>> need to decide is whether to continue to use Carrot or migrate those to 
>> QuickTheories, along the lines of what we have now in 
>> org.apache.cassandra.utils.Generators.
>> 
>> When it comes to a library like this, the thing I would optimize for is how 
>> much it already provides (and therefore how much we need to write and 
>> maintain ourselves). If you look at something like NumericTypeSortingTest in 
>> the 18058 branch <https://github.com/maedhroz/cassandra/pull/6>, it's pretty 
>> compact w/ Carrot's RandomizedTest in use, but I suppose it could also use 
>> IntegersDSL from QT...
>> 
>> (Not that it matters, but just for reference, we do use 
>> com.carrotsearch.hppc already.)
>> 
>> On Tue, Dec 13, 2022 at 10:14 AM Mike Adamson <madam...@datastax.com> wrote:
>>>> Can you talk more about why?  There are several ways to do random testing 
>>>> in-tree ATM, so wondering why we need another one
>>> 
>>> I can see one mechanism for random testing in-tree. That is the Simulator 
>>> but that seems primarily involved in the random orchestration of 
>>> operations. My apologies if I have simplified its significance. Apart from 
>>> that, I can only see different usages of Random in unit tests. I admit I 
>>> have not looked beyond this at dtests.
>>> 
>>> The random testing in SAI is more focussed on the behaviour of the 
>>> low-level index structures and flow of data to / from these. Using randomly 
>>> generated values in tests has proved invaluable in highlighting edge 
>>> conditions in the code. This above library was only added to provide us 
>>> with a rich set of random generators. I am happy to look at removing this 
>>> library if its inclusion is contentious.
>>> 
>>> 
>>> On Mon, 12 Dec 2022 at 19:41, David Capwell <dcapw...@apple.com> wrote:
>>>>> com.carrotsearch.randomizedtesting.randomizedtesting-runner 2.1.2 - test 
>>>>> dependency
>>>> 
>>>> Can you talk more about why?  There are several ways to do random testing 
>>>> in-tree ATM, so wondering why we need another one
>>>> 
>>>> 
>>>>> On Dec 8, 2022, at 6:51 AM, Mike Adamson <madam...@datastax.com> wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> I wanted to discuss the addition of the following dependencies for CEP-7. 
>>>>> The dependencies are:
>>>>> 
>>>>> org.apache.lucene.lucene-core 7.5.0
>>>>> org.apache.lucene.lucene-analyzers-common 7.5.0
>>>>> com.carrotsearch.randomizedtesting.randomizedtesting-runner 2.1.2 - test 
>>>>> dependency
>>>>> 
>>>>> Lucene is an apache project so is licensed APL2. Carrotsearch is not an 
>>>>> apache project but is licensed APL2
>>>>> 
>>>>> We are also removing the dependency on 
>>>>> com.github.rholder.snowball-stemmer. This library is used by SASI 
>>>>> stemming filters but a later version of the same library is available in 
>>>>> the lucene libraries.
>>>>> 
>>>>> Does anyone have any concerns about these changes?
>>>>> 
>>>>> Mike Adamson
>>>>> 
>>>> 
>>> 
>>> 
>>> -- 
>>> DataStax Logo Square <https://www.datastax.com/>
>>> *Mike Adamson*
>>> Engineering
>>> +1 650 389 6000 <tel:16503896000> | datastax.com <https://www.datastax.com/>
>>> Find DataStax Online:
>>> LinkedIn Logo 
>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.linkedin.com_company_datastax&d=DwMFaQ&c=adz96Xi0w1RHqtPMowiL2g&r=IFj3MdIKYLLXIUhYdUGB0cTzTlxyCb7_VUmICBaYilU&m=uHzE4WhPViSF0rsjSxKhfwGDU1Bo7USObSc_aIcgelo&s=akx0E6l2bnTjOvA-YxtonbW0M4b6bNg4nRwmcHNDo4Q&e=>
>>>    Facebook Logo 
>>> <https://urldefense.proofpoint.com/v2/url?u=https-3A__www.facebook.com_datastax&d=DwMFaQ&c=adz96Xi0w1RHqtPMowiL2g&r=IFj3MdIKYLLXIUhYdUGB0cTzTlxyCb7_VUmICBaYilU&m=uHzE4WhPViSF0rsjSxKhfwGDU1Bo7USObSc_aIcgelo&s=ncMlB41-6hHuqx-EhnM83-KVtjMegQ9c2l2zDzHAxiU&e=>
>>>    Twitter Logo <https://twitter.com/DataStax>   RSS Feed 
>>> <https://www.datastax.com/blog/rss.xml>   Github Logo 
>>> <https://github.com/datastax>

Reply via email to