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

225 Commits

Author SHA1 Message Date
Dean Herbert
6a076a684e Merge branch 'realm-context-use-update-when-feasible' into realm-stable-subscriptions 2022-01-22 13:14:25 +09:00
Dean Herbert
c9db0181d0 Attempt to fix test failures on windows due to context being held open 2022-01-22 12:24:05 +09:00
Dean Herbert
1f157d729d Update existing subscriptions to new style
Fix missing detach calls in `MusicController`
2022-01-21 20:05:03 +09:00
Dean Herbert
114c9e8c1f Update all usages of CreateContext to use either Run or Write 2022-01-21 17:27:08 +09:00
Dean Herbert
70cc03fe43 Avoid constructor overhead for realm RealmKeyBinding parameterless constructor 2022-01-20 17:29:07 +09:00
Dean Herbert
1db2135d70 Update tests to match new behaviour 2022-01-19 01:05:47 +09:00
Dean Herbert
f24b2b1be3 Make copying detached changes to realm only exposed for BeatmapSet
Also fixes remaining issues with the copy process.
2022-01-12 17:49:11 +09:00
Dean Herbert
a307f7e90e Add test coverage of updating via copying changes from detached instance 2022-01-12 17:49:11 +09:00
Dean Herbert
c92aff8d2b Add test of cyclic beatmap/beatmapset references 2022-01-12 17:49:11 +09:00
Dean Herbert
509301d94f Update detach test to assert correct behaviour 2022-01-12 17:49:11 +09:00
Dean Herbert
8461eaab46 BeatmapSetInfo detach support 2022-01-12 17:00:16 +09:00
Dean Herbert
31a3161189 Make tests compile again 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
3ecd889fef Replace EF RulesetStore with realm version
Pass full EF context factory to `RealmContextFactory` for migration purposes
2022-01-12 16:39:36 +09:00
Dean Herbert
618903c217 Rename realm to become imposter classes 2022-01-12 16:39:36 +09:00
Dean Herbert
031a40af6a Replace usages of Wait with WaitSafely 2022-01-04 11:51:41 +09:00
Dean Herbert
4b88e257e5 Update usages of CleanRunHeadlessGameHost to match new signature 2021-12-24 20:17:34 +09:00
Dean Herbert
441b7baa93 Provide a realm factory to usages of ToLive/RealmLive 2021-12-14 14:26:34 +09:00
Dean Herbert
be337b4ace Add failing test coverage of RealmLive failing post storage migration 2021-12-14 13:53:23 +09:00
Dean Herbert
8e6c7eb030 Use OsuStorage in realm tests to allow for migration
Also changes the realm filename to use `client` to match the ignore
rules in `OsuStorage`. Without doing this, migration will fail in an
indefinite mutex wait when attempting to delete the realm `.note` file.
2021-12-14 13:52:28 +09:00
Dean Herbert
4cac87e933 Add test coverage showing that KeyBindingStore won't remove excess key bindings 2021-12-13 15:26:32 +09:00
Dean Herbert
dbb08f7d46 Use OnlineID for set operations 2021-12-10 16:11:48 +09:00
Bartłomiej Dach
16fd7f5a28
Simplify slightly redundant assertions 2021-12-04 14:42:01 +01:00
Dean Herbert
675ecb603f Add IRulesetStore to allow for transitional usage in upcoming manager classes 2021-12-03 17:57:40 +09:00
Dean Herbert
4306420922 Add extension methods to add extra safety to realm subscriptions
Also adjusts the naming and documentation to make it (hopefully) easier
to understand what this method/process implies.
2021-12-01 15:09:53 +09:00
Dan Balasescu
8fdb9ab4e5
Merge branch 'master' into realm-integration/live-queryable-fix 2021-11-30 18:54:14 +09:00
Dan Balasescu
daa7135381
Merge branch 'master' into realm-nested-context-creation-deadlock-fix 2021-11-30 18:01:00 +09:00
Dean Herbert
0feec09966 Refactor beatmap importer tests to ensure realm is refreshed when waiting on state 2021-11-30 14:12:49 +09:00
Dean Herbert
6b0999052f Merge branch 'master' into realm-integration/live-queryable-fix 2021-11-30 12:02:37 +09:00
Dean Herbert
2e31f5a338 Update tests to match new behaviour 2021-11-30 11:55:13 +09:00
Bartłomiej Dach
431ac1d97b
Remove unused using directive 2021-11-29 20:57:55 +01:00
Dan Balasescu
8a188b74b1
Merge pull request #15850 from peppy/realm-integration/misc-qol
Apply a couple of realm related documentation/interface changes
2021-11-29 18:58:15 +09:00
Dean Herbert
566e10f8cc Refactor test to be easier to follow 2021-11-29 18:55:23 +09:00
Dean Herbert
bac7966337 Update RealmLiveTests to use interface type 2021-11-29 18:17:30 +09:00
Dean Herbert
071a8c6709 Add test coverage showing RealmLive failure after an attach 2021-11-29 17:34:58 +09:00
Dean Herbert
54798eabc9 Add test coverage of potential deeadlock scenario with nested realm context fetching 2021-11-29 16:29:53 +09:00
Dean Herbert
791f7e3801 Update RealmLive tests in line with modified behaviour 2021-11-29 15:16:16 +09:00
Dean Herbert
d73e81ee63 Add test coverage of non-optimised existing model check 2021-11-29 14:48:28 +09:00
Dan Balasescu
5e53f51c99
Merge pull request #15812 from peppy/realm-live-unmanaged-fetch-fix
Avoid attempting to fetch a non-managed `RealmLive` instance from the realm backing
2021-11-26 15:37:58 +09:00
Dean Herbert
40d1b97af1 Avoid attempting to fetch a non-managed RealmLive instance from the realm backing
For compatibility reasons, we quite often convert completely unmanaged
instances to `ILive`s so they fit the required parameters of a property
or method call. This ensures such cases will not cause any issues when
trying to interact with the underlying data.

