From 4588b2da10bd28d233b2197e2f7d0a8e813cfdc0 Mon Sep 17 00:00:00 2001 From: Deukhoofd Date: Fri, 23 Sep 2022 20:18:52 +0200 Subject: [PATCH] Fixes some potential memory leaks in unit tests, cleanup --- PkmnLibRSharp/PkmnLibRSharp.csproj | 6 ++++++ PkmnLibRSharp/Utils/ExternPointer.cs | 11 +++-------- PkmnLibRSharpTests/PkmnLibRSharpTests.csproj | 6 ++++++ PkmnLibRSharpTests/StaticData/FormTests.cs | 8 ++++---- .../StaticData/Libraries/SpeciesLibraryTests.cs | 9 +++++---- PkmnLibRSharpTests/StaticData/NatureTests.cs | 2 +- PkmnLibRSharpTests/StaticData/SpeciesTests.cs | 7 ++++--- 7 files changed, 29 insertions(+), 20 deletions(-) diff --git a/PkmnLibRSharp/PkmnLibRSharp.csproj b/PkmnLibRSharp/PkmnLibRSharp.csproj index 83b4963..62138a8 100644 --- a/PkmnLibRSharp/PkmnLibRSharp.csproj +++ b/PkmnLibRSharp/PkmnLibRSharp.csproj @@ -7,6 +7,12 @@ enable + + 6 + true + ;NU1605;CA2000 + + PreserveNewest diff --git a/PkmnLibRSharp/Utils/ExternPointer.cs b/PkmnLibRSharp/Utils/ExternPointer.cs index e4532aa..7986086 100644 --- a/PkmnLibRSharp/Utils/ExternPointer.cs +++ b/PkmnLibRSharp/Utils/ExternPointer.cs @@ -49,8 +49,8 @@ namespace PkmnLibSharp.Utils return _ptr; } } - - internal IntPtr TakeOwnership() + + private IntPtr TakeOwnership() { if (!_isOwner) { @@ -67,17 +67,12 @@ namespace PkmnLibSharp.Utils return ptr; } - internal void Invalidate() + private void Invalidate() { _isInvalidated = true; CacheHandler.RemoveCache(_ptr); } - ~ExternPointer() - { - Dispose(); - } - public void Dispose() { if (_isDisposed) diff --git a/PkmnLibRSharpTests/PkmnLibRSharpTests.csproj b/PkmnLibRSharpTests/PkmnLibRSharpTests.csproj index 5f9dcb8..a05dceb 100644 --- a/PkmnLibRSharpTests/PkmnLibRSharpTests.csproj +++ b/PkmnLibRSharpTests/PkmnLibRSharpTests.csproj @@ -7,6 +7,12 @@ false + + TRACE + true + ;NU1605;CA2000 + + diff --git a/PkmnLibRSharpTests/StaticData/FormTests.cs b/PkmnLibRSharpTests/StaticData/FormTests.cs index 02263c4..fbc754a 100644 --- a/PkmnLibRSharpTests/StaticData/FormTests.cs +++ b/PkmnLibRSharpTests/StaticData/FormTests.cs @@ -9,9 +9,10 @@ namespace PkmnLibRSharpTests.StaticData [Test] public void BasicTests() { - using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, - new StaticStatisticSet(5, 10, 30, 20, 2, 0), new[] { "foo", "bar" }, new[] { "set" }, - new LearnableMoves(), Array.Empty()); + using var stats = new StaticStatisticSet(5, 10, 30, 20, 2, 0); + using var moves = new LearnableMoves(); + using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats, + new[] { "foo", "bar" }, new[] { "set" }, moves, Array.Empty()); Assert.AreEqual("foobar", form.Name); Assert.AreEqual(0.2f, form.Height, 0.00001f); Assert.AreEqual(5.8f, form.Weight, 0.00001f); @@ -22,7 +23,6 @@ namespace PkmnLibRSharpTests.StaticData Assert.AreEqual("foo", form.Abilities[0]); Assert.AreEqual("bar", form.Abilities[1]); Assert.AreEqual("set", form.HiddenAbilities[0]); - } } } \ No newline at end of file diff --git a/PkmnLibRSharpTests/StaticData/Libraries/SpeciesLibraryTests.cs b/PkmnLibRSharpTests/StaticData/Libraries/SpeciesLibraryTests.cs index 0076df6..f780661 100644 --- a/PkmnLibRSharpTests/StaticData/Libraries/SpeciesLibraryTests.cs +++ b/PkmnLibRSharpTests/StaticData/Libraries/SpeciesLibraryTests.cs @@ -13,15 +13,16 @@ namespace PkmnLibRSharpTests.StaticData.Libraries using var lib = new SpeciesLibrary(0); Assert.AreEqual(0, lib.Length); } - + [Test] public void CreateAndAdd() { using var lib = new SpeciesLibrary(0); Assert.AreEqual(0, lib.Length); - using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, - new StaticStatisticSet(5, 10, 30, 20, 2, 0), new[] { "foo", "bar" }, new[] { "set" }, - new LearnableMoves(), Array.Empty()); + using var stats = new StaticStatisticSet(5, 10, 30, 20, 2, 0); + using var moves = new LearnableMoves(); + using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats, + new[] { "foo", "bar" }, new[] { "set" }, moves, Array.Empty()); using var species = new Species(10, "testSpecies", 0.2f, "growth", 120, form, Array.Empty()); lib.Add("foobar", species); Assert.AreEqual(1, lib.Length); diff --git a/PkmnLibRSharpTests/StaticData/NatureTests.cs b/PkmnLibRSharpTests/StaticData/NatureTests.cs index 39e7ea8..5405452 100644 --- a/PkmnLibRSharpTests/StaticData/NatureTests.cs +++ b/PkmnLibRSharpTests/StaticData/NatureTests.cs @@ -11,7 +11,7 @@ namespace PkmnLibRSharpTests.StaticData [Values] Statistic decreasedStat ) { - var nature = new Nature(increasedStat, decreasedStat); + using var nature = new Nature(increasedStat, decreasedStat); Assert.AreEqual(increasedStat, nature.IncreasedStat); Assert.AreEqual(decreasedStat, nature.DecreasedStat); if (increasedStat == decreasedStat) diff --git a/PkmnLibRSharpTests/StaticData/SpeciesTests.cs b/PkmnLibRSharpTests/StaticData/SpeciesTests.cs index 75f783a..2b79ce8 100644 --- a/PkmnLibRSharpTests/StaticData/SpeciesTests.cs +++ b/PkmnLibRSharpTests/StaticData/SpeciesTests.cs @@ -9,9 +9,10 @@ namespace PkmnLibRSharpTests.StaticData [Test] public void BasicTests() { - using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, - new StaticStatisticSet(5, 10, 30, 20, 2, 0), new[] { "foo", "bar" }, new[] { "set" }, - new LearnableMoves(), Array.Empty()); + using var stats = new StaticStatisticSet(5, 10, 30, 20, 2, 0); + using var moves = new LearnableMoves(); + using var form = new Form("foobar", 0.2f, 5.8f, 300, new TypeIdentifier[] { new(1), new(2) }, stats, + new[] { "foo", "bar" }, new[] { "set" }, moves, Array.Empty()); using var species = new Species(10, "testSpecies", 0.2f, "growth", 120, form, Array.Empty()); Assert.AreEqual(10, species.Id); Assert.AreEqual("testSpecies", species.Name);