1
0
mirror of https://github.com/ppy/osu.git synced 2024-11-17 03:02:54 +08:00
Commit Graph

1290 Commits

Author SHA1 Message Date
Dean Herbert
7ef03dd2cb Use fire-and-forget async operations on global track
This avoids any blocking overhead caused by a backlogged audio thread.
Test seem to pass so might be okay?

Note that order is still guaranteed due to the `ensureUpdateThread`
queueing system framework-side.
2022-07-07 17:15:45 +09:00
Dean Herbert
1a41d3ef20 Allow PlayerTestScene to import the beatmap it's using 2022-07-07 16:42:36 +09:00
Salman Ahmed
9115072917 Fix flaky tests not running at all with environment variable set 2022-07-07 04:24:10 +03:00
Dean Herbert
64edc6888d Add test coverage of corrupt realm creating backup 2022-07-04 16:45:23 +09:00
Dan Balasescu
385bd5a1b2
Merge pull request #18965 from peppy/mark-flaky-tests
Mark, document and silence remaining flaky tests on standard CI runs
2022-07-03 21:41:14 +09:00
Dan Balasescu
084a65578c Always clone messages incoming from client-side 2022-07-01 19:36:37 +09:00
Dan Balasescu
37acec1952 Isolate client's LocalUser from TestMultiplayerClient 2022-07-01 19:23:41 +09:00
Dan Balasescu
b64c0d011c Isolate client's Room from TestMultiplayerClient 2022-07-01 19:23:25 +09:00
Dan Balasescu
0be858b5bf Rename APIRoom -> ClientAPIRoom, remove unused asserts 2022-07-01 19:21:59 +09:00
Dan Balasescu
1c2ffb3bc4 Fix server-side objects being sent to client 2022-07-01 19:21:53 +09:00
Dean Herbert
615c3234d8 Remove non-required NRT hint 2022-07-01 16:25:21 +09:00
Dean Herbert
c4f1660841 Rename ENVVAR in line with previous one (OSU_TESTS_NO_TIMEOUT) 2022-07-01 16:20:34 +09:00
Dean Herbert
1777a6d24a Add attribute to retry flaky tests on normal CI runs 2022-07-01 16:06:18 +09:00
Dean Herbert
35745c83b7 Replace dodgy SetUpSteps overriding with usage of HasCustomSteps 2022-06-28 15:19:02 +09: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
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
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
Dean Herbert
31a447fda0 Update parameter discards 2022-06-24 21:26:19 +09:00
Dean Herbert
158f0a1f23 Remove remaining Room!=null checks in TestMultiplayerClient where possible 2022-06-23 17:38:34 +09:00
Dean Herbert
bc557bacf0 Remove room null assertion in TestMultiplayerClient.ChangeState to avoid assert
This method is run from async contexts, but `get_Room` asserts update
thread which is not the case. Was causing silent test failures (showing
as pass but failing `dotnet-test` via return code):

TestSceneMultiplayer.TestGameplayFlow

