summaryrefslogtreecommitdiff
path: root/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs')
-rw-r--r--Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs32
1 files changed, 32 insertions, 0 deletions
diff --git a/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs
new file mode 100644
index 0000000..7968041
--- /dev/null
+++ b/Library/PackageCache/com.unity.test-framework@1.1.11/UnityEditor.TestRunner/TestRunner/EditModePCHelper.cs
@@ -0,0 +1,32 @@
+using System.Collections;
+using System.Reflection;
+using UnityEngine.TestTools;
+
+namespace UnityEditor.TestTools.TestRunner
+{
+ internal class EditModePcHelper : TestCommandPcHelper
+ {
+ public override void SetEnumeratorPC(IEnumerator enumerator, int pc)
+ {
+ GetPCFieldInfo(enumerator).SetValue(enumerator, pc);
+ }
+
+ public override int GetEnumeratorPC(IEnumerator enumerator)
+ {
+ if (enumerator == null)
+ {
+ return 0;
+ }
+ return (int)GetPCFieldInfo(enumerator).GetValue(enumerator);
+ }
+
+ private FieldInfo GetPCFieldInfo(IEnumerator enumerator)
+ {
+ var field = enumerator.GetType().GetField("$PC", BindingFlags.NonPublic | BindingFlags.Instance);
+ if (field == null) // Roslyn
+ field = enumerator.GetType().GetField("<>1__state", BindingFlags.NonPublic | BindingFlags.Instance);
+
+ return field;
+ }
+ }
+}