Skip to content

Commit 23c1ffc

Browse files
Ruo-Ping (Rachel) DongChris Elion
andauthored
Clean up AcademyFixedUpdateStepper when playmode changed (#4532)
* Destroy stepper when playmode change * Detroy stepper if it does not belong to the current Academy Co-authored-by: Chris Elion <[email protected]>
1 parent a261b40 commit 23c1ffc

File tree

19 files changed

+548
-4
lines changed

19 files changed

+548
-4
lines changed

.yamato/com.unity.ml-agents-test.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,23 @@ test_editors:
22
- version: 2018.4
33
# 2018.4 doesn't support code-coverage
44
enableCodeCoverage: !!bool false
5+
# We want some scene tests to run in the DevProject, but packages there only support 2019+
6+
testProject: Project
57
- version: 2019.4
68
enableCodeCoverage: !!bool true
9+
testProject: DevProject
710
- version: 2020.1
811
enableCodeCoverage: !!bool true
12+
testProject: DevProject
913
- version: 2020.2
1014
enableCodeCoverage: !!bool true
15+
testProject: DevProject
16+
1117
trunk_editor:
1218
- version: trunk
1319
enableCodeCoverage: !!bool true
20+
testProject: DevProject
21+
1422
test_platforms:
1523
- name: win
1624
type: Unity::VM
@@ -24,6 +32,7 @@ test_platforms:
2432
type: Unity::VM
2533
image: package-ci/ubuntu:stable
2634
flavor: b1.medium
35+
2736
packages:
2837
- name: com.unity.ml-agents
2938
assembly: Unity.ML-Agents
@@ -70,7 +79,7 @@ test_{{ package.name }}_{{ platform.name }}_{{ editor.version }}:
7079
flavor: {{ platform.flavor}}
7180
commands:
7281
- npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
73-
- upm-ci project test -u {{ editor.version }} --project-path Project --package-filter {{ package.name }} {{ coverageOptions }} --extra-utr-arg "reruncount=2"
82+
- upm-ci project test -u {{ editor.version }} --project-path {{ editor.testProject }} --package-filter {{ package.name }} {{ coverageOptions }} --extra-utr-arg "reruncount=2"
7483
{% if editor.enableCodeCoverage %}
7584
- python3 ml-agents/tests/yamato/check_coverage_percent.py upm-ci~/test-results/ {{ package.minCoveragePct }}
7685
{% endif %}
@@ -88,6 +97,7 @@ test_{{ package.name }}_{{ platform.name }}_{{ editor.version }}:
8897
pull_request.target match "release.+") AND
8998
NOT pull_request.draft AND
9099
(pull_request.changes.any match "com.unity.ml-agents/**" OR
100+
pull_request.changes.any match " {{ editor.testProject }}/**" OR
91101
{% if package.name == "com.unity.ml-agents.extensions" %}
92102
pull_request.changes.any match "com.unity.ml-agents.extensions/**" OR
93103
{% endif %}
@@ -116,7 +126,7 @@ test_{{ package.name }}_{{ platform.name }}_trunk:
116126
- python -m pip install unity-downloader-cli --index-url https://artifactory.prd.it.unity3d.com/artifactory/api/pypi/pypi/simple --upgrade
117127
- unity-downloader-cli -u trunk -c editor --wait --fast
118128
- npm install upm-ci-utils@stable -g --registry https://artifactory.prd.cds.internal.unity3d.com/artifactory/api/npm/upm-npm
119-
- upm-ci project test -u {{ editor.version }} --project-path Project --package-filter {{ package.name }} {{ coverageOptions }} --extra-utr-arg "reruncount=2"
129+
- upm-ci project test -u {{ editor.version }} --project-path {{ editor.testProject }} --package-filter {{ package.name }} {{ coverageOptions }} --extra-utr-arg "reruncount=2"
120130
{% if editor.enableCodeCoverage %}
121131
- python3 ml-agents/tests/yamato/check_coverage_percent.py upm-ci~/test-results/ {{ package.minCoveragePct }}
122132
{% endif %}

DevProject/Assets/ML-Agents/Scripts/Tests/Editor.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DevProject/Assets/ML-Agents/Scripts/Tests/Runtime.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

DevProject/Assets/ML-Agents/Scripts/Tests/Runtime/AcademyTest.meta

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
using System.Collections;
2+
using NUnit.Framework;
3+
using UnityEngine.TestTools;
4+
using UnityEngine;
5+
using UnityEngine.SceneManagement;
6+
using Unity.MLAgents;
7+
#if UNITY_EDITOR
8+
using UnityEditor.SceneManagement;
9+
#endif
10+
11+
namespace Tests
12+
{
13+
public class AcademyStepperTest
14+
{
15+
[SetUp]
16+
public void Setup()
17+
{
18+
SceneManager.LoadScene("ML-Agents/Scripts/Tests/Runtime/AcademyTest/AcademyStepperTestScene");
19+
}
20+
21+
/// <summary>
22+
/// Verify in each update, the Academy is only stepped once.
23+
/// </summary>
24+
[UnityTest]
25+
public IEnumerator AcademyStepperCleanupPasses()
26+
{
27+
var academy = Academy.Instance;
28+
int initStepCount = academy.TotalStepCount;
29+
for (var i = 0; i < 5; i++)
30+
{
31+
yield return new WaitForFixedUpdate();
32+
Assert.True(academy.TotalStepCount - initStepCount == i + 1);
33+
}
34+
}
35+
}
36+
}

0 commit comments

Comments
 (0)