Updated unit tests

pull/60/head
David Hall 2019-06-25 17:14:17 -06:00
parent e109316787
commit 369f22fae7
5 changed files with 101 additions and 14 deletions

View File

@ -20,19 +20,16 @@ namespace Vanara.InteropServices.Tests
var cs = new string('x', sz);
var s = new SafeCoTaskMemString(cs);
Assert.That(s.Capacity, Is.EqualTo((sz + 1) * 2));
Assert.That(s.CharCapacity, Is.EqualTo(sz + 1));
Assert.That(s.Capacity, Is.EqualTo(sz + 1));
Assert.That((string)s, Is.EqualTo(cs));
Assert.That((IntPtr)s, Is.Not.EqualTo(IntPtr.Zero));
s = new SafeCoTaskMemString(cs, System.Runtime.InteropServices.CharSet.Ansi);
Assert.That(s.Capacity, Is.EqualTo(sz + 1));
Assert.That(s.CharCapacity, Is.EqualTo(sz + 1));
Assert.That((string)s, Is.EqualTo(cs));
s = new SafeCoTaskMemString((string)null);
Assert.That(s.Capacity, Is.EqualTo(0));
Assert.That(s.CharCapacity, Is.EqualTo(0));
Assert.That((string)s, Is.Null);
Assert.That((IntPtr)s, Is.EqualTo(IntPtr.Zero));
}
@ -42,12 +39,10 @@ namespace Vanara.InteropServices.Tests
{
const int sz = 100;
var s = new SafeCoTaskMemString(sz);
Assert.That(s.CharCapacity, Is.EqualTo(sz));
Assert.That(s.Capacity, Is.EqualTo(sz * 2));
Assert.That(s.Capacity, Is.EqualTo(sz));
Assert.That((string)s, Is.EqualTo(string.Empty));
s = new SafeCoTaskMemString(sz, System.Runtime.InteropServices.CharSet.Ansi);
Assert.That(s.CharCapacity, Is.EqualTo(sz));
Assert.That(s.Capacity, Is.EqualTo(sz));
Assert.That((string)s, Is.EqualTo(string.Empty));
}
@ -60,15 +55,13 @@ namespace Vanara.InteropServices.Tests
foreach (var c in new string('x', sz)) ss.AppendChar(c);
var s = new SafeCoTaskMemString(ss);
Assert.That(s.CharCapacity, Is.EqualTo(sz + 1));
Assert.That(s.Capacity, Is.EqualTo((sz + 1) * 2));
Assert.That(s.Capacity, Is.EqualTo(sz + 1));
Assert.That((string)s, Is.EqualTo(new string('x', sz)));
ss = null;
s = new SafeCoTaskMemString(ss, CharSet.Ansi);
Assert.That((string)s, Is.Null);
Assert.That(s.Capacity, Is.Zero);
Assert.That(s.CharCapacity, Is.Zero);
}
[Test()]

View File

@ -9,9 +9,10 @@
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Vanara.PInvoke.Tests</RootNamespace>
<AssemblyName>UnitTest.PInvoke.Kernel32</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<LangVersion>latest</LangVersion>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@ -47,6 +48,9 @@
<Compile Include="AppModelTests.cs" />
<Compile Include="InterlockedApiTests.cs" />
<Compile Include="InteropServices\SafeLocalHandleTests.cs" />
<Compile Include="PathCchTests.cs" />
<Compile Include="ProcessEnvTests.cs" />
<Compile Include="NameSpaceApiTests.cs" />
<Compile Include="NamedPipeApiTests.cs" />
<Compile Include="MemoryApiTests.cs" />
<Compile Include="LibLoaderApiTests.cs" />
@ -75,6 +79,10 @@
<Project>{a5e519e9-feba-4fe3-93a5-b8269bef72f4}</Project>
<Name>Vanara.PInvoke.Shared</Name>
</ProjectReference>
<ProjectReference Include="..\..\CSharpRunner\CSharpRunner.csproj">
<Project>{a96cff10-0967-429a-8700-4a86c97c5603}</Project>
<Name>CSharpRunner</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<PackageReference Include="NUnit">

