diff --git a/test_regress/t/t_disable_task_by_name.v b/test_regress/t/t_disable_task_by_name.v index d2f86c909..f4583eb72 100644 --- a/test_regress/t/t_disable_task_by_name.v +++ b/test_regress/t/t_disable_task_by_name.v @@ -8,6 +8,7 @@ int x = 0; int y = 0; +int z = 0; int self_entry = 0; int self_after_disable = 0; @@ -43,6 +44,10 @@ task increment_y; y++; endtask +task finish_z; + z++; +endtask + task self_stop; self_entry = 1; disable self_stop; @@ -217,6 +222,10 @@ module t; join_none #10; if (x != 1) $stop; + // Re-disabling after prior disable (no active invocations) is a no-op + disable increment_x; + #1; + if (x != 1) $stop; // Another basic module-task disable-by-name case fork @@ -226,6 +235,13 @@ module t; #10; if (y != 1) $stop; + // Disabling a task after it already finished is a no-op + finish_z(); + if (z != 1) $stop; + disable finish_z; + #1; + if (z != 1) $stop; + // Self-disable in task by name self_stop(); if (self_entry != 1) $stop;