From 027d71ffd8b7886c1c5c05adacde5f8ab96053c6 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 21 Nov 2016 12:34:03 +0900 Subject: [PATCH 1/2] Fix unit tests failing. --- .../Beatmaps/IO/ImportBeatmapTest.cs | 32 ++++++++++--------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs b/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs index 7acbdbf3d9..37d89b6497 100644 --- a/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs +++ b/osu.Game.Tests/Beatmaps/IO/ImportBeatmapTest.cs @@ -35,29 +35,31 @@ namespace osu.Game.Tests.Beatmaps.IO public void TestImportWhenClosed() { //unfortunately for the time being we need to reference osu.Framework.Desktop for a game host here. - HeadlessGameHost host = new HeadlessGameHost(); - - var osu = loadOsu(host); - osu.Dependencies.Get().Import(osz_path); - ensureLoaded(osu); + using (HeadlessGameHost host = new HeadlessGameHost()) + { + var osu = loadOsu(host); + osu.Dependencies.Get().Import(osz_path); + ensureLoaded(osu); + } } [Test] public void TestImportOverIPC() { - HeadlessGameHost host = new HeadlessGameHost("host", true); - HeadlessGameHost client = new HeadlessGameHost("client", true); + using (HeadlessGameHost host = new HeadlessGameHost("host", true)) + using (HeadlessGameHost client = new HeadlessGameHost("client", true)) + { + Assert.IsTrue(host.IsPrimaryInstance); + Assert.IsTrue(!client.IsPrimaryInstance); - Assert.IsTrue(host.IsPrimaryInstance); - Assert.IsTrue(!client.IsPrimaryInstance); + var osu = loadOsu(host); - var osu = loadOsu(host); + var importer = new BeatmapImporter(client); + if (!importer.Import(osz_path).Wait(1000)) + Assert.Fail(@"IPC took too long to send"); - var importer = new BeatmapImporter(client); - if (!importer.Import(osz_path).Wait(1000)) - Assert.Fail(@"IPC took too long to send"); - - ensureLoaded(osu, 10000); + ensureLoaded(osu, 10000); + } } private OsuGameBase loadOsu(BasicGameHost host) From 41a84ba00caca2beda16a5bbf7fdf64e30279e21 Mon Sep 17 00:00:00 2001 From: Dean Herbert Date: Mon, 21 Nov 2016 21:35:10 +0900 Subject: [PATCH 2/2] Add finalizer logic for WorkingBeatmap for now. --- osu.Game/Beatmaps/WorkingBeatmap.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/osu.Game/Beatmaps/WorkingBeatmap.cs b/osu.Game/Beatmaps/WorkingBeatmap.cs index f2f4a39d91..d06ad50b8a 100644 --- a/osu.Game/Beatmaps/WorkingBeatmap.cs +++ b/osu.Game/Beatmaps/WorkingBeatmap.cs @@ -89,6 +89,12 @@ namespace osu.Game.Beatmaps set { lock (trackLock) track = value; } } + + ~WorkingBeatmap() + { + Dispose(false); + } + public WorkingBeatmap(Beatmap beatmap) { this.beatmap = beatmap; @@ -116,6 +122,7 @@ namespace osu.Game.Beatmaps public void Dispose() { Dispose(true); + GC.SuppressFinalize(this); } public void TransferTo(WorkingBeatmap working)