1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-12 03:57:25 +08:00
Commit Graph

52839 Commits

Author SHA1 Message Date
Dan Balasescu
d630b62cfc
Merge pull request #18915 from peppy/slider-snaking-test-refactoring
Apply various refactorings to `TestSceneSliderSnaking`
2022-06-28 16:16:35 +09:00
Dan Balasescu
8e4a6c43b5
Merge pull request #18914 from peppy/spectator-playback-test-leniences
Increase leniences on `TestSceneSpectatorPlayback.TestWithSendFailure`
2022-06-28 16:15:51 +09:00
Dean Herbert
6bfd351dec Add logging of GameplayClockContainer seeks 2022-06-28 15:23:29 +09:00
Dean Herbert
35745c83b7 Replace dodgy SetUpSteps overriding with usage of HasCustomSteps 2022-06-28 15:19:02 +09:00
Dean Herbert
22b254e5c5 Handle task exception outside of schedule to avoid unobserved exceptions 2022-06-28 15:09:28 +09:00
Dean Herbert
a2701a3205 Increase leaniences on TestSceneSpectatorPlayback.TestWithSendFailure
Not really sure how to improve this further, but should help with cases
like this:

```csharp
[runtime] 2022-06-28 05:32:06 [verbose]: 💨 Class: TestSceneSpectatorPlayback
[runtime] 2022-06-28 05:32:06 [verbose]: 🔶 Test:  TestWithSendFailure
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #1 Setup containers
[runtime] 2022-06-28 05:32:06 [verbose]: Received 1 new frames (total 1 of 2)
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #2 received frames
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 7 of 8)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 13 of 19)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 19 of 29)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 25 of 44)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 31 of 45)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 37 of 59)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 43 of 67)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 49 of 125)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 55 of 126)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 61 of 127)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 67 of 128)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 73 of 129)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 79 of 130)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 85 of 131)
[runtime] 2022-06-28 05:32:06 [verbose]: ✔️ 22 repetitions
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 91 of 132)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 97 of 133)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 103 of 134)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 109 of 135)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 115 of 136)
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 121 of 137)
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #3 start failing sends
[runtime] 2022-06-28 05:32:06 [verbose]: Received 6 new frames (total 127 of 138)
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #4 wait for send attempts
[runtime] 2022-06-28 05:32:06 [verbose]: 🔸 Step #5 frames did not increase
[runtime] 2022-06-28 05:32:06 [verbose]: 💥 Failed
[runtime] 2022-06-28 05:32:06 [verbose]:  Currently loading components (0)
[runtime] 2022-06-28 05:32:06 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-28 05:32:06 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-28 05:32:06 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-28 05:32:06 [verbose]: 🎱 Thread pool
[runtime] 2022-06-28 05:32:06 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-28 05:32:06 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-28 05:32:06 [verbose]: Host execution state changed to Stopping
```

