From ee5c05d32136d97a6975acf84719889def9a3234 Mon Sep 17 00:00:00 2001 From: MaleDong Date: Mon, 30 Jul 2018 11:06:57 +0800 Subject: [PATCH] [Fix] Add "Disposible" interface for final release of resouces `_search` should release resouces because the file state is still open. --- .../IP2Region.Test.Benchmark/DbSearch_Test.cs | 4 ---- .../c#/IP2Region.Test.Benchmark/TestBase.cs | 6 ++---- binding/c#/IP2Region.Test.xUnit/SearchTest.cs | 20 +++++++++++-------- binding/c#/IP2Region_NetFx_Test/Program.cs | 12 +++++------ .../Properties/AssemblyInfo.cs | 1 - 5 files changed, 19 insertions(+), 24 deletions(-) diff --git a/binding/c#/IP2Region.Test.Benchmark/DbSearch_Test.cs b/binding/c#/IP2Region.Test.Benchmark/DbSearch_Test.cs index 5c38760..3d9161e 100644 --- a/binding/c#/IP2Region.Test.Benchmark/DbSearch_Test.cs +++ b/binding/c#/IP2Region.Test.Benchmark/DbSearch_Test.cs @@ -1,9 +1,5 @@ using BenchmarkDotNet.Attributes; -using BenchmarkDotNet.Order; using IP2Region.Models; -using System; -using System.Collections.Generic; -using System.Text; using System.Threading.Tasks; namespace IP2Region.Test.Benchmark diff --git a/binding/c#/IP2Region.Test.Benchmark/TestBase.cs b/binding/c#/IP2Region.Test.Benchmark/TestBase.cs index 233a33a..369391d 100644 --- a/binding/c#/IP2Region.Test.Benchmark/TestBase.cs +++ b/binding/c#/IP2Region.Test.Benchmark/TestBase.cs @@ -1,7 +1,5 @@ using BenchmarkDotNet.Attributes; using System; -using System.Collections.Generic; -using System.Text; namespace IP2Region.Test.Benchmark { @@ -17,7 +15,7 @@ namespace IP2Region.Test.Benchmark public TestBase(String DBFilePath) { - this._dBFilePath = DBFilePath; + _dBFilePath = DBFilePath; } [GlobalSetup] @@ -37,7 +35,7 @@ namespace IP2Region.Test.Benchmark [GlobalCleanup] public void Dispose() { - _search?.Dispose(); + _search.Dispose(); } public String GetRandomIP() diff --git a/binding/c#/IP2Region.Test.xUnit/SearchTest.cs b/binding/c#/IP2Region.Test.xUnit/SearchTest.cs index 1215765..9bb33ce 100644 --- a/binding/c#/IP2Region.Test.xUnit/SearchTest.cs +++ b/binding/c#/IP2Region.Test.xUnit/SearchTest.cs @@ -4,9 +4,10 @@ using Xunit; namespace IP2Region.Test.xUnit { - public class SearchTest + public class SearchTest : IDisposable { private readonly DbSearcher _search; + public SearchTest() { _search = new DbSearcher(Environment.CurrentDirectory + @"\DB\ip2region.db"); @@ -16,8 +17,8 @@ namespace IP2Region.Test.xUnit { string memResult = _search.MemorySearch("183.192.62.65").Region; string binarySearchResult = _search.BinarySearch("183.192.62.65").Region; - string binaryTreeSearchResult = _search.BtreeSearch("183.192.62.65").Region; - + string binaryTreeSearchResult = _search.BtreeSearch("183.192.62.65").Region; + Assert.NotNull(memResult); Assert.NotNull(binarySearchResult); Assert.NotNull(binaryTreeSearchResult); @@ -29,10 +30,10 @@ namespace IP2Region.Test.xUnit [Fact] public async Task SearchAsync_Test() { - var memResult = await _search.MemorySearchAsync("183.192.62.65"); - var binarySearchResult = await _search.BinarySearchAsync("183.192.62.65"); - var bTreeSearchResult = await _search.BtreeSearchAsync("183.192.62.65"); - + var memResult = await _search.MemorySearchAsync("183.192.62.65"); + var binarySearchResult = await _search.BinarySearchAsync("183.192.62.65"); + var bTreeSearchResult = await _search.BtreeSearchAsync("183.192.62.65"); + Assert.NotNull(memResult.Region); Assert.NotNull(binarySearchResult.Region); Assert.NotNull(bTreeSearchResult.Region); @@ -41,6 +42,9 @@ namespace IP2Region.Test.xUnit Assert.Equal(bTreeSearchResult.Region, memResult.Region); } - + public void Dispose() + { + _search.Dispose(); + } } } diff --git a/binding/c#/IP2Region_NetFx_Test/Program.cs b/binding/c#/IP2Region_NetFx_Test/Program.cs index f0de3e1..2b96800 100644 --- a/binding/c#/IP2Region_NetFx_Test/Program.cs +++ b/binding/c#/IP2Region_NetFx_Test/Program.cs @@ -1,9 +1,5 @@ using IP2Region; using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; namespace IP2Region_NetFx_Test { @@ -11,9 +7,11 @@ namespace IP2Region_NetFx_Test { static void Main(string[] args) { - DbSearcher _search = new DbSearcher(Environment.CurrentDirectory + @"\DB\ip2region.db"); - Console.WriteLine(_search.MemorySearch("183.192.62.65").Region); - Console.Read(); + using (var _search = new DbSearcher(Environment.CurrentDirectory + @"\DB\ip2region.db")) + { + Console.WriteLine(_search.MemorySearch("183.192.62.65").Region); + Console.Read(); + } } } } diff --git a/binding/c#/IP2Region_NetFx_Test/Properties/AssemblyInfo.cs b/binding/c#/IP2Region_NetFx_Test/Properties/AssemblyInfo.cs index 92c2b2d..04e8005 100644 --- a/binding/c#/IP2Region_NetFx_Test/Properties/AssemblyInfo.cs +++ b/binding/c#/IP2Region_NetFx_Test/Properties/AssemblyInfo.cs @@ -1,5 +1,4 @@ using System.Reflection; -using System.Runtime.CompilerServices; using System.Runtime.InteropServices; // 有关程序集的一般信息由以下