dcapwell commented on code in PR #4220:
URL: https://github.com/apache/cassandra/pull/4220#discussion_r2226851118


##########
test/simulator/main/org/apache/cassandra/simulator/ActionSchedule.java:
##########
@@ -73,7 +73,65 @@ public class ActionSchedule implements 
CloseableIterator<Object>, LongConsumer
 {
     private static final Logger logger = 
LoggerFactory.getLogger(ActionList.class);
 
-    public enum Mode { TIME_LIMITED, STREAM_LIMITED, TIME_AND_STREAM_LIMITED, 
FINITE, UNLIMITED }
+    public enum Mode
+    {
+        /**
+         * Definition: Runs the simulation for a specific duration (specified 
by {@link Work#runForNanos})
+         * Behavior: After the time limit is reached, cancels both daemon 
tasks and stream actions
+         * Use cases:
+         * <ul>
+         *     <li>Testing system behavior for a specific duration</li>
+         *     <li>Ensuring tests complete within time boundaries</li>
+         *     <li>Simulating time-constrained scenarios</li>
+         * </ul>
+         */
+        TIME_LIMITED,
+        /**
+         * Definition: Runs until all finite streams are processed ({@link 
#activeFiniteStreamCount} reaches 0)
+         * Behavior: Once all finite streams complete, cancels daemon tasks
+         * Use cases:
+         * <ul>
+         *     <li>Ensuring all finite operations complete</li>
+         *     <li>Testing scenarios where operation completion is more 
important than time</li>
+         *     <li>Validating behavior after all finite operations finish</li>
+         * </ul>
+         */
+        STREAM_LIMITED,
+        /**
+         * Definition: Combines both time and stream limitations
+         * Behavior: Cancels daemon tasks if either all finite streams 
complete OR the time limit is reached
+         * Use cases:
+         * <ul>
+         *     <li>Tests that should terminate on whichever condition happens 
first</li>
+         *     <li>Flexible scenarios requiring either completion or 
timeout</li>
+         *     <li>Testing resilience against both completion and time 
constraints</li>
+         * </ul>
+         */
+        TIME_AND_STREAM_LIMITED,
+        /**
+         * Definition: Does not allow stream actions at all
+         * Behavior: Throws IllegalStateException if stream actions are added; 
no special handling for daemon tasks

Review Comment:
   i can reword, but do think its important to call out this property; the 
details of what exception isn't needed here.
   
   I went with
   
   > Behavior: Processes a finite set of actions, if any action is added that 
has stream or daemon like behavior then the simulation will be rejected.



-- 
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

Reply via email to