https://teamcity.ppy.sh/buildConfiguration/Osu_Build/811?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-28 14:58:34 +09:00
Dan Balasescu
2f264aaf0a
Merge pull request #18913 from peppy/chat-channel-logging
Add logging around current channel changes and join requests
2022-06-28 14:46:57 +09:00
Dean Herbert
c1075d113f Add logging around current channel changes and join requests
Tracking down a flaky test
(https://teamcity.ppy.sh/buildConfiguration/Osu_Build/553?hideProblemsFromDependencies=false&expandBuildTestsSection=true&hideTestsFromDependencies=false):

```csharp
TearDown : System.TimeoutException : "PM Channel 1 displayed" timed out
--TearDown
   at osu.Framework.Testing.Drawables.Steps.UntilStepButton.<>c__DisplayClass11_0.<.ctor>b__0()
   at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
   at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
--- End of stack trace from previous location ---
   at osu.Framework.Testing.TestSceneTestRunner.TestRunner.RunTestBlocking(TestScene test)
   at osu.Game.Tests.Visual.OsuTestScene.OsuTestSceneTestRunner.RunTestBlocking(TestScene test) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/OsuTestScene.cs:line 503
   at osu.Framework.Testing.TestScene.RunTestsFromNUnit()
------- Stdout: -------
[runtime] 2022-06-27 23:18:55 [verbose]: 💨 Class: TestSceneChatOverlay
[runtime] 2022-06-27 23:18:55 [verbose]: 🔶 Test:  TestKeyboardNextChannel
[runtime] 2022-06-27 23:18:55 [verbose]: Chat is now polling every 60000 ms
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #1 Setup request handler
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #2 Add test channels
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #3 Show overlay with channels
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: Unhandled Request Type: osu.Game.Online.API.Requests.CreateChannelRequest
[network] 2022-06-27 23:18:55 [verbose]: Failing request osu.Game.Online.API.Requests.CreateChannelRequest (System.InvalidOperationException: DummyAPIAccess cannot process this request.)
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #4 Select channel 1
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-27 23:18:55 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/587 failed with System.Net.WebException: NotFound.
[network] 2022-06-27 23:18:55 [verbose]: Request to https://a.ppy.sh/503 failed with System.Net.WebException: NotFound.
[runtime] 2022-06-27 23:19:05 [verbose]: 💥 Failed (on attempt 5,550)
[runtime] 2022-06-27 23:19:05 [verbose]:  Currently loading components (0)
[runtime] 2022-06-27 23:19:05 [verbose]: 🧵 Task schedulers
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (standard) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: LoadComponentsAsync (long load) concurrency:4 running:0 pending:0
[runtime] 2022-06-27 23:19:05 [verbose]: 🎱 Thread pool
[runtime] 2022-06-27 23:19:05 [verbose]: worker:          min 1      max 32,767 available 32,766
[runtime] 2022-06-27 23:19:05 [verbose]: completion:      min 1      max 1,000  available 1,000
[runtime] 2022-06-27 23:19:05 [debug]: Focus on "ChatTextBox" no longer valid as a result of unfocusIfNoLongerValid.
[runtime] 2022-06-27 23:19:05 [debug]: Focus changed from ChatTextBox to nothing.
```

This kind of logging should be helpful:

```csharp
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #5 Channel 1 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #6 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to #channel-2
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #7 Channel 2 is visible
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #8 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 685
[runtime] 2022-06-28 04:59:57 [debug]: Pressed (DocumentNext) handled by TestSceneChatOverlay+TestChatOverlay.
[runtime] 2022-06-28 04:59:57 [debug]: KeyDownEvent(PageDown, False) handled by ManualInputManager+LocalPlatformActionContainer.
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #9 PM Channel 1 displayed
[runtime] 2022-06-28 04:59:57 [verbose]: 🔸 Step #10 Press document next keys
[runtime] 2022-06-28 04:59:57 [verbose]: Current channel changed to test user 218
```
2022-06-28 14:00:30 +09:00
Dean Herbert
364d0f0517
Merge pull request #18910 from bdach/editor-navigation-fix-again 2022-06-28 10:37:49 +09:00
Bartłomiej Dach
1a0228415d
Wait for and dismiss notification in editor navigation test 2022-06-27 22:29:47 +02:00
Bartłomiej Dach
374bbc1b14
Merge pull request #18908 from peppy/no-invalid-operation-without-message
Add messages to all `InvalidOperationException`s
2022-06-27 20:14:58 +02:00
Bartłomiej Dach
93e13ef890
Merge branch 'master' into no-invalid-operation-without-message 2022-06-27 19:11:08 +02:00
Bartłomiej Dach
8051a5a192
Merge pull request #18906 from peppy/fix-collection-modified-close-all-overlays
Fix potential crash on `CloseAllOverlays` due to collection mutation
2022-06-27 19:10:49 +02:00
Dean Herbert
54fe6b7df3
Fix incorrect string interpolation
Co-authored-by: Bartłomiej Dach <dach.bartlomiej@gmail.com>
2022-06-28 01:43:09 +09:00
Dean Herbert
569fde4b47 Add messages to all InvalidOperationExceptions
Without this, they can be very non-descript and hard to track down
2022-06-28 01:34:25 +09:00
Dean Herbert
b28cfc222b Schedule unregister instead 2022-06-28 01:19:28 +09:00
Dean Herbert
3e3843dcf9 Fix potential crash on CloseAllOverlays due to collection mutation 2022-06-28 00:32:36 +09:00
Dan Balasescu
d43b980a17
Merge pull request #18872 from peppy/add-working-beatmap-changed-logging
Add various logging of global `WorkingBeatmap` state changes
2022-06-27 21:34:05 +09:00
Dan Balasescu
c2b03cb6b9
Merge pull request #18875 from peppy/logging-finalise-selection-abort-operations
Add logging for various cases of `SongSelect.FinaliseSelection` being aborted
2022-06-27 21:33:51 +09:00
Dan Balasescu
6c6de9ce53
Fix typo 2022-06-27 20:40:02 +09:00
Dan Balasescu
396e7fc166
Merge pull request #18862 from peppy/empty-beatmap-file-fix-2
Fix second case of empty beatmaps being reported to sentry as errors
2022-06-27 20:37:57 +09:00
Dean Herbert
aa7d54f8b6 Add logging for various cases of SongSelect.FinaliseSelection being aborted 2022-06-27 20:10:17 +09:00
Dean Herbert
f355c3a3c9
Merge pull request #18864 from peppy/fix-realm-audio-track-test-fail
Centralise and harden editor-ready-for-use check
2022-06-27 19:42:49 +09:00
Dan Balasescu
8f91ce8f0c
Merge pull request #18871 from peppy/fix-realm-assertion-during-tests
Fix occasional failure in realm test proceedings due to incorrect `Debug.Assert`
2022-06-27 18:48:47 +09:00
Dean Herbert
50c1c066de Add various logging of global WorkingBeatmap state changes 2022-06-27 18:41:31 +09:00
Dan Balasescu
e131101708
Merge pull request #18866 from peppy/fix-storyboard-outro-skip-test-flaky
Fix `TestStoryboardSkipOutro` occasionally failing due to strict timings
2022-06-27 18:33:02 +09:00
Dean Herbert
0ba29b6fa6 Use currentScreen instead to make sure the screen we care about is loaded 2022-06-27 18:28:00 +09:00
Dan Balasescu
b13fa924fd
Merge pull request #18865 from peppy/fix-flaky-chat-test
Fix chat tests failing 1/10000 runs
2022-06-27 18:06:00 +09:00
Dean Herbert
5af1106fa5 Remove unused using statement 2022-06-27 18:04:52 +09:00
Dean Herbert
f6a61472c4 Fix occasional failure in realm test proceedings due to incorrect Debug.Assert
After a `BlockAllOperations`, the restoration of the `updateRealm`
instance is not instance. It is posted to a `SynchronizationContext`.
The assertion which has been removed in this commit was assuming it
would always be an immediate operation.

To ensure this works as expected, I've tracked the initialised state via
a new `bool`.

```csharp
System.TimeoutException : Attempting to block for migration took too long.

  1) Host threw exception System.AggregateException: One or more errors occurred. (: )
 ---> NUnit.Framework.AssertionException: :
   at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
   at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
   at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
   at System.Diagnostics.Debug.Fail(String message, String detailMessage)
   at osu.Game.Database.RealmAccess.BlockAllOperations() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Database/RealmAccess.cs:line 813
   at osu.Game.OsuGameBase.<>c__DisplayClass108_1.<Migrate>b__0() in /opt/buildagent/work/ecd860037212ac52/osu.Game/OsuGameBase.cs:line 449
   at osu.Framework.Threading.ScheduledDelegate.RunTaskInternal()
   at osu.Framework.Threading.Scheduler.Update()
   at osu.Framework.Graphics.Drawable.UpdateSubTree()
   at osu.Framework.Graphics.Containers.CompositeDrawable.UpdateSubTree()
```

https://teamcity.ppy.sh/buildConfiguration/Osu_Build/322?hideProblemsFromDependencies=false&hideTestsFromDependencies=false&expandBuildTestsSection=true
2022-06-27 18:01:12 +09:00
Dean Herbert
7ae222d984
Merge pull request #18863 from smoogipoo/difficulty-attributes-beatmap
Pass online beatmap info into `DifficultyAttributes.FromDatabaseAttributes()`
2022-06-27 17:16:52 +09:00
Dean Herbert
401d9c1bae Fix TestStoryboardSkipOutro occasionally failing due to strict timings 2022-06-27 17:13:46 +09:00
Dean Herbert
8c3c1f095e Update rollback test expectations
I can't find a better way to do this. It's very hard to trigger an
actual failure in the import process these days. For now I've just made
this work with the new assumptions. May be worth removing the test in
the future if this ever backfires.
2022-06-27 17:04:35 +09:00
Dean Herbert
13dcaf82ad Fix chat tests failing 1/10000 runs
31a447fda0/osu.Game/Online/Chat/ChannelManager.cs (L412-L414)

Sigh.
2022-06-27 16:50:10 +09:00
Dean Herbert
5a7d339cc8 Centralise and harden editor-ready-for-use check
Not only does this combine the check into one location, but it also adds
a check on the global `WorkingBeatmap` being updated, which is the only
way I can see the following failure happening:

```csharp
05:19:07     osu.Game.Tests: osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.TestAddAudioTrack
05:19:07       Failed TestAddAudioTrack [161 ms]
05:19:07       Error Message:
05:19:07        TearDown : System.NullReferenceException : Object reference not set to an instance of an object.
05:19:07       Stack Trace:
05:19:07       --TearDown
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass7_0.<AddFile>b__0(TModel managed) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Database.ModelManager`1.<>c__DisplayClass8_0.<performFileOperation>b__0(Realm realm) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 49
05:19:07        at osu.Game.Database.RealmExtensions.Write(Realm realm, Action`1 function) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\RealmExtensions.cs:line 14
05:19:07        at osu.Game.Database.ModelManager`1.performFileOperation(TModel item, Action`1 operation) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 46
05:19:07        at osu.Game.Database.ModelManager`1.AddFile(TModel item, Stream contents, String filename) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Database\ModelManager.cs:line 36
05:19:07        at osu.Game.Screens.Edit.Setup.ResourcesSection.ChangeAudioTrack(FileInfo source) in C:\BuildAgent\work\ecd860037212ac52\osu.Game\Screens\Edit\Setup\ResourcesSection.cs:line 115
05:19:07        at osu.Game.Tests.Visual.Editing.TestSceneEditorBeatmapCreation.<TestAddAudioTrack>b__13_0() in C:\BuildAgent\work\ecd860037212ac52\osu.Game.Tests\Visual\Editing\TestSceneEditorBeatmapCreation.cs:line 101
05:19:07        at osu.Framework.Testing.Drawables.Steps.AssertButton.checkAssert()
05:19:07        at osu.Framework.Testing.Drawables.Steps.StepButton.PerformStep(Boolean userTriggered)
05:19:07        at osu.Framework.Testing.TestScene.runNextStep(Action onCompletion, Action`1 onError, Func`2 stopCondition)
```
2022-06-27 16:22:01 +09:00
Dan Balasescu
0fd2c010e5 Remove NRT disables from attributes classes 2022-06-27 16:07:15 +09:00
Dan Balasescu
0579780bb8 Add IBeatmapOnlineInfo parameter and use to extract more data 2022-06-27 16:07:15 +09:00
Dan Balasescu
f6a6538e96 Add more properties to IBeatmapOnlineInfo 2022-06-27 16:07:15 +09:00
Dean Herbert
10d1bbb131 Log global working beatmap updates in OsuGameBase instead of OsuGame 2022-06-27 15:58:51 +09:00
Dean Herbert
b70b365411 Ensure files are cleaned up even on test step failure in TestAddAudioTrack 2022-06-27 15:53:05 +09:00
Dean Herbert
01487a1185 Add assertion on realm re-fetch being not-null 2022-06-27 15:52:45 +09:00
Dean Herbert
13c8d33009 Fix second case of empty beatmaps being reported to sentry as errors 2022-06-27 15:29:01 +09:00
Dean Herbert
da61d0547f Include archive name in import log output 2022-06-27 15:24:25 +09:00
Dan Balasescu
2b278ed324
Merge pull request #18841 from peppy/menu-cursor-better-rotation
Adjust menu cursor rotation to use a floating centre-point
2022-06-27 14:18:54 +09:00
Dan Balasescu
05148d2b98
Merge pull request #18854 from peppy/fix-flaky-editor-navigation-test
Attempt to fix flaky `EditorNavigation` test
2022-06-27 13:58:28 +09:00
Dan Balasescu
1c1016d0be
Merge pull request #18853 from peppy/fix-flaky-playlist-test
Attempt to fix flaky `PlaylistOverlay` test
2022-06-27 13:48:19 +09:00
Dean Herbert
b5a8889fb8 Attempt to fix flaky EditorNavigation test
Conditionals taken from
f8830c6850/osu.Game/Tests/Visual/EditorTestScene.cs (L61-L62)
where it seemed to resolve other similar cases.
2022-06-27 03:04:50 +09:00
Dean Herbert
cd9eaf215b Attempt to fix flaky PlaylistOverlay test 2022-06-27 02:58:01 +09:00
Dan Balasescu
0bd230217b
Merge pull request #18849 from peppy/fix-another-test-deadlock
Fix test deadlock due to TPL threadpool saturation
2022-06-26 17:37:15 +09:00
Dean Herbert
1a22377e19 Fix test deadlock due to TPL threadpool saturation
As found in aggressive CI runs:

```csharp
00007F6F527F32B0 00007f74f937c72d (MethodDesc 00007f74f5545a78 + 0x22d System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f51c0838 + 0 System.Threading.Monitor.Wait(System.Object, Int32))
00007F6F527F3330 00007f74f93861ca (MethodDesc 00007f74f5259100 + 0x10a System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5545a78 + 0 System.Threading.ManualResetEventSlim.Wait(Int32, System.Threading.CancellationToken))
00007F6F527F3390 00007f74f9385d11 (MethodDesc 00007f74f52590e8 + 0x81 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken)), calling (MethodDesc 00007f74f5259100 + 0 System.Threading.Tasks.Task.SpinThenBlockingWait(Int32, System.Threading.CancellationToken))
00007F6F527F33E0 00007f74fc3823af (MethodDesc 00007f74f5934c08 + 0x4f System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].GetResultCore(Boolean)), calling (MethodDesc 00007f74f52590e8 + 0 System.Threading.Tasks.Task.InternalWaitCore(Int32, System.Threading.CancellationToken))
00007F6F527F3400 00007f74fb0aad92 (MethodDesc 00007f74fb28b000 + 0x122 osu.Game.Tests.Visual.OnlinePlay.OnlinePlayTestScene+<>c__DisplayClass21_0.<Setup>b__1(osu.Game.Online.API.APIRequest)), calling (MethodDesc 00007f74f5934be8 + 0 System.Threading.Tasks.Task`1[[System.Boolean, System.Private.CoreLib]].get_Result())
00007F6F527F3470 00007f74fa9c6dd7 (MethodDesc 00007f74f921f6c8 + 0x77 osu.Game.Online.API.DummyAPIAccess.PerformAsync(osu.Game.Online.API.APIRequest))
00007F6F527F34C0 00007f74fb13c718 (MethodDesc 00007f74fb4e0c50 + 0x538 osu.Game.Database.OnlineLookupCache`3+<performLookup>d__13[[System.Int32, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib],[System.__Canon, System.Private.CoreLib]].MoveNext())
```

Going with the simplest solution, as what we had was pretty ugly to start with and I don't want to overthink this, just push a fix and hope for the best.
2022-06-26 16:42:29 +09:00