Skip to content

Commit cdb602b

Browse files
committed
2 parents 8492d07 + 32f13c9 commit cdb602b

File tree

6 files changed

+845
-722
lines changed

6 files changed

+845
-722
lines changed
Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,24 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
2-
3-
<PropertyGroup>
4-
<TargetFrameworks>netcoreapp3.0</TargetFrameworks>
5-
<AssemblyName>LightningDB.Tests</AssemblyName>
6-
<PackageId>LightningDB.Tests</PackageId>
7-
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
8-
<IsTestProject>true</IsTestProject>
9-
<LightningDBTargetRuntimeRelativePath>.\</LightningDBTargetRuntimeRelativePath>
10-
</PropertyGroup>
11-
12-
<ItemGroup>
13-
<ProjectReference Include="..\LightningDB\LightningDB.csproj" />
14-
</ItemGroup>
15-
16-
<ItemGroup>
17-
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
18-
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
19-
<PackageReference Include="xunit" Version="2.4.1" />
20-
</ItemGroup>
21-
22-
<Import Project="..\LightningDB\LightningDB.targets" />
23-
24-
</Project>
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<TargetFramework>netcoreapp3.0</TargetFramework>
5+
<AssemblyName>LightningDB.Tests</AssemblyName>
6+
<PackageId>LightningDB.Tests</PackageId>
7+
<GenerateRuntimeConfigurationFiles>true</GenerateRuntimeConfigurationFiles>
8+
<IsTestProject>true</IsTestProject>
9+
<LightningDBTargetRuntimeRelativePath>.\</LightningDBTargetRuntimeRelativePath>
10+
</PropertyGroup>
11+
12+
<ItemGroup>
13+
<ProjectReference Include="..\LightningDB\LightningDB.csproj" />
14+
</ItemGroup>
15+
16+
<ItemGroup>
17+
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.9.0" />
18+
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.1" />
19+
<PackageReference Include="xunit" Version="2.4.1" />
20+
</ItemGroup>
21+
22+
<Import Project="..\LightningDB\LightningDB.targets" />
23+
24+
</Project>

src/LightningDB.Tests/SpanTests.cs

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
using System;
2+
using System.Runtime.InteropServices;
3+
using Xunit;
4+
5+
namespace LightningDB.Tests
6+
{
7+
[Collection("SharedFileSystem")]
8+
public class SpanTests : IDisposable
9+
{
10+
private LightningEnvironment _env;
11+
private Random generator;
12+
13+
public SpanTests(SharedFileSystem fileSystem)
14+
{
15+
var path = fileSystem.CreateNewDirectoryForTest();
16+
_env = new LightningEnvironment(path);
17+
_env.Open();
18+
generator = new Random(Guid.NewGuid().GetHashCode());
19+
}
20+
21+
public void Dispose()
22+
{
23+
_env.Dispose();
24+
}
25+
26+
[Fact]
27+
public void ValueShouldBeReadProperly()
28+
{
29+
using (var txn = _env.BeginTransaction())
30+
using (var db = txn.OpenDatabase(configuration: new DatabaseConfiguration
31+
{
32+
Flags = DatabaseOpenFlags.Create
33+
}))
34+
{
35+
var value = generator.Next(int.MinValue, int.MaxValue);
36+
var key = BitConverter.GetBytes(1);
37+
38+
txn.Put(db, key, BitConverter.GetBytes(value));
39+
var span = txn.GetSpan(db, key);
40+
var intSpan = MemoryMarshal.Cast<byte, int>(span);
41+
42+
var savedValue = intSpan[0];
43+
44+
Assert.Equal(savedValue, value);
45+
}
46+
}
47+
48+
[Fact]
49+
public void ResultsFromSpanAndGetShouldBeSame()
50+
{
51+
using (var txn = _env.BeginTransaction())
52+
using (var db = txn.OpenDatabase(configuration: new DatabaseConfiguration
53+
{
54+
Flags = DatabaseOpenFlags.Create
55+
}))
56+
{
57+
var value = generator.Next(int.MinValue, int.MaxValue);
58+
var key = BitConverter.GetBytes(1);
59+
60+
txn.Put(db, key, BitConverter.GetBytes(value));
61+
62+
var span = txn.GetSpan(db, key);
63+
var bytes = txn.Get(db, key);
64+
65+
Assert.Equal(span.ToArray(), bytes);
66+
}
67+
}
68+
}
69+
}

src/LightningDB/LightningDB.csproj

Lines changed: 26 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,26 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
2-
3-
<PropertyGroup>
4-
<Description>LightningDB</Description>
5-
<VersionPrefix>0.11.0</VersionPrefix>
6-
<Authors>Ilya Lukyanov;Corey Kaylor</Authors>
7-
<TargetFrameworks>netstandard2.0</TargetFrameworks>
8-
<AssemblyName>LightningDB</AssemblyName>
9-
<PackageId>LightningDB</PackageId>
10-
<PackageTags>lmdb;lightning;storage;persistance;key-value;nosql</PackageTags>
11-
<PackageProjectUrl>https://github.com/CoreyKaylor/Lightning.NET</PackageProjectUrl>
12-
</PropertyGroup>
13-
14-
<ItemGroup>
15-
<None Include="runtimes\**\*.*">
16-
<Pack>true</Pack>
17-
<PackagePath>runtimes</PackagePath>
18-
</None>
19-
<None Include="LightningDB.targets" Pack="true" PackagePath="build" />
20-
</ItemGroup>
21-
22-
</Project>
1+
<Project Sdk="Microsoft.NET.Sdk">
2+
3+
<PropertyGroup>
4+
<Description>LightningDB</Description>
5+
<VersionPrefix>0.11.0</VersionPrefix>
6+
<Authors>Ilya Lukyanov;Corey Kaylor</Authors>
7+
<TargetFramework>netstandard2.0</TargetFramework>
8+
<AssemblyName>LightningDB</AssemblyName>
9+
<PackageId>LightningDB</PackageId>
10+
<PackageTags>lmdb;lightning;storage;persistance;key-value;nosql</PackageTags>
11+
<PackageProjectUrl>https://github.com/CoreyKaylor/Lightning.NET</PackageProjectUrl>
12+
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
13+
</PropertyGroup>
14+
15+
<ItemGroup>
16+
<None Include="runtimes\**\*.*">
17+
<Pack>true</Pack>
18+
<PackagePath>runtimes</PackagePath>
19+
</None>
20+
<None Include="LightningDB.targets" Pack="true" PackagePath="build" />
21+
</ItemGroup>
22+
23+
<ItemGroup>
24+
<PackageReference Include="System.Memory" Version="4.5.4" />
25+
</ItemGroup>
26+
</Project>

0 commit comments

Comments
 (0)