From d31c9db08bb021ca7761335e0607116ac3a5fd39 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Thu, 23 Dec 2021 13:25:23 +0900 Subject: [PATCH] Adjust testing methodology to improve reliability of mosue wheel volume adjust tests There was previously a potential in headless runs for timing discrepancies to cause the volume to never get adjusted. As seen at https://github.com/peppy/osu/runs/4604610951?check_suite_focus=true. --- .../TestSceneMouseWheelVolumeAdjust.cs | 22 ++++++++++++------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/osu.Game.Tests/Visual/Navigation/TestSceneMouseWheelVolumeAdjust.cs b/osu.Game.Tests/Visual/Navigation/TestSceneMouseWheelVolumeAdjust.cs index 9e684e4f10..b3b80147ca 100644 --- a/osu.Game.Tests/Visual/Navigation/TestSceneMouseWheelVolumeAdjust.cs +++ b/osu.Game.Tests/Visual/Navigation/TestSceneMouseWheelVolumeAdjust.cs @@ -25,8 +25,11 @@ namespace osu.Game.Tests.Visual.Navigation public void TestAdjustVolumeFromMainMenu() { // First scroll makes volume controls appear, second adjusts volume. - AddRepeatStep("Adjust volume using mouse wheel", () => InputManager.ScrollVerticalBy(5), 2); - AddUntilStep("Volume is above zero", () => Game.Audio.AggregateVolume.Value > 0); + AddUntilStep("Adjust volume using mouse wheel", () => + { + InputManager.ScrollVerticalBy(5); + return Game.Audio.AggregateVolume.Value > 0; + }); } [Test] @@ -35,7 +38,11 @@ namespace osu.Game.Tests.Visual.Navigation loadToPlayerNonBreakTime(); // First scroll makes volume controls appear, second adjusts volume. - AddRepeatStep("Adjust volume using mouse wheel", () => InputManager.ScrollVerticalBy(5), 2); + AddUntilStep("Adjust volume using mouse wheel", () => + { + InputManager.ScrollVerticalBy(5); + return Game.Audio.AggregateVolume.Value > 0; + }); AddAssert("Volume is above zero", () => Game.Audio.Volume.Value > 0); } @@ -47,7 +54,7 @@ namespace osu.Game.Tests.Visual.Navigation loadToPlayerNonBreakTime(); // First scroll makes volume controls appear, second adjusts volume. - AddRepeatStep("Adjust volume using mouse wheel", () => InputManager.ScrollVerticalBy(5), 2); + AddRepeatStep("Adjust volume using mouse wheel", () => InputManager.ScrollVerticalBy(5), 10); AddAssert("Volume is still zero", () => Game.Audio.Volume.Value == 0); } @@ -59,14 +66,13 @@ namespace osu.Game.Tests.Visual.Navigation loadToPlayerNonBreakTime(); // First scroll makes volume controls appear, second adjusts volume. - AddRepeatStep("Adjust volume using mouse wheel holding alt", () => + AddUntilStep("Adjust volume using mouse wheel holding alt", () => { InputManager.PressKey(Key.AltLeft); InputManager.ScrollVerticalBy(5); InputManager.ReleaseKey(Key.AltLeft); - }, 2); - - AddAssert("Volume is above zero", () => Game.Audio.Volume.Value > 0); + return Game.Audio.AggregateVolume.Value > 0; + }); } private void loadToPlayerNonBreakTime()