暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

CpuTimeProviderUnitTests.cs 3.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. using System.IO;
  2. using NUnit.Framework;
  3. using UnityEngine;
  4. using UnityEngine.AdaptivePerformance;
  5. namespace UnityEditor.AdaptivePerformance.Editor.Tests
  6. {
  7. [TestFixture]
  8. public class CpuTimeProviderUnitTests
  9. {
  10. CpuTimeProvider multiThreadedTestSubject;
  11. CpuTimeProvider singleThreadedTestSubject;
  12. [SetUp]
  13. public void InitializeTests()
  14. {
  15. multiThreadedTestSubject = new MultithreadedTimeProvider();
  16. singleThreadedTestSubject = new SingleThreadedTimeProvider();
  17. }
  18. [Test]
  19. public void CheckCPUFrameTime_AfterInitialisation_WithoutReset_Multithreaded()
  20. {
  21. Assert.AreEqual(-1, multiThreadedTestSubject.CpuFrameTime);
  22. }
  23. [Test]
  24. public void CheckCPUFrameTime_AfterInitialisation_WithoutReset_Singlethreaded()
  25. {
  26. Assert.AreEqual(-1, singleThreadedTestSubject.CpuFrameTime);
  27. }
  28. [Test]
  29. public void CheckCPUFrameTime_ImmediatelyAfterReset_Multithreaded()
  30. {
  31. multiThreadedTestSubject.Reset();
  32. Assert.AreEqual(-1, multiThreadedTestSubject.CpuFrameTime);
  33. }
  34. [Test]
  35. public void CheckCPUFrameTime_ImmediatelyAfterReset_Singlethreaded()
  36. {
  37. singleThreadedTestSubject.Reset();
  38. Assert.AreEqual(-1, singleThreadedTestSubject.CpuFrameTime);
  39. }
  40. [Test]
  41. public void CheckCPUFrameTime_PerformLatestUpdate_Multithreaded()
  42. {
  43. multiThreadedTestSubject.LateUpdate();
  44. Assert.AreEqual(-1, multiThreadedTestSubject.CpuFrameTime);
  45. }
  46. [Test]
  47. public void CheckCPUFrameTime_PerformLatestUpdate_Singlethreaded()
  48. {
  49. singleThreadedTestSubject.LateUpdate();
  50. Assert.AreEqual(-1, singleThreadedTestSubject.CpuFrameTime);
  51. }
  52. [Test]
  53. public void CheckCPUFrameTime_EndOfFrameDetected_ThenPerformLatestUpdate_Multithreaded()
  54. {
  55. multiThreadedTestSubject.EndOfFrame();
  56. multiThreadedTestSubject.LateUpdate();
  57. Assert.AreEqual(-1, multiThreadedTestSubject.CpuFrameTime);
  58. }
  59. [Test]
  60. public void CheckCPUFrameTime_EndOfFrameDetected_ThenPerformLatestUpdate_Singlethreaded()
  61. {
  62. singleThreadedTestSubject.EndOfFrame();
  63. singleThreadedTestSubject.LateUpdate();
  64. Assert.AreEqual(-1, singleThreadedTestSubject.CpuFrameTime);
  65. }
  66. [Test]
  67. public void CheckCPUFrameTime_EndOfFrameDetected_NoUpdateInstruction_Multithreaded()
  68. {
  69. multiThreadedTestSubject.EndOfFrame();
  70. Assert.AreEqual(-1, multiThreadedTestSubject.CpuFrameTime);
  71. }
  72. [Test]
  73. public void CheckCPUFrameTime_EndOfFrameDetected_NoUpdateInstruction_Singlethreaded()
  74. {
  75. singleThreadedTestSubject.EndOfFrame();
  76. Assert.AreEqual(-1, singleThreadedTestSubject.CpuFrameTime);
  77. }
  78. }
  79. internal class MultithreadedTimeProvider : CpuTimeProvider
  80. {
  81. protected override bool IsGraphicsMultiThreaded()
  82. {
  83. return true;
  84. }
  85. }
  86. internal class SingleThreadedTimeProvider : CpuTimeProvider
  87. {
  88. protected override bool IsGraphicsMultiThreaded()
  89. {
  90. return false;
  91. }
  92. }
  93. }