-
-
Notifications
You must be signed in to change notification settings - Fork 2.5k
Make Song Select v2 the new default #33970
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This is being run in the flow where we are providing a specific beatmap for immediately selection. In an edge case scenario, the carousel may be pending on a filter operation, which would cause the whole `SelectAndRun` call to fail when it doesn't need to. This is reproduced by multiple test scenes. One example is `TestSceneOpenEditorTimestamp.TestErrorNotifications`.
a40b622
to
94d6260
Compare
@@ -81,11 +81,9 @@ public void TestFromSongSelectDifferentRulesetWithConvertDisallowed() | |||
presentAndConfirm(osuImport); | |||
|
|||
var maniaImport = importBeatmap(2, new ManiaRuleset().RulesetInfo); | |||
confirmBeatmapInSongSelect(maniaImport); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This was confirming panel presence, which is no longer a thing because panels which are filtered away do not get created upfront.
First run overlay has a weird issue, footer not displaying and logo in wrong place: Fixed via 46dab76 |
|
||
AddStep("Present same beatmap", () => Game.PresentBeatmap(Game.BeatmapManager.QueryBeatmapSet(set => set.ID == beatmapSetGuid)!.Value, beatmap => beatmap.ID == beatmapGuid)); | ||
AddUntilStep("Wait for beatmap selected", () => Game.Beatmap.Value.BeatmapInfo.ID == beatmapGuid); | ||
AddStep("Open options", () => InputManager.Key(Key.F3)); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Still have to fix these hotkeys no longer aligning. Took the easier way out for now though.
tests timed out... 🙈 |
Timeouts will be related to
|
Disposal woes.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would describe review experience as 'not great not terrible'
-2k net diffstat though 🙌🙌🙌🙌
if (!ensureGlobalBeatmapValid()) | ||
return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this removed call is referenced in a commit a few lines above that should probably be trimmed
osu/osu.Game/Screens/SelectV2/SongSelect.cs
Lines 421 to 424 in 579b547
// `ensureGlobalBeatmapValid` also performs this checks, but it will change the active selection on fail. | |
// By checking locally first, we can correctly perform a no-op rather than changing selection. | |
if (!checkBeatmapValidForSelection(beatmap, carousel.Criteria)) | |
return; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
i'm choosing to trust that all relevant tests from here have already been ported for song select v2 and am not double checking it
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I did one pass but it wasn't exhaustive. I'll do a second pass tomorrow comparing test-for-test.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one is an absolute clusterfuck as expected. And I'm not sure what the forward path here is. Probably need to go through one-by-one on the removed methods and check whether we want to add back coverage?
Would you rather that's done in this PR or separately? My preference would be opening an issue tracking this separately so it's not blocking this already-delayed task of getting song select out on tachyon as default.
diff --git a/test_comparison b/test_comparison
index e66df27cc2..8c57a07f8f 100644
--- a/test_comparison
+++ b/test_comparison
@@ -1,46 +1,25 @@
-TestScenePlaySongSelect
+TestSceneSongSelect
-TestAudioRemainsCorrectOnRulesetChange(bool rulesetsInSameBeatmap)
-TestAudioResuming()
TestAutoplayShortcut()
TestAutoplayShortcutKeepsAutoplayIfSelectedAlready()
TestAutoplayShortcutReturnsInitialModsOnExit()
-TestBeatmapOptionsDisabled()
-TestCarouselSelectionUpdatesOnResume()
-TestChangeBeatmapAfterEnter()
-TestChangeBeatmapBeforeEnter()
-TestChangeBeatmapViaMouseAfterEnter()
-TestChangeBeatmapViaMouseBeforeEnter()
-TestChangeBeatmapWhilePresentingScore()
-TestChangeRulesetWhilePresentingScore()
-TestChangingRulesetOnMultiRulesetBeatmap()
-TestCutInFilterTextBox()
+TestClearModsViaModButtonRightClick()
+TestCookieDoesNothingIfNothingSelected()
TestDeleteHotkey()
-TestDifficultyIconSelecting()
-TestDifficultyIconSelectingForDifferentRuleset()
-TestDummy()
-TestExternalBeatmapChangeWhileFiltered(bool differentRuleset)
-TestExternalBeatmapChangeWhileFilteredThenRefilter()
-TestFilterOnResumeAfterChange()
-TestFilterableModChange()
-TestGroupedDifficultyIconSelecting()
-TestHardDeleteHandledCorrectly()
-TestHideSetSelectsCorrectBeatmap()
-TestImportUnderCurrentRuleset()
-TestImportUnderDifferentRuleset()
-TestModOverlayToggling()
-TestModsRetainedBetweenSongSelect()
-TestNoFilterOnSimpleResume()
-TestNonFilterableModChange()
-TestPlaceholderBeatmapPresence()
-TestPlaceholderConvertSetting()
-TestPlaceholderStarDifficulty()
-TestPresentNewBeatmapNewRuleset()
-TestPresentNewRulesetNewBeatmap()
-TestSearchTextWithRulesetCriteria()
-TestSelectionRetainedOnBeatmapUpdate()
-TestSingleFilterOnEnter()
-TestSorting()
+TestFooterModOverlay()
+TestFooterMods()
+TestFooterOptions()
+TestFooterOptionsState()
+TestFooterRandom()
+TestFooterRandomViaMouse()
+TestFooterRewind()
+TestFooterRewindViaMouseRight()
+TestFooterRewindViaShiftMouseLeft()
+TestInvalidRulesetDoesNotEnterGameplay()
+TestModSelectCannotBeOpenedAfterConfirmingSelection()
+TestResultsScreenWhenClickingLeaderboardScore()
+TestSelectAfterDeletion()
+TestSelectionChangedFromProtectedToNone()
+TestSelectionChangedFromProtectedToSomething()
+TestSingleFilterWhenEntering()
TestSpeedChange()
-TestStartAfterUnMatchingFilterDoesNotStart()
-TestTextBoxBeatmapDifficultyCount()
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm fine doing this separately as long as it's tracked.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tracking at #33978.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here, trusting the new one has comparable coverage here
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This one has 100% coverage (one new test)
diff --git a/test_comparison b/test_comparison
index fc96594abc..205a2ba503 100644
--- a/test_comparison
+++ b/test_comparison
@@ -1,4 +1,4 @@
-TestSceneBeatmapLeaderboard
+TestSceneBeatmapLeaderboardWedge
TestPersonalBest()
TestGlobalScoresDisplay()
@@ -7,3 +7,4 @@ TestLocalScoresDisplayWorksWhenStartingOffline()
TestLocalScoresDisplayOnBeatmapEdit()
TestPlaceholderStates()
TestUseTheseModsDoesNotCopySystemMods()
+TestPersonalBestWithNullPosition()
There are still multiple issues with the new song select, but the most critical ones will be fixed before the next mainstream release. In the mean time, getting the new version in front of devs and (tachyon) users is a good next step.
I can imagine this is going to be a classified in the "painful review" category, but the majority of the changes are in test logic. I did have to refactor or rewrite multiple tests (and delete a few) in order to account for intentional behavioural differences.
The two non-test behavioural changes (562c637 and f8e8041) fix tests which failed after being migrated to v2, where the old behaviours were expected but not implemented yet in v2.