Thanks Josh for your insights. That distinction between unit tests and
dtests—especially in relation to intra-node vs. multi-node behavior—really
helps clarify things. I’ll take another look at the patch and work on
writing appropriate test cases accordingly, potentially shifting towards an
in-jvm dtest as you suggested.

Regarding the PR access: do I need to take any additional steps to make it
accessible? I had marked it as a draft PR since the test cases were still
pending, so perhaps that’s affecting visibility.

Thanks again for the guidance.

Best Regards
Manish

On Tue, May 13, 2025 at 4:05 PM Josh McKenzie <jmcken...@apache.org> wrote:

> Given the title on 20291: "Batch queries timeout when private IP of a node
> fails in multi-dc Cassandra setup", this seems like a prime candidate for
> an in-jvm dtest. The way I think about it: if I need to exercise intra-node
> communication or functionality to confirm that something operates the way I
> think it does, dtest it is. If whatever I'm testing has functionality
> purely encapsulated by the operations of a single node (changes to storage
> formats, in-memory representation, etc), then a unit test is fine.
>
> More often nowadays it ends up being a combination of:
>
>    1. property-testing on a class(es)
>    2. integration testing on the node level (our historical "unit" test)
>    3. then an in-jvm dtest to confirm multi-node operations, especially
>    in the presence of mixed version clusters (i.e. during upgrades) or
>    mixed-configuration features (i.e. rolling restart flipping flag to enable
>    a feature).
>
> I can't seem to access the PR on 20291 to give more insight or confirm,
> but hopefully the above heuristic proves helpful.
>
> On Tue, May 13, 2025, at 3:38 AM, manish khandelwal wrote:
>
> Hi everyone
>
> I have a question regarding test strategy in Cassandra. Under what
> circumstances is a dtest preferred over a unit test? Specifically, what
> criteria should guide the decision to write a dtest instead of a unit test?
> I’ve prepared a patch for *CASSANDRA-20291*, but I’m encountering some
> challenges in writing unit tests—primarily due to the limited support for
> mocking in the Cassandra codebase. As a result, I’m considering shifting
> towards dtests and would appreciate any guidance on this.
> Regards
> Manish
>
>
>

Reply via email to