perf(runtime): split trigger evals from the blocking pool; bounded, deadline-aware execution
This commit is contained in:
@@ -84,4 +84,64 @@ public class SiteRuntimeOptionsValidatorTests
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("AlarmPublishQueueCapacity", result.FailureMessage);
|
||||
}
|
||||
|
||||
// ── WP3.1 options ──────────────────────────────────────────────────────────────
|
||||
|
||||
/// <summary>
|
||||
/// The ceiling is the upper bound of the instance-scaled pool; below the floor it would
|
||||
/// silently shrink the configured pool instead of growing it.
|
||||
/// </summary>
|
||||
[Fact]
|
||||
public void ScriptExecutionMaxThreadCountBelowThreadCount_IsRejected()
|
||||
{
|
||||
var result = Validate(new SiteRuntimeOptions
|
||||
{
|
||||
ScriptExecutionThreadCount = 8,
|
||||
ScriptExecutionMaxThreadCount = 4
|
||||
});
|
||||
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("ScriptExecutionMaxThreadCount", result.FailureMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void EqualScriptExecutionThreadCountAndMax_IsAccepted()
|
||||
{
|
||||
var result = Validate(new SiteRuntimeOptions
|
||||
{
|
||||
ScriptExecutionThreadCount = 8,
|
||||
ScriptExecutionMaxThreadCount = 8
|
||||
});
|
||||
|
||||
Assert.True(result.Succeeded, result.FailureMessage);
|
||||
}
|
||||
|
||||
/// <summary>A zero gate would park every Expression trigger on the node forever.</summary>
|
||||
[Fact]
|
||||
public void ZeroTriggerEvalMaxConcurrency_IsRejected()
|
||||
{
|
||||
var result = Validate(new SiteRuntimeOptions { TriggerEvalMaxConcurrency = 0 });
|
||||
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("TriggerEvalMaxConcurrency", result.FailureMessage);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
public void ZeroTriggerEvalTimeoutSeconds_IsRejected()
|
||||
{
|
||||
var result = Validate(new SiteRuntimeOptions { TriggerEvalTimeoutSeconds = 0 });
|
||||
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("TriggerEvalTimeoutSeconds", result.FailureMessage);
|
||||
}
|
||||
|
||||
/// <summary>A zero cap would shed every trigger, silently disabling all scripts.</summary>
|
||||
[Fact]
|
||||
public void ZeroMaxConcurrentRunsPerScript_IsRejected()
|
||||
{
|
||||
var result = Validate(new SiteRuntimeOptions { MaxConcurrentRunsPerScript = 0 });
|
||||
|
||||
Assert.True(result.Failed);
|
||||
Assert.Contains("MaxConcurrentRunsPerScript", result.FailureMessage);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user