bereng commented on code in PR #3917: URL: https://github.com/apache/cassandra/pull/3917#discussion_r2036595740
########## test/unit/org/apache/cassandra/cql3/PstmtPersistenceTest.java: ########## @@ -142,19 +148,103 @@ public void testPstmtInvalidation() throws Throwable createTable("CREATE TABLE %s (key int primary key, val int)"); + long initialEvicted = numberOfEvictedStatements(); + for (int cnt = 1; cnt < 10000; cnt++) { prepareStatement("INSERT INTO %s (key, val) VALUES (?, ?) USING TIMESTAMP " + cnt, clientState); - if (numberOfEvictedStatements() > 0) + if (numberOfEvictedStatements() - initialEvicted > 0) { + assertEquals("Number of statements in table and in cache don't match", numberOfStatementsInMemory(), numberOfStatementsOnDisk()); + + // prepare a more statements to trigger more evictions + for (int cnt2 = cnt + 1; cnt2 < cnt + 10; cnt2++) + prepareStatement("INSERT INTO %s (key, val) VALUES (?, ?) USING TIMESTAMP " + cnt2, clientState); + + // each new prepared statement should have caused an eviction + assertEquals("eviction count didn't increase by the expected number", 10, numberOfEvictedStatements() - initialEvicted); + assertEquals("Number of statements in memory (expected) and table (actual) don't match", numberOfStatementsInMemory(), numberOfStatementsOnDisk()); + return; } } fail("Prepared statement eviction does not work"); } + + + @Test + public void testAsyncPstmtInvalidation() throws Throwable Review Comment: Rather than doing a sort of E2E test, which will be heavy on CI and execution times, we could target the actual fix itself. I picture this as adding to `testPstmtInvalidation` some byteman checking timestamps where used both in inserts and deletions. But that's just me, just a suggestion. That way you test the specifics and avoid adding unnecessary CI load. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: pr-unsubscr...@cassandra.apache.org For additional commands, e-mail: pr-h...@cassandra.apache.org