Originally I had this allowing write operations, but that seems a bit
unsafe (when performing a write one would assume that the underlying
data is being persisted, whereas in this case it is not). We can change
this if the requirements change in the future, but I think throwing is
the safest bet for now.
2021-11-26 15:06:14 +09:00
Dean Herbert
13612c0d02 Add equality support to ILive types 2021-11-26 14:56:16 +09:00
Dean Herbert
183b95cbc2 Rename BeatmapSetOnlineStatus to BeatmapOnlineStatus
This variable is used at more than just a set level.
2021-11-24 18:42:49 +09:00
Dean Herbert
1cdfa6d9a0 Add helper property to access a realm beatmap's beatmap file 2021-11-22 15:30:11 +09:00
Dean Herbert
59e763467f Move StoragePath implementation to an extension method 2021-11-19 16:08:38 +09:00
Dean Herbert
5345018d4c Add test coverage of failed imports 2021-11-12 16:12:44 +09:00
Susko3
c3069ad002 Change to use ReadableKeyCombinationProvider
Changes all usages of `KeyCombination.ReadableString()` to
`ReadableKeyCombinationProvider.GetReadableString()`.

Subscribing to `KeymapChanged` is only required in `KeyButton`.
All other places query `GetReadableString()` every time.
2021-11-08 06:55:26 +01:00
Dean Herbert
86540d1fb6 Update existing usages of Author as string to access Username directly 2021-11-04 18:57:54 +09:00
Dean Herbert
6944151486 Apply batch fixing of built-in types using var 2021-10-27 13:04:41 +09:00
Dean Herbert
b3219bb592 Update usages of OnlineID 2021-10-18 16:16:36 +09:00
Dean Herbert
b2f9f8b8da Update logic surrounding removal of previous OnlineIDs when running a new import 2021-10-18 15:14:13 +09:00
Dean Herbert
49969ac328 Add beatmap import and file store tests 2021-10-15 17:07:34 +09:00
Dan Balasescu
56758435ee
Merge pull request #15043 from peppy/realm-ruleset-store
Add realm `RulesetStore`
2021-10-15 16:49:48 +09:00
Dan Balasescu
a781930135
Merge pull request #15042 from peppy/realm-live
Add realm `Live<T>` implementation
2021-10-13 17:01:02 +09:00
Dean Herbert
db5099de3a Add missing licence header 2021-10-13 15:45:01 +09:00
Dean Herbert
0daa836ecc Add realm RulesetStore
Not yet used in game.
2021-10-11 15:57:33 +09:00
Dean Herbert
81a0fbfc40 Add Live<> casting test 2021-10-11 15:36:41 +09:00
Dean Herbert
b01d82b3fd Add RealmLive implementation 2021-10-11 15:36:41 +09:00
Dean Herbert
03bf88ae81 Add realm FileStore and test coverage 2021-10-11 15:26:16 +09:00
Dean Herbert
b946011292 Update tests to run inside a GameHost to allow running on update thread 2021-10-11 15:19:18 +09:00
Dean Herbert
537b29654e Fix stream being held open causing windows CI failures 2021-10-04 14:30:22 +09:00
Dean Herbert
6ec2223b5c Catch potential file access exceptions also in async flow 2021-10-02 23:01:44 +09:00
Dean Herbert
b5345235ca Handle window file access errors 2021-10-01 10:40:55 +09:00
Dean Herbert
9c0abae2b0 Add failing test coverage of realm blocking behaviour 2021-10-01 01:20:06 +09:00
Dean Herbert
9fa901f6aa Refine RealmContext implementation API 2021-09-30 23:56:38 +09:00
Dean Herbert
5b13b566b5 Reduce startup overhead during default key binding handling 2021-09-07 15:19:23 +09:00
Dean Herbert
3ec7dc3bb9 Update tests in line with thread safety check 2021-07-04 17:59:39 +09:00
Dean Herbert
3e366b1f15 Ensure the main realm context is closed when the factory is disposed 2021-01-15 14:26:06 +09:00
Dean Herbert
693602513e Update test to use GetForWrite 2021-01-15 14:22:48 +09:00
Dean Herbert
fcb4a53f37 Rename realm persisted properties to avoid casting necessity 2021-01-13 18:36:37 +09:00
Dean Herbert
9086d75542 Update write usages 2021-01-13 18:36:37 +09:00
Dean Herbert
9d744d629f Update existing usages to use the main realm context where applicable 2021-01-13 18:36:37 +09:00
Dean Herbert
192e58e0c6 Update all read queries to use direct realm subscriptions/queries 2021-01-13 18:36:37 +09:00
Dean Herbert
765d9cfae1 Use direct access for query pattern 2021-01-12 17:01:40 +09:00
Dean Herbert
9a5410e5d2 Add basic test coverage 2021-01-12 15:21:02 +09:00