View File

@ -0,0 +1,87 @@
using NUnit.Framework;
using System;
using System.IO;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using Vanara.Extensions;
using Vanara.InteropServices;
using static Vanara.PInvoke.AdvApi32;
using static Vanara.PInvoke.Kernel32;
namespace Vanara.PInvoke.Tests
{
[TestFixture]
public class NameSpaceApiTests
{
private const string bndName = "BND1";
private const string nsName = "NS1";
[Test]
public void CreatePrivateNamespaceTest()
{
using (var bdh = CreateBoundaryDescriptor(bndName))
using (var pns = CreatePrivateNamespace(null, bdh, nsName))
{
if (pns.IsNull) TestContext.WriteLine($"ERR: CreateNS={Win32Error.GetLastError()}");
Assert.That(pns.IsInvalid, Is.False);
//var p = CSharpRunner.RunProcess(typeof(NSRunner));
//p.WaitForExit();
//Assert.That(p.ExitCode, Is.Zero);
}
}
[Test]
public void AddToBoundaryTest()
{
var bdh = CreateBoundaryDescriptor(Path.GetRandomFileName());
Assert.That(bdh.IsInvalid, Is.False);
BoundaryDescriptorHandle h = bdh;
try
{
var b = AddSIDToBoundaryDescriptor(ref h, SafePSID.Current);
if (!b) TestContext.WriteLine($"ERR: AddSid={Win32Error.GetLastError()}");
Assert.That(b, Is.True);
//var plsid = SafePSID.Init(KnownSIDAuthority.SECURITY_MANDATORY_LABEL_AUTHORITY, MandatoryIntegrityLevelSIDRelativeID.SECURITY_MANDATORY_MEDIUM_RID);
//b = AddIntegrityLabelToBoundaryDescriptor(ref h, plsid);
//if (!b) TestContext.WriteLine($"ERR: AddSid={Win32Error.GetLastError()}");
//Assert.That(b, Is.True);
}
finally
{
//DeleteBoundaryDescriptor(h);
bdh.Close();
}
}
[Test]
public void AddToBoundaryTest2()
{
using (var bdh = CreateBoundaryDescriptor(Path.GetRandomFileName()))
using (var pCurSid = SafePSID.Current)
{
Assert.That(bdh.IsInvalid, Is.False);
Assert.That(bdh.AddSid(pCurSid), Is.True);
//var plsid = SafePSID.Init(KnownSIDAuthority.SECURITY_MANDATORY_LABEL_AUTHORITY, MandatoryIntegrityLevelSIDRelativeID.SECURITY_MANDATORY_MEDIUM_RID);
//Assert.That(bdh.AddSid(plsid), Is.True);
}
}
}
//public static class NSRunner
//{
// public static int Main()
// {
// using (var bdh = CreateBoundaryDescriptor("BND1"))
// using (var pns = OpenPrivateNamespace(bdh, "NS1"))
// {
// Console.WriteLine($"BndDec: {!bdh.IsNull}");
// Console.WriteLine($"PNS: {!pns.IsNull}");
// Console.ReadKey();
// return pns.IsNull ? (int)Win32Error.GetLastError() : 0;
// }
// }
//}
}

View File

@ -21,7 +21,7 @@ namespace Vanara.PInvoke.Tests
[Test]
public void CreateNamedPipeTest()
{
Assert.That(CreateNamedPipe(), Is.Zero);
//Assert.That(CreateNamedPipe(), Is.Zero);
}
}

View File

@ -366,8 +366,7 @@ namespace Vanara.PInvoke.Tests
public void Dispose()
{
var retLen = 0U;
AdjustTokenPrivileges(tok, false, prevState, 0, SafeCoTaskMemHandle.Null, out _);
AdjustTokenPrivileges(tok, false, prevState);
prevState.Dispose();
tok.Dispose();
}