```
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: Score preparation failed!
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: NUnit.Framework.AssertionException: :
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Framework.Logging.ThrowingTraceListener.Fail(String message1, String message2)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.TraceInternal.Fail(String message, String detailMessage)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.TraceInternal.TraceProvider.Fail(String message, String detailMessage)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at System.Diagnostics.Debug.Fail(String message, String detailMessage)
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Online.Multiplayer.MultiplayerClient.get_Room() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Online/Multiplayer/MultiplayerClient.cs:line 98
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Tests.Visual.Multiplayer.TestMultiplayerClient.ChangeState(MultiplayerUserState newState) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Tests/Visual/Multiplayer/TestMultiplayerClient.cs:line 275
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Screens.OnlinePlay.Multiplayer.MultiplayerPlayer.PrepareScoreForResultsAsync(Score score) in /opt/buildagent/work/ecd860037212ac52/osu.Game/Screens/OnlinePlay/Multiplayer/MultiplayerPlayer.cs:line 223
[13:13:17] :         [dotnet test] [runtime] 2022-06-22 13:13:16 [error]: at osu.Game.Screens.Play.Player.prepareScoreForResults() in /opt/buildagent/work/ecd860037212ac52/osu.Game/Screens/Play/Player.cs:line 747
```
2022-06-23 14:10:20 +09:00
Bartłomiej Dach
21d60231b6
Add limited test coverage of osu:// scheme link IPC flow 2022-06-20 22:22:25 +02:00
Dan Balasescu
f8830c6850 Automated #nullable processing 2022-06-17 16:37:17 +09:00
Bartłomiej Dach
9c4f6d2ce0
Merge branch 'master' into first-run-setup-notification-interruption 2022-06-16 15:14:40 +02:00
Dean Herbert
8a5755ca52 Remove pointless override in test implementation 2022-06-16 18:27:16 +09:00
Dean Herbert
1f3e1b2d97 Combine BeatmapManager and BeatmapModelManager into one class 2022-06-16 18:07:04 +09:00
Salman Ahmed
1171d44ad9 Add failing test case 2022-06-15 03:37:04 +03:00
Dean Herbert
f11fe54385 Remove custom hash function flow 2022-06-15 00:42:30 +09:00
Dean Herbert
cd649f7d97
Merge branch 'master' into multiplayer-leaderboard-user-mods-2 2022-06-08 13:39:42 +09:00
Dan Balasescu
3df4d1b0e6 Fix incorrect HasPassword value for returned rooms 2022-06-03 21:17:48 +09:00
Dan Balasescu
41ff170b60 Fix playlist IDs not being returned 2022-06-03 21:12:09 +09:00
Dan Balasescu
68337df643 Fix tests by creating a score processor 2022-06-03 20:04:20 +09:00
Dan Balasescu
646f5f0f33 Isolate "server-side" multiplayer rooms in testing 2022-06-03 19:17:34 +09:00
Dean Herbert
477e520766 Add comment regarding deadlock avoidance 2022-05-31 12:24:44 +09:00
Dean Herbert
f935f034c2 Ensure request handling for OnlinePlayTestScene runs in a scheduled fashion 2022-05-30 16:33:07 +09:00
Bartłomiej Dach
a8e1c5ba87
Fix remaining cases of incorrect GameplayState construction in tests
Manual attempts to initialise replaced by a new `TestGameplayState`
helper for ease of use.
2022-05-28 15:23:29 +02:00
Salman Ahmed
2fac710d4b Add step for adjusting editor clock rate in test scene 2022-05-28 04:10:39 +03:00
Joseph Madamba
389020b497 Fix scores container test failures 2022-05-26 20:58:47 -07:00
Dean Herbert
93c94b8ea0 Fix test caching woes 2022-05-26 18:30:37 +09:00
Dean Herbert
acd554d918 Update time info and add bpm 2022-05-25 23:54:59 +09:00
Dean Herbert
0bcf8c846c Change editor colour scheme to aquamarine 2022-05-24 18:43:22 +09:00
Salman Ahmed
cef99fd020 Disallow transferring track from test WorkingBeatmaps which have local stores 2022-05-20 16:08:31 +03:00
Dean Herbert
35026ad642 Add missing EditorClock caching 2022-05-13 21:39:54 +09:00
Bartłomiej Dach
fdb21fedab
Implement IOverlayManager in ScreenTestScene 2022-05-05 22:16:55 +02:00
Dean Herbert
b411b59006 Move IPlacementHandler caching to interface 2022-05-05 16:43:02 +09:00
Dean Herbert
1f1845d69b
Merge branch 'master' into multiplayer-force-start-2 2022-04-29 14:45:40 +09:00
Dean Herbert
ed894d6428
Merge pull request #17941 from frenzibyte/remove-legacy-skin-fallback
Handle all legacy skin component types explicitly and remove texture fallback
2022-04-25 21:55:05 +09:00
Dean Herbert
7ac3ba132c Remove unused using statements 2022-04-25 18:55:12 +09:00
Salman Ahmed
daadc3fc21 Simplfiy and share notification dimsiss method across test scenes
Might as well inline, but I feel like it will require adding the same
comment across all usages, because just `State.Value = Hidden` in an
until step feels off, dunno.
2022-04-23 23:14:19 +03:00
Salman Ahmed
89519086c8 Fix SkinnableTestScene unnecessarily adding a base raw skin layer 2022-04-23 03:34:05 +03:00
Dan Balasescu
b293d3923c Merge branch 'master' into multiplayer-force-start-2 2022-04-23 01:03:55 +09:00
Bartłomiej Dach
8c6864727e
Merge branch 'master' into first-run-setup 2022-04-21 22:14:57 +02:00
Dean Herbert
832d37b2c2 Update screen transition events to use new event args 2022-04-22 00:52:44 +09:00
Dan Balasescu
08d250fe58 Rename MatchStarted() -> GameplayStarted() 2022-04-21 22:39:24 +09:00
Dean Herbert
e8adbb319b Skip first run setup in OsuGameTestScenes 2022-04-19 22:57:07 +09:00
Dean Herbert
e315313266 Split out IDialogOverlay to allow for easier testing 2022-04-18 18:36:26 +09:00
Dean Herbert
9b433280bd Remove countdown implementation from TestMultiplayerClient 2022-04-13 21:24:33 +09:00
Dean Herbert
abb42a54fd Fix MultiplayerTestScene not actually setting match type correctly 2022-04-11 17:57:05 +09:00
Dean Herbert
f00dc5e156
Merge pull request #17598 from smoogipoo/playlist-quick-reorder
Fix playlist refreshing all items on order change
2022-04-04 14:48:05 +09:00
Dan Balasescu
e1f147a207 Mutate playlist in EditUserPlaylistItem 2022-04-04 13:46:41 +09:00
Dan Balasescu
6e6271d0c0 Fix "server-side" room playlist not updated
Remove unused using
2022-04-01 18:32:10 +09:00
Dan Balasescu
32e55e7d78 Merge branch 'master' into osu-diff-calc-max-combo 2022-03-31 15:08:08 +09:00
Bartłomiej Dach
9621a7f9cb
Merge branch 'master' into fix-autoplay-mod-user-id 2022-03-30 21:41:45 +02:00
Dean Herbert
975883da5c Move all usages of client.realm filename to a single const 2022-03-30 13:34:48 +09:00
Salman Ahmed
986aad4bd5 Fix potential nullref on OsuGameTestScene.TearDownSteps 2022-03-30 01:15:24 +03:00
Dean Herbert
ea9495eb74 Update all existing calls to extension method with correct fallback handling 2022-03-29 16:51:30 +09:00
Dean Herbert
f92a31cd39
Merge pull request #17402 from smoogipoo/multiplayer-auto-countdown
Add multiplayer auto-start countdown timer
2022-03-25 20:31:14 +09:00
Dan Balasescu
1ff5fc98f5
Merge pull request #17445 from peppy/fix-test-realm-failures
Fix visual test crashes due to local realm not having update thread
2022-03-25 19:41:13 +09:00
Dan Balasescu
2553cfed75 Match new server ready/unready logic 2022-03-25 17:04:45 +09:00
Dean Herbert
6b22e5774f Remove conditional access on known non-null 2022-03-25 16:42:35 +09:00
Dean Herbert
5fcd3b07f1 Fix visual test crashes due to local realm not having update thread 2022-03-25 16:35:32 +09:00
Dean Herbert
b1f0f89fdd Simplify AutoStart and Host checks 2022-03-25 15:41:01 +09:00
Dan Balasescu
478174dd58
Merge pull request #17416 from peppy/skin-fuck
Refactor skin construction
2022-03-25 15:36:06 +09:00
Dan Balasescu
d3a957d64e Fix test client not receiving initial value 2022-03-24 20:24:09 +09:00
Dan Balasescu
f80692f342 Add missing TestMultiplayerClient coverage 2022-03-24 20:19:05 +09:00
Dan Balasescu
5fe46a73cb Update room state in more situations 2022-03-24 20:17:16 +09:00
Dan Balasescu
209de886ce Add method to stop countdown 2022-03-24 20:17:16 +09:00
Dan Balasescu
ea9de0199d Split countdown start into separate method 2022-03-24 20:09:32 +09:00
Dan Balasescu
dfa076c169 Refactor cancellation logic 2022-03-24 16:29:59 +09:00
Dan Balasescu
4c0d76573c Asserate code is running on update thread 2022-03-24 15:51:30 +09:00
Dan Balasescu
f0d132b16e Rename FinishCountdown() -> SkipToEndOfCountdown() 2022-03-24 15:21:46 +09:00
Dan Balasescu
d2ecc100e5 Revert unnecessary async change 2022-03-24 15:07:24 +09:00
Dan Balasescu
8f3a4df70a Add explanation for try-catch 2022-03-24 15:07:24 +09:00
Dan Balasescu
d36944ac95 Dispose token manually
Cover more branches with cancellation source disposal
2022-03-24 15:07:24 +09:00
Dan Balasescu
34a367b369 Merge branch 'master' into multiplayer-countdown-timers-2 2022-03-23 15:40:50 +09:00
Dean Herbert
6542f974f2
Merge branch 'master' into skin-fuck 2022-03-23 15:30:22 +09:00
Dan Balasescu
a83a90e675 Rename countdown Delay -> Duration 2022-03-23 15:21:16 +09:00
Dan Balasescu
f7c0047206 Send time remaining in countdowns instead 2022-03-23 15:19:43 +09:00
Dean Herbert
078288a616 Make "skin.ini" the default skin filename and remove redundant parameters 2022-03-23 15:05:01 +09:00
Dean Herbert
7a1909bf97 Change parameter order of LegacySkin to put IStorageResourceProvider first
The optional resource store should not be before the (basically)
required resource provider.
2022-03-23 15:02:04 +09:00
Dean Herbert
6c405f1dee Remove storage override from LegacyBeatmapSkin 2022-03-23 14:57:42 +09:00
Dean Herbert
b48aa1d8fa Ensure HitObjectSampleTest's TestWorkingBeatmap provides the marking resource store correctly 2022-03-23 14:57:42 +09:00
Dean Herbert
a5acd38fd5 Fix HitObjectSampleTest adding null files to realm models 2022-03-23 14:57:42 +09:00
Dean Herbert
a7f63fb034 Make providing a custom ResourceStore to LegacyBeatmapSkin optional (for tests only) 2022-03-23 14:57:42 +09:00
Bartłomiej Dach
51a1721bc9
Fix unprotected access to potentially-null DI'd dialog overlay 2022-03-22 22:10:05 +01:00
Dean Herbert
483fb84b56 Fix typo in FinishCountdown method 2022-03-22 16:50:13 +09:00
Dean Herbert
61ddf1e6cf Disallow exiting the editor without saving (unless explicitly confirming) 2022-03-22 15:42:56 +09:00
Dan Balasescu
4630aa15cc Apply refactorings according to reviews 2022-03-22 12:54:19 +09:00
Dean Herbert
63998ad9f1 Add test coverage of SpectatorPlayer failing to seek on inopportune frame arrival time 2022-03-19 15:06:22 +09:00
Dan Balasescu
04f4e81852 Rename start countdown request 2022-03-18 21:05:19 +09:00
Dan Balasescu
72843a6797 Add support for starting/stopping countdowns 2022-03-18 14:33:09 +09:00
Dan Balasescu
7b8fb341a5 Fix not handling IconButtons 2022-03-17 17:59:28 +09:00
Salman Ahmed
e14a35b469 Add failing test case 2022-03-02 20:32:41 +03:00
Dan Balasescu
e947c97e10
Merge branch 'master' into spectator-reliability 2022-02-25 20:20:30 +09:00
Dan Balasescu
16a3bbbcb4
Merge pull request #16944 from peppy/rooms-request-faster
Update playlists/multiplayer to use new compact response
2022-02-24 23:20:07 +09:00
Dean Herbert
260cf793fe Add test coverage of more advanced frame delivery scenarios to TestSceneSpectatorPlayback 2022-02-24 02:28:13 +09:00
Dean Herbert
c94e7e2abe Add ability to simulate network failures to TestSpectatorClient 2022-02-24 02:23:48 +09:00
Dean Herbert
14c8ce50a0 Prefix all test send methods in TestSpectatorClient with Send 2022-02-24 02:23:48 +09:00
Dean Herbert
87da650dfb Update framework 2022-02-23 14:06:56 +09:00
Dean Herbert
71ae425fb2 Merge branch 'master' into rooms-request-faster 2022-02-22 15:45:05 +09:00
Dean Herbert
113153e6a3 Fix remaining filter tests 2022-02-22 00:25:00 +09:00
Dean Herbert
98c008b95f Fix test failures due to order change 2022-02-21 19:48:39 +09:00
Dan Balasescu
567da9214e Merge branch 'master' into osu-diff-calc-max-combo 2022-02-18 18:35:24 +09:00
Dean Herbert
7e24b36f26 Merge branch 'master' into remove-playlistitem-beatmap 2022-02-16 14:24:57 +09:00
Dean Herbert
6a08fd57ef Rename "client" fields in tests to specify whether spectator or multiplayer 2022-02-16 09:52:18 +09:00
Dean Herbert
187870b794 Merge branch 'master' into fix-multi-cache-dependencies 2022-02-16 09:44:37 +09:00
Dean Herbert
954ae60b81
Merge branch 'master' into copy-existing-difficulty 2022-02-16 08:55:12 +09:00
Dan Balasescu
48573d2401 Move test request handling earlier in setup 2022-02-15 23:50:10 +09:00
Dan Balasescu
bdc3b76df0 Remove beatmap bindable from PlaylistItem 2022-02-15 23:50:08 +09:00
Dan Balasescu
ccd265ebe7 Handle beatmap lookup requests in TestRoomRequestsHandler 2022-02-15 23:41:50 +09:00
Dan Balasescu
a5183cec77 Add helper to construct APIBeatmap 2022-02-15 23:41:08 +09:00
Dan Balasescu
2675bb87ff Add BeatmapLookupCache as another dependency 2022-02-15 21:05:25 +09:00
Dan Balasescu
c48a0dc993 Move UserLookupCache to online play test dependencies 2022-02-15 20:56:46 +09:00
Dan Balasescu
b2276baf71 Seal OnlinePlayTestScene.CreateChildDependencies() 2022-02-15 20:55:57 +09:00
Dan Balasescu
efeba30b9f Remove ruleset and mod bindables from PlaylistItem 2022-02-15 16:28:15 +09:00
Bartłomiej Dach
e45a2ae0fc
Restructure difficulty copy flow to adapt to latest changes 2022-02-14 22:02:37 +01:00
Bartłomiej Dach
6fd663a718
Apply some renames to convey difference between creation options better 2022-02-13 14:01:23 +01:00
Bartłomiej Dach
a2c2b2bbb3
Add flow for copying existing difficulty content 2022-02-13 14:01:20 +01:00
Dan Balasescu
ffc4c64f7e Unify namings across the board 2022-02-09 12:10:07 +09:00
Dan Balasescu
09728a29ed Merge branch 'fix-broken-test-scene' into spectator-state-rework 2022-02-04 22:42:10 +09:00
Dan Balasescu
483977d5c8 Merge branch 'master' into spectator-state-rework 2022-02-03 19:59:07 +09:00
Dean Herbert
b94fe84712
Merge branch 'master' into new-difficulty-creation-v3 2022-02-03 10:48:20 +09:00
Dean Herbert
2731d8e3c2
Merge pull request #16701 from LeNitrous/mod-alternate-osu
Add "Alternate" mod for osu! ruleset
2022-02-03 10:41:23 +09:00
Bartłomiej Dach
a8ffc4fc2a
Add editor override to respect IsolateSavingFromDatabase 2022-02-02 21:57:21 +01:00
Bartłomiej Dach
afc48d86df
Add failing test coverage for save after safeties addition 2022-02-02 21:57:10 +01:00
Bartłomiej Dach
0d51c015ad
Add basic test coverage for new difficulty creation 2022-02-02 21:55:34 +01:00
Dan Balasescu
9d1d13c715 Fix up TestSpectatorClient implementation
Rather than using a list which is supposed to be updated "client"-side,
now uses the "server"-side list.
2022-02-02 23:05:09 +09:00
Dan Balasescu
6d3bc005ea Merge branch 'master' into spectator-state-rework 2022-02-02 18:57:04 +09:00
Bartłomiej Dach
75101b1105
Remove unused ruleset ctor params from test beatmap model managers
No longer used since 00e3af3366.
2022-02-01 21:49:41 +01:00
Dan Balasescu
502e6af008 Remove PlayingUsers list from SpectatorClient 2022-02-01 14:42:30 +09:00
Dean Herbert
57f793aff0 Rename dictionary and make private for added safety 2022-01-31 15:12:08 +09:00
Nitrous
e408d8ef0e
rename Frames to ReplayFrames 2022-01-29 23:19:51 +08:00
Nitrous
a8eb3f95df
add readonly modifier 2022-01-29 22:54:17 +08:00
Nitrous
b4e516c535
allow test scenes to specify replays manually 2022-01-29 22:31:24 +08:00
Dan Balasescu
3037a3a769 Purge final spectator frames before ending play 2022-01-28 22:26:05 +09:00
Dean Herbert
778eebc94d Add test coverage of local score import and deletion 2022-01-28 15:50:36 +09:00
Dean Herbert
cb7ae413fe Ensure test game is always active 2022-01-28 15:50:35 +09:00
Dean Herbert
5288eedd31 Update all usages of RulesetID and Ruleset.ID to use Ruleset.OnlineID 2022-01-27 15:38:03 +09:00
Salman Ahmed
7f34085baa Mark EditorSavingTestScene as abstract 2022-01-26 17:04:30 +03:00
Salman Ahmed
064468faad Refactor editor saving test scene for scalability 2022-01-26 07:57:46 +03:00
Salman Ahmed
a93873e8ca Recreate test beatmap of EditorTestScene on set up 2022-01-25 13:03:27 +03:00
Dan Balasescu
47a13c2eb0
Merge pull request #16603 from peppy/update-framework
Update framework
2022-01-25 15:15:49 +09:00
Dean Herbert
5872dabf60 Fix incorrect flag to options conversion 2022-01-25 14:16:15 +09:00
Dean Herbert
dd2caea694 Update GetSuitableHost usages in line with new HostOptions 2022-01-25 13:52:02 +09:00
Dean Herbert
3e5c9e8436 Fix cases of Access instead of Realm 2022-01-25 12:58:15 +09:00
Dean Herbert
6eb2c28e41 Rename RealmContextFactory to RealmAccess 2022-01-24 20:38:07 +09:00
Dean Herbert
e22aea0613 Apply same fix to OsuGameTestScene 2022-01-24 17:05:49 +09:00
Dean Herbert
1e483ece32 Avoid adding "exit all screens" step when running tests interactively 2022-01-24 16:40:16 +09:00
Henry Lin
44311c1f4e Add tests for diffcalc max combo 2022-01-23 11:25:22 +08:00
Dean Herbert
02baad30d7 Merge branch 'master' into global-bindable-thread-safety 2022-01-18 18:12:00 +09:00
Dan Balasescu
73a1f27ce5
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-18 17:31:37 +09:00
Dean Herbert
488f044924 Remove one more outdated comment 2022-01-18 16:46:14 +09:00
Dean Herbert
d26f4d50bd Add test coverage of aggregate room scores displaying correctly 2022-01-18 14:00:12 +09:00
Dean Herbert
da9a60a695 Update broken test scenes to match new OsuTestScene logic 2022-01-18 13:41:50 +09:00
Dean Herbert
b9aae5569f Fix OsuTestScene potentially mutating global bindables 2022-01-18 13:29:24 +09:00
Bartłomiej Dach
03e4ec4214
Merge branch 'master' into realm-integration/score-and-beatmaps 2022-01-15 14:45:42 +01:00
Susko3
19467e58c1 Remove unused params from BDL methods 2022-01-15 01:06:39 +01:00
Dean Herbert
e558fd69d2 Remove unnecessary null check and associated comment 2022-01-14 23:26:29 +09:00
Dean Herbert
51251e3204 Fix CI reported warnings 2022-01-12 22:39:00 +09:00
Dean Herbert
b7ee6d1866 Add protections against test null refs when beatmap load fails 2022-01-12 17:49:11 +09:00
Dean Herbert
e74a5022c9 Fix multiple tests via null checks and changing ToLive to Detach
flow
2022-01-12 17:00:17 +09:00
Dean Herbert
33060990b7 Temporarily disable WorkingBeatmapCache and fix multiple invalid data flows 2022-01-12 17:00:16 +09:00
Dean Herbert
00e3af3366 Update model manager and many related classes to get things compiling again 2022-01-12 17:00:00 +09:00
Dean Herbert
b8cd3cdbbc Various updates to ruleset and primary key usages to move closer to realm support 2022-01-12 16:57:13 +09:00
Dean Herbert
89d6ffa7f3 Use RealmContextFactory instead of EF 2022-01-12 16:39:36 +09:00
Dean Herbert
00177a3ae1 Update usages to new naming 2022-01-06 22:54:43 +09:00
Dean Herbert
3ea7588a91 Update continuation usages to use GetCompletedResult 2022-01-06 22:53:07 +09:00
Dean Herbert
f9713b8895 Replace usage of TimeoutAttribute to fix beatmap conversion test failures 2022-01-04 11:51:41 +09:00
Dean Herbert
031a40af6a Replace usages of Wait with WaitSafely 2022-01-04 11:51:41 +09:00
Dean Herbert
7088471cad Protect against test failures due to logger being set too early (and beginning logging) 2021-12-25 02:21:49 +09:00
Dean Herbert
a9a7a33974 Update framework 2021-12-25 02:04:47 +09:00
Dean Herbert
1c0dc204c4 Fix some regressing behaviour due to CleanRunHeadlessGameHost's naming structure changing 2021-12-24 20:24:37 +09:00
Dean Herbert
8cdad5f4d9 Remove incorrectly used gameSuffix from CleanRunHeadlessGameHost 2021-12-24 20:15:10 +09:00
Dean Herbert
83a1d39f80
Merge pull request #16231 from bdach/ruleset-config-cache-overwriting-3
Fix ruleset config cache potentially not working correctly in test contexts
2021-12-24 17:18:42 +09:00
Dean Herbert
ce4389576f
Merge branch 'master' into fix-incorrect-reference 2021-12-24 10:03:11 +09:00
Bartłomiej Dach
c429c74d89
Expose and use test ruleset config cache in test scenes 2021-12-23 19:42:26 +01:00
Bartłomiej Dach
77da1e12d5
Add test implementation of the ruleset config cache 2021-12-23 19:40:55 +01:00
Dan Balasescu
998b07db90 Fix TestMultiplayerClient referencing the wrong room 2021-12-23 19:14:09 +09:00
Bartłomiej Dach
1040590844
Add cancellation support to game-side IResourceStores 2021-12-23 10:33:17 +01:00
Dean Herbert
f81e32149b Fix ImportCollectionsTest.TestSaveAndReload not cleaning up before/after run 2021-12-22 13:38:20 +09:00
Dean Herbert
9aff646ff4 Centralise all multiplayer button clicking test logic
This adds the "wait for enabled" check in a way that can be easily
reused, as it keeps getting missed in test implementations.

