Skip to content

Commit 326ebe5

Browse files
Fix flaky TestSceneTimingScreen.
- Fix flakiness in `TestSceneTimingScreen.TestSelectionDismissedOnUndo` by using a null-conditional operator when checking `timingScreen.SelectedGroup.Value.Time`. This prevents potential NullReferenceExceptions during the wait loop if the selected group is transiently null, ensuring the test retries gracefully until the condition is met.
1 parent 89a5e0e commit 326ebe5

1 file changed

Lines changed: 5 additions & 5 deletions

File tree

osu.Game.Tests/Visual/Editing/TestSceneTimingScreen.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public void TestSelectionDismissedOnUndo()
8686
InputManager.Click(MouseButton.Left);
8787
});
8888

89-
AddUntilStep("Selection changed", () => timingScreen.SelectedGroup.Value.Time == 2170);
89+
AddUntilStep("Selection changed", () => timingScreen.SelectedGroup.Value?.Time == 2170);
9090
AddUntilStep("Ensure seeked to correct time", () => EditorClock.CurrentTimeAccurate == 2170);
9191

9292
AddStep("Adjust offset", () =>
@@ -97,7 +97,7 @@ public void TestSelectionDismissedOnUndo()
9797

9898
AddUntilStep("wait for offset changed", () =>
9999
{
100-
return timingScreen.SelectedGroup.Value.ControlPoints.Any(c => c is TimingControlPoint) && timingScreen.SelectedGroup.Value.Time > 2170;
100+
return timingScreen.SelectedGroup.Value.ControlPoints.Any(c => c is TimingControlPoint) && timingScreen.SelectedGroup.Value?.Time > 2170;
101101
});
102102

103103
AddStep("undo", () => changeHandler?.RestoreState(-1));
@@ -114,7 +114,7 @@ public void TestSelectionDismissedOnUndo()
114114
// InputManager.Click(MouseButton.Left);
115115
// });
116116
//
117-
// AddUntilStep("Selection changed", () => timingScreen.SelectedGroup.Value.Time == 2170);
117+
// AddUntilStep("Selection changed", () => timingScreen.SelectedGroup.Value?.Time == 2170);
118118
// AddUntilStep("Ensure seeked to correct time", () => EditorClock.CurrentTimeAccurate == 2170);
119119
//
120120
// AddStep("Adjust offset", () =>
@@ -125,14 +125,14 @@ public void TestSelectionDismissedOnUndo()
125125
//
126126
// AddUntilStep("wait for offset changed", () =>
127127
// {
128-
// return timingScreen.SelectedGroup.Value.ControlPoints.Any(c => c is TimingControlPoint) && timingScreen.SelectedGroup.Value.Time > 2170;
128+
// return timingScreen.SelectedGroup.Value.ControlPoints.Any(c => c is TimingControlPoint) && timingScreen.SelectedGroup.Value?.Time > 2170;
129129
// });
130130
//
131131
// AddStep("undo", () => changeHandler?.RestoreState(-1));
132132
//
133133
// AddUntilStep("selection retained", () =>
134134
// {
135-
// return timingScreen.SelectedGroup.Value.ControlPoints.Any(c => c is TimingControlPoint) && timingScreen.SelectedGroup.Value.Time > 2170;
135+
// return timingScreen.SelectedGroup.Value.ControlPoints.Any(c => c is TimingControlPoint) && timingScreen.SelectedGroup.Value?.Time > 2170;
136136
// });
137137
//
138138
// AddAssert("check group count", () => editorBeatmap.ControlPointInfo.Groups.Count, () => Is.EqualTo(10));

0 commit comments

Comments
 (0)