A game about forced loneliness, made by TACStudios
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using UnityEngine; 5 6namespace UnityEditor.TestTools.TestRunner.TestRun 7{ 8 internal class TestJobDataHolder : ScriptableSingleton<TestJobDataHolder>, ITestJobDataHolder 9 { 10 [SerializeField] 11 public List<TestJobData> TestRuns = new List<TestJobData>(); 12 13 [NonSerialized] 14 private readonly Dictionary<string, ITestJobRunner> m_Runners = new Dictionary<string, ITestJobRunner>(); 15 16 public void RegisterRun(ITestJobRunner runner, TestJobData data) 17 { 18 TestRuns.Add(data); 19 m_Runners.Add(data.guid, runner); 20 } 21 22 public void UnregisterRun(ITestJobRunner runner, TestJobData data) 23 { 24 TestRuns.Remove(data); 25 m_Runners.Remove(data.guid); 26 } 27 28 public ITestJobRunner GetRunner(string guid) 29 { 30 return m_Runners.ContainsKey(guid) ? m_Runners[guid] : null; 31 } 32 33 public ITestJobRunner[] GetAllRunners() 34 { 35 return m_Runners.Values.ToArray(); 36 } 37 38 [InitializeOnLoadMethod] 39 private static void ResumeRunningJobs() 40 { 41 try 42 { 43 foreach (var testRun in instance.TestRuns.ToArray()) 44 { 45 if (testRun.isRunning) 46 { 47 var runner = new TestJobRunner(); 48 runner.RunJob(testRun); 49 instance.m_Runners[testRun.guid] = runner; 50 } 51 else 52 { 53 instance.TestRuns.Remove(testRun); 54 } 55 } 56 } 57 catch (Exception ex) 58 { 59 Debug.LogException(ex); 60 EditorUtility.ClearProgressBar(); 61 EditorApplication.UnlockReloadAssemblies(); 62 instance.TestRuns.Clear(); 63 } 64 } 65 } 66}