A game about forced loneliness, made by TACStudios
1using System;
2using System.Collections;
3using UnityEngine;
4using System.Linq;
5
6namespace UnityEditor.TestTools.TestRunner.TestRun.Tasks
7{
8 internal abstract class TestTaskBase
9 {
10 public ErrorRunMode RunOnError = ErrorRunMode.DoNotRunOnError;
11
12 public bool RerunAfterResume;
13 public bool RerunAfterEnteredEditMode;
14 public bool SupportsResumingEnumerator;
15 public bool RunOnCancel;
16 public bool CanRunInstantly = true;
17
18 public abstract IEnumerator Execute(TestJobData testJobData);
19
20 public enum ErrorRunMode
21 {
22 DoNotRunOnError,
23 RunOnlyOnError,
24 RunAlways
25 }
26
27 public virtual string GetName()
28 {
29 return GetType().Name;
30 }
31
32 public string GetTitle()
33 {
34 var name = GetName();
35 if (name.EndsWith("Task")) // Trim away the Task part of the title in the end.
36 {
37 name = name.Substring(0, name.Length - 4);
38 }
39
40 var title = string.Empty;
41 for (var i = 0; i < name.Length; i++)
42 {
43 var nameChar = name[i];
44 if (i == 0 || (nameChar >= 'a' && nameChar <= 'z'))
45 {
46 title += nameChar;
47 }
48 else
49 {
50 title += " " + nameChar;
51 }
52 }
53
54 return title;
55 }
56
57 public bool ShouldExecute(TaskInfo taskInfo)
58 {
59 switch (taskInfo.taskMode)
60 {
61 case TaskMode.Error:
62 return RunOnError == ErrorRunMode.RunAlways || RunOnError == ErrorRunMode.RunOnlyOnError;
63 case TaskMode.Resume:
64 return RerunAfterResume;
65 case TaskMode.EnteredEditMode:
66 return RerunAfterEnteredEditMode;
67 case TaskMode.Canceled:
68 return RunOnCancel;
69 default:
70 return RunOnError != ErrorRunMode.RunOnlyOnError;
71 }
72 }
73
74 protected static bool IsAutomated()
75 {
76 var commandLineArgs = Environment.GetCommandLineArgs();
77 return commandLineArgs.Contains("-automated");
78 }
79 }
80}