Skip to content

Commit d31fac3

Browse files
authored
test: repeatability and refactoring (#671)
1 parent b5b1a92 commit d31fac3

File tree

10 files changed

+719
-836
lines changed

10 files changed

+719
-836
lines changed

test/ICSharpCode.SharpZipLib.Tests/BZip2/Bzip2Tests.cs

+16-21
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
using ICSharpCode.SharpZipLib.BZip2;
22
using ICSharpCode.SharpZipLib.Tests.TestSupport;
33
using NUnit.Framework;
4-
using System;
54
using System.IO;
65

76
namespace ICSharpCode.SharpZipLib.Tests.BZip2
@@ -24,34 +23,30 @@ public void BasicRoundTrip()
2423
{
2524
var ms = new MemoryStream();
2625
var outStream = new BZip2OutputStream(ms);
26+
27+
var buf = Utils.GetDummyBytes(size: 10000, RandomSeed);
2728

28-
byte[] buf = new byte[10000];
29-
var rnd = new Random(RandomSeed);
30-
rnd.NextBytes(buf);
31-
32-
outStream.Write(buf, 0, buf.Length);
29+
outStream.Write(buf, offset: 0, buf.Length);
3330
outStream.Close();
3431
ms = new MemoryStream(ms.GetBuffer());
35-
ms.Seek(0, SeekOrigin.Begin);
32+
ms.Seek(offset: 0, SeekOrigin.Begin);
3633

37-
using (BZip2InputStream inStream = new BZip2InputStream(ms))
34+
using BZip2InputStream inStream = new BZip2InputStream(ms);
35+
var buf2 = new byte[buf.Length];
36+
var pos = 0;
37+
while (true)
3838
{
39-
byte[] buf2 = new byte[buf.Length];
40-
int pos = 0;
41-
while (true)
39+
var numRead = inStream.Read(buf2, pos, count: 4096);
40+
if (numRead <= 0)
4241
{
43-
int numRead = inStream.Read(buf2, pos, 4096);
44-
if (numRead <= 0)
45-
{
46-
break;
47-
}
48-
pos += numRead;
42+
break;
4943
}
44+
pos += numRead;
45+
}
5046

51-
for (int i = 0; i < buf.Length; ++i)
52-
{
53-
Assert.AreEqual(buf2[i], buf[i]);
54-
}
47+
for (var i = 0; i < buf.Length; ++i)
48+
{
49+
Assert.AreEqual(buf2[i], buf[i]);
5550
}
5651
}
5752

test/ICSharpCode.SharpZipLib.Tests/Base/InflaterDeflaterTests.cs

+24-37
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,10 @@ private MemoryStream Deflate(byte[] data, int level, bool zlib)
6060
return memoryStream;
6161
}
6262

63-
private static byte[] GetRandomTestData(int size)
64-
{
65-
byte[] buffer = new byte[size];
66-
var rnd = new Random(RandomSeed);
67-
rnd.NextBytes(buffer);
68-
69-
return buffer;
70-
}
71-
7263
private void RandomDeflateInflate(int size, int level, bool zlib)
7364
{
74-
byte[] buffer = GetRandomTestData(size);
75-
76-
MemoryStream ms = Deflate(buffer, level, zlib);
65+
var buffer = Utils.GetDummyBytes(size, RandomSeed);
66+
var ms = Deflate(buffer, level, zlib);
7767
Inflate(ms, buffer, level, zlib);
7868
}
7969

@@ -130,9 +120,8 @@ private async Task<MemoryStream> DeflateAsync(byte[] data, int level, bool zlib)
130120

131121
private async Task RandomDeflateInflateAsync(int size, int level, bool zlib)
132122
{
133-
byte[] buffer = GetRandomTestData(size);
134-
135-
MemoryStream ms = await DeflateAsync(buffer, level, zlib);
123+
var buffer = Utils.GetDummyBytes(size, RandomSeed);
124+
var ms = await DeflateAsync(buffer, level, zlib);
136125
await InflateAsync(ms, buffer, level, zlib);
137126
}
138127

@@ -179,58 +168,56 @@ public void InflateDeflateZlib([Range(0, 9)] int level)
179168
[Category("Async")]
180169
public async Task InflateDeflateZlibAsync([Range(0, 9)] int level)
181170
{
182-
await RandomDeflateInflateAsync(100000, level, true);
171+
await RandomDeflateInflateAsync(size: 100000, level, zlib: true);
183172
}
184173

185174
private delegate void RunCompress(byte[] buffer);
186175

187-
private int runLevel;
188-
private bool runZlib;
189-
private long runCount;
190-
private readonly Random runRandom = new Random(RandomSeed);
176+
private int _runLevel;
177+
private bool _runZlib;
191178

192179
private void DeflateAndInflate(byte[] buffer)
193180
{
194-
++runCount;
195-
MemoryStream ms = Deflate(buffer, runLevel, runZlib);
196-
Inflate(ms, buffer, runLevel, runZlib);
181+
var ms = Deflate(buffer, _runLevel, _runZlib);
182+
Inflate(ms, buffer, _runLevel, _runZlib);
197183
}
198184

199-
private void TryVariants(RunCompress test, byte[] buffer, int index)
185+
private void TryVariants(RunCompress test, byte[] buffer, Random random, int index)
200186
{
201187
int worker = 0;
202188
while (worker <= 255)
203189
{
204190
buffer[index] = (byte)worker;
205191
if (index < buffer.Length - 1)
206192
{
207-
TryVariants(test, buffer, index + 1);
193+
TryVariants(test, buffer, random, index + 1);
208194
}
209195
else
210196
{
211197
test(buffer);
212198
}
213199

214-
worker += runRandom.Next(256);
200+
worker += random.Next(maxValue: 256);
215201
}
216202
}
217203

218204
private void TryManyVariants(int level, bool zlib, RunCompress test, byte[] buffer)
219205
{
220-
runLevel = level;
221-
runZlib = zlib;
222-
TryVariants(test, buffer, 0);
206+
var random = new Random(RandomSeed);
207+
_runLevel = level;
208+
_runZlib = zlib;
209+
TryVariants(test, buffer, random, 0);
223210
}
224211

225212
// TODO: Fix this
226-
//[Test]
227-
//[Category("Base")]
228-
//public void SmallBlocks()
229-
//{
230-
// byte[] buffer = new byte[10];
231-
// Array.Clear(buffer, 0, buffer.Length);
232-
// TryManyVariants(0, false, new RunCompress(DeflateAndInflate), buffer);
233-
//}
213+
[Test]
214+
[Category("Base")]
215+
[Explicit("Long-running")]
216+
public void SmallBlocks()
217+
{
218+
var buffer = new byte[10];
219+
TryManyVariants(level: 0, zlib: false, DeflateAndInflate, buffer);
220+
}
234221

235222
/// <summary>
236223
/// Basic inflate/deflate test

0 commit comments

Comments
 (0)