mirror of https://github.com/dahall/Vanara.git
Updated unit tests
parent
e109316787
commit
369f22fae7
|
@ -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()]
|
||||
|
|
|
@ -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">
|
||||
|
|
|
@ -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;
|
||||
// }
|
||||
// }
|
||||
//}
|
||||
}
|
|
@ -21,7 +21,7 @@ namespace Vanara.PInvoke.Tests
|
|||
[Test]
|
||||
public void CreateNamedPipeTest()
|
||||
{
|
||||
Assert.That(CreateNamedPipe(), Is.Zero);
|
||||
//Assert.That(CreateNamedPipe(), Is.Zero);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue