mirror of
https://github.com/osukey/osukey.git
synced 2025-07-01 16:29:58 +09:00
Bring VisualTests up-to-date.
This commit is contained in:
Submodule osu-framework updated: 415884e7e1...50b62716b1
@ -13,10 +13,10 @@ using osu.Game.Modes.Taiko;
|
|||||||
namespace osu.Desktop.Tests
|
namespace osu.Desktop.Tests
|
||||||
{
|
{
|
||||||
[TestFixture]
|
[TestFixture]
|
||||||
public class BenchmarkTest
|
public class VisualTests
|
||||||
{
|
{
|
||||||
[Test]
|
[Test]
|
||||||
public void TestBenchmark()
|
public void TestVisualTests()
|
||||||
{
|
{
|
||||||
using (var host = new HeadlessGameHost())
|
using (var host = new HeadlessGameHost())
|
||||||
{
|
{
|
||||||
@ -25,7 +25,7 @@ namespace osu.Desktop.Tests
|
|||||||
Ruleset.Register(new ManiaRuleset());
|
Ruleset.Register(new ManiaRuleset());
|
||||||
Ruleset.Register(new CatchRuleset());
|
Ruleset.Register(new CatchRuleset());
|
||||||
|
|
||||||
host.Run(new Benchmark());
|
host.Run(new AutomatedVisualTestGame());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -56,7 +56,7 @@
|
|||||||
</Reference>
|
</Reference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="BenchmarkTest.cs" />
|
<Compile Include="VisualTests.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<ProjectReference Include="..\osu-framework\osu.Framework.Desktop\osu.Framework.Desktop.csproj">
|
<ProjectReference Include="..\osu-framework\osu.Framework.Desktop\osu.Framework.Desktop.csproj">
|
||||||
|
16
osu.Desktop.VisualTests/AutomatedVisualTestGame.cs
Normal file
16
osu.Desktop.VisualTests/AutomatedVisualTestGame.cs
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
||||||
|
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
||||||
|
|
||||||
|
using osu.Framework.Testing;
|
||||||
|
using osu.Game;
|
||||||
|
|
||||||
|
namespace osu.Desktop.VisualTests
|
||||||
|
{
|
||||||
|
public class AutomatedVisualTestGame : OsuGameBase
|
||||||
|
{
|
||||||
|
public AutomatedVisualTestGame()
|
||||||
|
{
|
||||||
|
Add(new TestRunner(new TestBrowser()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,45 +0,0 @@
|
|||||||
// Copyright (c) 2007-2017 ppy Pty Ltd <contact@ppy.sh>.
|
|
||||||
// Licensed under the MIT Licence - https://raw.githubusercontent.com/ppy/osu/master/LICENCE
|
|
||||||
|
|
||||||
using System;
|
|
||||||
using osu.Framework.Allocation;
|
|
||||||
using osu.Framework.Testing;
|
|
||||||
using osu.Game;
|
|
||||||
|
|
||||||
namespace osu.Desktop.VisualTests
|
|
||||||
{
|
|
||||||
public class Benchmark : OsuGameBase
|
|
||||||
{
|
|
||||||
private const double time_per_test = 200;
|
|
||||||
|
|
||||||
[BackgroundDependencyLoader]
|
|
||||||
private void load()
|
|
||||||
{
|
|
||||||
Host.MaximumDrawHz = int.MaxValue;
|
|
||||||
Host.MaximumUpdateHz = int.MaxValue;
|
|
||||||
Host.MaximumInactiveHz = int.MaxValue;
|
|
||||||
}
|
|
||||||
|
|
||||||
protected override void LoadComplete()
|
|
||||||
{
|
|
||||||
base.LoadComplete();
|
|
||||||
|
|
||||||
TestBrowser f = new TestBrowser();
|
|
||||||
Add(f);
|
|
||||||
|
|
||||||
Console.WriteLine($@"{Time}: Running {f.TestCount} tests for {time_per_test}ms each...");
|
|
||||||
|
|
||||||
for (int i = 1; i < f.TestCount; i++)
|
|
||||||
{
|
|
||||||
int loadableCase = i;
|
|
||||||
Scheduler.AddDelayed(delegate
|
|
||||||
{
|
|
||||||
f.LoadTest(loadableCase);
|
|
||||||
Console.WriteLine($@"{Time}: Switching to test #{loadableCase}");
|
|
||||||
}, loadableCase * time_per_test);
|
|
||||||
}
|
|
||||||
|
|
||||||
Scheduler.AddDelayed(Host.Exit, f.TestCount * time_per_test);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -27,7 +27,7 @@ namespace osu.Desktop.VisualTests
|
|||||||
Ruleset.Register(new CatchRuleset());
|
Ruleset.Register(new CatchRuleset());
|
||||||
|
|
||||||
if (benchmark)
|
if (benchmark)
|
||||||
host.Run(new Benchmark());
|
host.Run(new AutomatedVisualTestGame());
|
||||||
else
|
else
|
||||||
host.Run(new VisualTestGame());
|
host.Run(new VisualTestGame());
|
||||||
}
|
}
|
||||||
|
@ -26,7 +26,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
|
|
||||||
Add(overlay);
|
Add(overlay);
|
||||||
|
|
||||||
AddButton(@"Toggle", overlay.ToggleVisibility);
|
AddStep(@"Toggle", overlay.ToggleVisibility);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -20,7 +20,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
|
|
||||||
Add(overlay = new DialogOverlay());
|
Add(overlay = new DialogOverlay());
|
||||||
|
|
||||||
AddButton("dialog #1", () => overlay.Push(new PopupDialog
|
AddStep("dialog #1", () => overlay.Push(new PopupDialog
|
||||||
{
|
{
|
||||||
Icon = FontAwesome.fa_trash_o,
|
Icon = FontAwesome.fa_trash_o,
|
||||||
HeaderText = @"Confirm deletion of",
|
HeaderText = @"Confirm deletion of",
|
||||||
@ -40,7 +40,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
},
|
},
|
||||||
}));
|
}));
|
||||||
|
|
||||||
AddButton("dialog #2", () => overlay.Push(new PopupDialog
|
AddStep("dialog #2", () => overlay.Push(new PopupDialog
|
||||||
{
|
{
|
||||||
Icon = FontAwesome.fa_gear,
|
Icon = FontAwesome.fa_gear,
|
||||||
HeaderText = @"What do you want to do with",
|
HeaderText = @"What do you want to do with",
|
||||||
|
@ -93,19 +93,28 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
|
|
||||||
playbackSpeed.TriggerChange();
|
playbackSpeed.TriggerChange();
|
||||||
|
|
||||||
AddButton(@"circles", () => load(HitObjectType.Circle));
|
AddStep(@"circles", () => load(HitObjectType.Circle));
|
||||||
AddButton(@"slider", () => load(HitObjectType.Slider));
|
AddStep(@"slider", () => load(HitObjectType.Slider));
|
||||||
AddButton(@"spinner", () => load(HitObjectType.Spinner));
|
AddStep(@"spinner", () => load(HitObjectType.Spinner));
|
||||||
|
|
||||||
AddToggle(@"auto", state => { auto = state; load(mode); });
|
AddToggleStep(@"auto", state => { auto = state; load(mode); });
|
||||||
|
|
||||||
ButtonsContainer.Add(new SpriteText { Text = "Playback Speed" });
|
Add(new Container
|
||||||
ButtonsContainer.Add(new BasicSliderBar<double>
|
|
||||||
{
|
{
|
||||||
Width = 150,
|
Anchor = Anchor.TopRight,
|
||||||
Height = 10,
|
Origin = Anchor.TopRight,
|
||||||
SelectionColor = Color4.Orange,
|
AutoSizeAxes = Axes.Both,
|
||||||
Bindable = playbackSpeed
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
new SpriteText { Text = "Playback Speed" },
|
||||||
|
new BasicSliderBar<double>
|
||||||
|
{
|
||||||
|
Width = 150,
|
||||||
|
Height = 10,
|
||||||
|
SelectionColor = Color4.Orange,
|
||||||
|
Bindable = playbackSpeed
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
framedClock.ProcessFrame();
|
framedClock.ProcessFrame();
|
||||||
|
@ -6,6 +6,7 @@ using osu.Framework.Graphics;
|
|||||||
using OpenTK.Input;
|
using OpenTK.Input;
|
||||||
using osu.Framework.Graphics.UserInterface;
|
using osu.Framework.Graphics.UserInterface;
|
||||||
using osu.Framework.Configuration;
|
using osu.Framework.Configuration;
|
||||||
|
using osu.Framework.Graphics.Containers;
|
||||||
using OpenTK;
|
using OpenTK;
|
||||||
using OpenTK.Graphics;
|
using OpenTK.Graphics;
|
||||||
using osu.Framework.MathUtils;
|
using osu.Framework.MathUtils;
|
||||||
@ -37,19 +38,30 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
};
|
};
|
||||||
BindableInt bindable = new BindableInt { MinValue = 0, MaxValue = 200, Default = 50 };
|
BindableInt bindable = new BindableInt { MinValue = 0, MaxValue = 200, Default = 50 };
|
||||||
bindable.ValueChanged += delegate { kc.FadeTime = bindable.Value; };
|
bindable.ValueChanged += delegate { kc.FadeTime = bindable.Value; };
|
||||||
AddButton("Add Random", () =>
|
AddStep("Add Random", () =>
|
||||||
{
|
{
|
||||||
Key key = (Key)((int)Key.A + RNG.Next(26));
|
Key key = (Key)((int)Key.A + RNG.Next(26));
|
||||||
kc.Add(new KeyCounterKeyboard(key));
|
kc.Add(new KeyCounterKeyboard(key));
|
||||||
});
|
});
|
||||||
ButtonsContainer.Add(new SpriteText { Text = "FadeTime" });
|
|
||||||
ButtonsContainer.Add(new TestSliderBar<int>
|
Add(new Container
|
||||||
{
|
{
|
||||||
Width = 150,
|
Anchor = Anchor.TopRight,
|
||||||
Height = 10,
|
Origin = Anchor.TopRight,
|
||||||
SelectionColor = Color4.Orange,
|
AutoSizeAxes = Axes.Both,
|
||||||
Bindable = bindable
|
Children = new Drawable[]
|
||||||
|
{
|
||||||
|
new SpriteText { Text = "FadeTime" },
|
||||||
|
new TestSliderBar<int>
|
||||||
|
{
|
||||||
|
Width = 150,
|
||||||
|
Height = 10,
|
||||||
|
SelectionColor = Color4.Orange,
|
||||||
|
Bindable = bindable
|
||||||
|
}
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
Add(kc);
|
Add(kc);
|
||||||
}
|
}
|
||||||
private class TestSliderBar<T> : SliderBar<T> where T : struct
|
private class TestSliderBar<T> : SliderBar<T> where T : struct
|
||||||
|
@ -218,7 +218,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
Size = new Vector2(550f, 450f),
|
Size = new Vector2(550f, 450f),
|
||||||
});
|
});
|
||||||
|
|
||||||
AddButton(@"New Scores", newScores);
|
AddStep(@"New Scores", newScores);
|
||||||
newScores();
|
newScores();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -25,11 +25,11 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
Anchor = Anchor.BottomCentre,
|
Anchor = Anchor.BottomCentre,
|
||||||
});
|
});
|
||||||
|
|
||||||
AddButton("Toggle", modSelect.ToggleVisibility);
|
AddStep("Toggle", modSelect.ToggleVisibility);
|
||||||
AddButton("osu!", () => modSelect.PlayMode.Value = PlayMode.Osu);
|
AddStep("osu!", () => modSelect.PlayMode.Value = PlayMode.Osu);
|
||||||
AddButton("osu!taiko", () => modSelect.PlayMode.Value = PlayMode.Taiko);
|
AddStep("osu!taiko", () => modSelect.PlayMode.Value = PlayMode.Taiko);
|
||||||
AddButton("osu!catch", () => modSelect.PlayMode.Value = PlayMode.Catch);
|
AddStep("osu!catch", () => modSelect.PlayMode.Value = PlayMode.Catch);
|
||||||
AddButton("osu!mania", () => modSelect.PlayMode.Value = PlayMode.Mania);
|
AddStep("osu!mania", () => modSelect.PlayMode.Value = PlayMode.Mania);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,7 +30,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
Anchor = Anchor.Centre
|
Anchor = Anchor.Centre
|
||||||
};
|
};
|
||||||
Add(mc);
|
Add(mc);
|
||||||
AddToggle(@"Show", state => mc.State = state ? Visibility.Visible : Visibility.Hidden);
|
AddToggleStep(@"Show", state => mc.State = state ? Visibility.Visible : Visibility.Hidden);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -30,13 +30,13 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
Origin = Anchor.TopRight,
|
Origin = Anchor.TopRight,
|
||||||
});
|
});
|
||||||
|
|
||||||
AddToggle(@"show", state => manager.State = state ? Visibility.Visible : Visibility.Hidden);
|
AddToggleStep(@"show", state => manager.State = state ? Visibility.Visible : Visibility.Hidden);
|
||||||
|
|
||||||
AddButton(@"simple #1", sendNotification1);
|
AddStep(@"simple #1", sendNotification1);
|
||||||
AddButton(@"simple #2", sendNotification2);
|
AddStep(@"simple #2", sendNotification2);
|
||||||
AddButton(@"progress #1", sendProgress1);
|
AddStep(@"progress #1", sendProgress1);
|
||||||
AddButton(@"progress #2", sendProgress2);
|
AddStep(@"progress #2", sendProgress2);
|
||||||
AddButton(@"barrage", () => sendBarrage());
|
AddStep(@"barrage", () => sendBarrage());
|
||||||
}
|
}
|
||||||
|
|
||||||
private void sendBarrage(int remaining = 100)
|
private void sendBarrage(int remaining = 100)
|
||||||
|
@ -25,8 +25,8 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
OnRetry = () => Logger.Log(@"Retry"),
|
OnRetry = () => Logger.Log(@"Retry"),
|
||||||
OnQuit = () => Logger.Log(@"Quit")
|
OnQuit = () => Logger.Log(@"Quit")
|
||||||
});
|
});
|
||||||
AddButton("Pause", pauseOverlay.Show);
|
AddStep("Pause", pauseOverlay.Show);
|
||||||
AddButton("Add Retry", delegate
|
AddStep("Add Retry", delegate
|
||||||
{
|
{
|
||||||
retryCount++;
|
retryCount++;
|
||||||
pauseOverlay.Retries = retryCount;
|
pauseOverlay.Retries = retryCount;
|
||||||
|
@ -23,12 +23,10 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
public override void Reset()
|
public override void Reset()
|
||||||
{
|
{
|
||||||
base.Reset();
|
base.Reset();
|
||||||
oldDb = Dependencies.Get<BeatmapDatabase>();
|
|
||||||
if (db == null)
|
if (db == null)
|
||||||
{
|
{
|
||||||
storage = new TestStorage(@"TestCasePlaySongSelect");
|
storage = new TestStorage(@"TestCasePlaySongSelect");
|
||||||
db = new BeatmapDatabase(storage);
|
db = new BeatmapDatabase(storage);
|
||||||
Dependencies.Cache(db, true);
|
|
||||||
|
|
||||||
var sets = new List<BeatmapSetInfo>();
|
var sets = new List<BeatmapSetInfo>();
|
||||||
|
|
||||||
@ -40,19 +38,16 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
|
|
||||||
Add(songSelect = new PlaySongSelect());
|
Add(songSelect = new PlaySongSelect());
|
||||||
|
|
||||||
AddButton(@"Sort by Artist", delegate { songSelect.FilterControl.Sort = SortMode.Artist; });
|
AddStep(@"Sort by Artist", delegate { songSelect.FilterControl.Sort = SortMode.Artist; });
|
||||||
AddButton(@"Sort by Title", delegate { songSelect.FilterControl.Sort = SortMode.Title; });
|
AddStep(@"Sort by Title", delegate { songSelect.FilterControl.Sort = SortMode.Title; });
|
||||||
AddButton(@"Sort by Author", delegate { songSelect.FilterControl.Sort = SortMode.Author; });
|
AddStep(@"Sort by Author", delegate { songSelect.FilterControl.Sort = SortMode.Author; });
|
||||||
AddButton(@"Sort by Difficulty", delegate { songSelect.FilterControl.Sort = SortMode.Difficulty; });
|
AddStep(@"Sort by Difficulty", delegate { songSelect.FilterControl.Sort = SortMode.Difficulty; });
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void Dispose(bool isDisposing)
|
protected override void Dispose(bool isDisposing)
|
||||||
{
|
{
|
||||||
if (oldDb != null)
|
if (oldDb != null)
|
||||||
{
|
|
||||||
Dependencies.Cache(oldDb, true);
|
|
||||||
db = null;
|
db = null;
|
||||||
}
|
|
||||||
|
|
||||||
base.Dispose(isDisposing);
|
base.Dispose(isDisposing);
|
||||||
}
|
}
|
||||||
|
@ -68,7 +68,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
};
|
};
|
||||||
Add(starsLabel);
|
Add(starsLabel);
|
||||||
|
|
||||||
AddButton(@"Reset all", delegate
|
AddStep(@"Reset all", delegate
|
||||||
{
|
{
|
||||||
score.Current.Value = 0;
|
score.Current.Value = 0;
|
||||||
comboCounter.Current.Value = 0;
|
comboCounter.Current.Value = 0;
|
||||||
@ -78,7 +78,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
starsLabel.Text = stars.Count.ToString("0.00");
|
starsLabel.Text = stars.Count.ToString("0.00");
|
||||||
});
|
});
|
||||||
|
|
||||||
AddButton(@"Hit! :D", delegate
|
AddStep(@"Hit! :D", delegate
|
||||||
{
|
{
|
||||||
score.Current.Value += 300 + (ulong)(300.0 * (comboCounter.Current > 0 ? comboCounter.Current - 1 : 0) / 25.0);
|
score.Current.Value += 300 + (ulong)(300.0 * (comboCounter.Current > 0 ? comboCounter.Current - 1 : 0) / 25.0);
|
||||||
comboCounter.Increment();
|
comboCounter.Increment();
|
||||||
@ -86,20 +86,20 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
accuracyCounter.SetFraction(numerator, denominator);
|
accuracyCounter.SetFraction(numerator, denominator);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddButton(@"miss...", delegate
|
AddStep(@"miss...", delegate
|
||||||
{
|
{
|
||||||
comboCounter.Current.Value = 0;
|
comboCounter.Current.Value = 0;
|
||||||
denominator++;
|
denominator++;
|
||||||
accuracyCounter.SetFraction(numerator, denominator);
|
accuracyCounter.SetFraction(numerator, denominator);
|
||||||
});
|
});
|
||||||
|
|
||||||
AddButton(@"Alter stars", delegate
|
AddStep(@"Alter stars", delegate
|
||||||
{
|
{
|
||||||
stars.Count = RNG.NextSingle() * (stars.StarCount + 1);
|
stars.Count = RNG.NextSingle() * (stars.StarCount + 1);
|
||||||
starsLabel.Text = stars.Count.ToString("0.00");
|
starsLabel.Text = stars.Count.ToString("0.00");
|
||||||
});
|
});
|
||||||
|
|
||||||
AddButton(@"Stop counters", delegate
|
AddStep(@"Stop counters", delegate
|
||||||
{
|
{
|
||||||
score.StopRolling();
|
score.StopRolling();
|
||||||
comboCounter.StopRolling();
|
comboCounter.StopRolling();
|
||||||
|
@ -21,7 +21,7 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
{
|
{
|
||||||
base.Reset();
|
base.Reset();
|
||||||
|
|
||||||
AddToggle("Kiai", b =>
|
AddToggleStep("Kiai", b =>
|
||||||
{
|
{
|
||||||
kiai = !kiai;
|
kiai = !kiai;
|
||||||
Reset();
|
Reset();
|
||||||
|
@ -24,13 +24,13 @@ namespace osu.Desktop.VisualTests.Tests
|
|||||||
{
|
{
|
||||||
base.Reset();
|
base.Reset();
|
||||||
|
|
||||||
AddButton("Hit!", addHitJudgement);
|
AddStep("Hit!", addHitJudgement);
|
||||||
AddButton("Miss :(", addMissJudgement);
|
AddStep("Miss :(", addMissJudgement);
|
||||||
AddButton("Swell", addSwell);
|
AddStep("Swell", addSwell);
|
||||||
AddButton("Centre", () => addCentreHit(false));
|
AddStep("Centre", () => addCentreHit(false));
|
||||||
AddButton("Strong Centre", () => addCentreHit(true));
|
AddStep("Strong Centre", () => addCentreHit(true));
|
||||||
AddButton("Rim", () => addRimHit(false));
|
AddStep("Rim", () => addRimHit(false));
|
||||||
AddButton("Strong Rim", () => addRimHit(true));
|
AddStep("Strong Rim", () => addRimHit(true));
|
||||||
|
|
||||||
Add(new Container
|
Add(new Container
|
||||||
{
|
{
|
||||||
|
@ -184,7 +184,7 @@
|
|||||||
</ProjectReference>
|
</ProjectReference>
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Benchmark.cs" />
|
<Compile Include="AutomatedVisualTestGame.cs" />
|
||||||
<Compile Include="Program.cs" />
|
<Compile Include="Program.cs" />
|
||||||
<Compile Include="Tests\TestCaseChatDisplay.cs" />
|
<Compile Include="Tests\TestCaseChatDisplay.cs" />
|
||||||
<Compile Include="Tests\TestCaseDrawings.cs" />
|
<Compile Include="Tests\TestCaseDrawings.cs" />
|
||||||
|
Reference in New Issue
Block a user