This particular commit hopefully fixes
https://github.com/ppy/osu/runs/4583845033?check_suite_focus=true.
2021-12-21 13:49:51 +09:00
Dean Herbert
6907a9a3cc Name some screen stacks for better logging context 2021-12-20 18:24:14 +09:00
Dan Balasescu
9316abc278 Better fix for intermittent multiplayer tests 2021-12-20 13:10:13 +09:00
Bartłomiej Dach
54790bb758
Merge branch 'master' into fix-realm-post-storage-migration-failure 2021-12-17 00:19:46 +01:00
Dean Herbert
33cf4ba7f6
Merge pull request #16075 from smoogipoo/prevent-idle-transition-during-load
Add AbortGameplay() to fix state transition race conditions during multiplayer load
2021-12-15 19:59:19 +09:00
Dan Balasescu
9ade8069a1 Rename to AbortGameplay() and handle additional states 2021-12-15 06:40:28 +09:00
Dean Herbert
cebfeb5220
Merge pull request #16045 from smoogipoo/multiplayer-local-beatmap-query
Rework multiplayer's current item tracking
2021-12-14 18:33:30 +09:00
Dean Herbert
f9a2db5ec6 Add accessibility to realm factory via IStorageResourceProvider
We might need to rename this class..
2021-12-14 14:19:49 +09:00
Dan Balasescu
750bfae909 Fix TestMultiplayerClient not handling all users bailing from gameplay 2021-12-14 11:35:56 +09:00
Dan Balasescu
2f1dc91211 Add AbortLoad() method to abort gameplay loads 2021-12-14 11:30:42 +09:00