Added/updated tests for Kernel32

pull/213/head
dahall 2021-02-18 14:27:08 -07:00
parent 4a4184ab87
commit 21c4311935
3 changed files with 32 additions and 4 deletions

View File

@ -33,7 +33,7 @@ namespace Vanara.PInvoke.Tests
{
var output = new List<string>();
var attr = System.Reflection.TypeAttributes.SequentialLayout | System.Reflection.TypeAttributes.ExplicitLayout;
foreach (var t in typeof(AdvApi32).GetNestedTypes(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic).
foreach (var t in type.GetNestedTypes(System.Reflection.BindingFlags.Public | System.Reflection.BindingFlags.NonPublic).
Where(t => t.IsValueType && !t.IsEnum && (t.Attributes & attr) != 0 && ((filters?.Length ?? 0) == 0 || filters.Any(s => t.Name.Contains(s)))))
output.Add($"{t.Name} = {Marshal.SizeOf(t)}");
output.Sort();

View File

@ -277,9 +277,9 @@ namespace Vanara.PInvoke.Tests
[Test]
public void GetLogicalDriveStringsTest()
{
var sb = new StringBuilder(1024);
Assert.That(GetLogicalDriveStrings((uint)sb.Capacity, sb), Is.Not.Zero);
TestContext.WriteLine(sb);
var ie = Enumerable.Empty<string>();
Assert.That(ie = GetLogicalDriveStrings(), Is.Not.Empty);
ie.WriteValues();
}
[Test]

View File

@ -11,5 +11,33 @@ namespace Vanara.PInvoke.Tests
[TestFixture]
public class IoApiSetTests
{
[Test]
public void DeviceIoControlNoInOutTest()
{
using var hFile = CreateFile(@"\\.\C:", FileAccess.GENERIC_READ, System.IO.FileShare.Read,
default, System.IO.FileMode.Open, 0);
Assert.That(hFile, ResultIs.ValidHandle);
Assert.True(DeviceIoControl(hFile, IOControlCode.FSCTL_IS_VOLUME_MOUNTED));
}
[Test]
public void DeviceIoControlOutAndInTest()
{
using var hFile = CreateFile(TestCaseSources.WordDoc, FileAccess.GENERIC_READ | FileAccess.GENERIC_WRITE,
System.IO.FileShare.None, default, System.IO.FileMode.Open, 0);
Assert.That(hFile, ResultIs.ValidHandle);
Assert.That(DeviceIoControl(hFile, IOControlCode.FSCTL_GET_COMPRESSION, out COMPRESSION_FORMAT compr), ResultIs.Successful);
Assert.That(DeviceIoControl(hFile, IOControlCode.FSCTL_SET_COMPRESSION, compr == COMPRESSION_FORMAT.COMPRESSION_FORMAT_NONE ? COMPRESSION_FORMAT.COMPRESSION_FORMAT_DEFAULT : COMPRESSION_FORMAT.COMPRESSION_FORMAT_NONE), ResultIs.Successful);
Assert.That(DeviceIoControl(hFile, IOControlCode.FSCTL_GET_COMPRESSION, out COMPRESSION_FORMAT newcompr), ResultIs.Successful);
Assert.That(compr, Is.Not.EqualTo(newcompr));
Assert.That(DeviceIoControl(hFile, IOControlCode.FSCTL_SET_COMPRESSION, compr), ResultIs.Successful);
}
[Test]
public void StructSizeTest()
{
TestHelper.GetNestedStructSizes(typeof(Kernel32)).WriteValues();
}
}
}