From a9b3d380302b897ae2357d4a97d982c58f10e483 Mon Sep 17 00:00:00 2001 From: stoicAI1776 Date: Tue, 31 Mar 2026 23:04:58 +0530 Subject: [PATCH] Set algorithm status on result RuntimeError --- .../SubscriptionFilterEnumerator.cs | 4 ++-- Engine/Results/BaseResultsHandler.cs | 1 + .../Engine/Results/BaseResultsHandlerTests.cs | 19 +++++++++++++++++++ 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/Engine/DataFeeds/Enumerators/SubscriptionFilterEnumerator.cs b/Engine/DataFeeds/Enumerators/SubscriptionFilterEnumerator.cs index da53e847d5e0..71687eb33735 100644 --- a/Engine/DataFeeds/Enumerators/SubscriptionFilterEnumerator.cs +++ b/Engine/DataFeeds/Enumerators/SubscriptionFilterEnumerator.cs @@ -62,7 +62,7 @@ public static SubscriptionFilterEnumerator WrapForDataFeed(IResultHandler result filter.DataFilterError += (sender, exception) => { Log.Error(exception, "WrapForDataFeed"); - resultHandler.RuntimeError("Runtime error applying data filter. Assuming filter pass: " + exception.Message, exception.StackTrace); + resultHandler.ErrorMessage("Runtime error applying data filter. Assuming filter pass: " + exception.Message, exception.StackTrace); }; return filter; } @@ -192,4 +192,4 @@ private void OnDataFilterError(Exception exception) if (handler != null) handler(this, exception); } } -} \ No newline at end of file +} diff --git a/Engine/Results/BaseResultsHandler.cs b/Engine/Results/BaseResultsHandler.cs index b7163cf4923a..022bd8307068 100644 --- a/Engine/Results/BaseResultsHandler.cs +++ b/Engine/Results/BaseResultsHandler.cs @@ -951,6 +951,7 @@ protected void SetAlgorithmState(string error, string stack) { State["RuntimeError"] = error; State["StackTrace"] = stack; + Algorithm?.SetStatus(AlgorithmStatus.RuntimeError); } /// diff --git a/Tests/Engine/Results/BaseResultsHandlerTests.cs b/Tests/Engine/Results/BaseResultsHandlerTests.cs index de1ed7e467a6..d19ebcb97b23 100644 --- a/Tests/Engine/Results/BaseResultsHandlerTests.cs +++ b/Tests/Engine/Results/BaseResultsHandlerTests.cs @@ -82,6 +82,19 @@ public void CheckSaveLogs() Assert.AreEqual(Path.Combine(tempPath, $"{id}-log.txt"), saveLocation); } + [Test] + public void SetAlgorithmStateSetsAlgorithmRuntimeErrorStatus() + { + _baseResultsHandler = new BaseResultsHandlerTestable(AlgorithmId); + var algorithm = new QCAlgorithm(); + algorithm.SetStatus(AlgorithmStatus.Running); + _baseResultsHandler.SetAlgorithm(algorithm, 100000); + + _baseResultsHandler.SetAlgorithmStateForTest("error", "stack"); + + Assert.AreEqual(AlgorithmStatus.RuntimeError, algorithm.Status); + } + [TestCase(100)] [TestCase(-100)] [TestCase(0)] @@ -199,6 +212,12 @@ public void SetResultsDestinationFolder(string folder) ResultsDestinationFolder = folder; } public string GetResultsDestinationFolder => ResultsDestinationFolder; + + public void SetAlgorithmStateForTest(string error, string stack) + { + SetAlgorithmState(error, stack); + } + protected override void Run() { throw new NotImplementedException();