Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove ActiveIssue from tests. #34719

Merged
Merged
Show file tree
Hide file tree
Changes from 4 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -15,71 +15,6 @@ namespace System.Runtime.InteropServices.Tests
{
public partial class GetNativeVariantForObjectTests
{
public static IEnumerable<object[]> GetNativeVariantForObject_RoundtrippingPrimitives_TestData()
{
yield return new object[] { null, VarEnum.VT_EMPTY, IntPtr.Zero };

yield return new object[] { (sbyte)10, VarEnum.VT_I1, (IntPtr)10 };
yield return new object[] { (short)10, VarEnum.VT_I2, (IntPtr)10 };
yield return new object[] { 10, VarEnum.VT_I4, (IntPtr)10 };
yield return new object[] { (long)10, VarEnum.VT_I8, (IntPtr)10 };
yield return new object[] { (byte)10, VarEnum.VT_UI1, (IntPtr)10 };
yield return new object[] { (ushort)10, VarEnum.VT_UI2, (IntPtr)10 };
yield return new object[] { (uint)10, VarEnum.VT_UI4, (IntPtr)10 };
yield return new object[] { (ulong)10, VarEnum.VT_UI8, (IntPtr)10 };

yield return new object[] { true, VarEnum.VT_BOOL, (IntPtr)ushort.MaxValue };
yield return new object[] { false, VarEnum.VT_BOOL, IntPtr.Zero };

yield return new object[] { 10m, VarEnum.VT_DECIMAL, (IntPtr)10 };

// Well known types.
DateTime dateTime = new DateTime(1899, 12, 30).AddDays(20);
yield return new object[] { dateTime, VarEnum.VT_DATE, (IntPtr)(-1) };

yield return new object[] { DBNull.Value, VarEnum.VT_NULL, IntPtr.Zero };
yield return new object[] { DBNull.Value, VarEnum.VT_NULL, IntPtr.Zero };

// Arrays.
yield return new object[] { new sbyte[] { 10, 11, 12 }, (VarEnum)8208, (IntPtr)(-1) };
yield return new object[] { new short[] { 10, 11, 12 }, (VarEnum)8194, (IntPtr)(-1) };
yield return new object[] { new int[] { 10, 11, 12 }, (VarEnum)8195, (IntPtr)(-1) };
yield return new object[] { new long[] { 10, 11, 12 }, (VarEnum)8212, (IntPtr)(-1) };
yield return new object[] { new byte[] { 10, 11, 12 }, (VarEnum)8209, (IntPtr)(-1) };
yield return new object[] { new ushort[] { 10, 11, 12 }, (VarEnum)8210, (IntPtr)(-1) };
yield return new object[] { new uint[] { 10, 11, 12 }, (VarEnum)8211, (IntPtr)(-1) };
yield return new object[] { new ulong[] { 10, 11, 12 }, (VarEnum)8213, (IntPtr)(-1) };

yield return new object[] { new bool[] { true, false }, (VarEnum)8203, (IntPtr)(-1) };

yield return new object[] { new float[] { 10, 11, 12 }, (VarEnum)8196, (IntPtr)(-1) };
yield return new object[] { new double[] { 10, 11, 12 }, (VarEnum)8197, (IntPtr)(-1) };
yield return new object[] { new decimal[] { 10m, 11m, 12m }, (VarEnum)8206, (IntPtr)(-1) };

yield return new object[] { new object[] { 10, 11, 12 }, (VarEnum)8204, (IntPtr)(-1) };
yield return new object[] { new string[] { "a", "b", "c" }, (VarEnum)8200, (IntPtr)(-1) };

yield return new object[] { new TimeSpan[] { new TimeSpan(10) }, (VarEnum)8228, (IntPtr)(-1) };
yield return new object[] { new int[,] { { 10 }, { 11 }, { 12 } }, (VarEnum)8195, (IntPtr)(-1) };

// Objects.
var nonGenericClass = new NonGenericClass();
yield return new object[] { nonGenericClass, VarEnum.VT_DISPATCH, (IntPtr)(-1) };

var valueType = new StructWithValue { Value = 10 };
yield return new object[] { valueType, VarEnum.VT_RECORD, (IntPtr)(-1) };

var genericClass = new GenericClass<string>();
yield return new object[] { new object[] { nonGenericClass, genericClass, null }, (VarEnum)8204, (IntPtr)(-1) };

yield return new object[] { new object[] { valueType, null }, (VarEnum)8204, (IntPtr)(-1) };

// Delegate.
MethodInfo method = typeof(GetNativeVariantForObjectTests).GetMethod(nameof(NonGenericMethod), BindingFlags.NonPublic | BindingFlags.Static);
Delegate d = method.CreateDelegate(typeof(NonGenericDelegate));
yield return new object[] { d, VarEnum.VT_DISPATCH, (IntPtr)(-1) };
}

private void GetNativeVariantForObject_RoundtrippingPrimitives_Success(object primitive, VarEnum expectedVarType, IntPtr expectedValue)
{
GetNativeVariantForObject_ValidObject_Success(primitive, expectedVarType, expectedValue, primitive);
Expand Down Expand Up @@ -115,28 +50,12 @@ public static IEnumerable<object[]> GetNativeVariantForObject_NonRoundtrippingPr

// Wrappers.
yield return new object[] { new UnknownWrapper(10), VarEnum.VT_UNKNOWN, IntPtr.Zero, null };
if (!PlatformDetection.IsNetCore)
{
yield return new object[] { new DispatchWrapper(10), VarEnum.VT_DISPATCH, IntPtr.Zero, null };
}
else
{
Assert.Throws<PlatformNotSupportedException>(() => new DispatchWrapper(10));
}
yield return new object[] { new ErrorWrapper(10), VarEnum.VT_ERROR, (IntPtr)10, 10 };
yield return new object[] { new CurrencyWrapper(10), VarEnum.VT_CY, (IntPtr)100000, 10m };
yield return new object[] { new BStrWrapper("a"), VarEnum.VT_BSTR, (IntPtr)(-1), "a" };
yield return new object[] { new BStrWrapper(null), VarEnum.VT_BSTR, IntPtr.Zero, null };

yield return new object[] { new UnknownWrapper[] { new UnknownWrapper(null), new UnknownWrapper(10) }, (VarEnum)8205, (IntPtr)(-1), new object[] { null, 10 } };
if (!PlatformDetection.IsNetCore)
{
yield return new object[] { new DispatchWrapper[] { new DispatchWrapper(null), new DispatchWrapper(10) }, (VarEnum)8201, (IntPtr)(-1), new object[] { null, 10 } };
}
else
{
Assert.Throws<PlatformNotSupportedException>(() => new DispatchWrapper(10));
}
yield return new object[] { new ErrorWrapper[] { new ErrorWrapper(10) }, (VarEnum)8202, (IntPtr)(-1), new uint[] { 10 } };
yield return new object[] { new CurrencyWrapper[] { new CurrencyWrapper(10) }, (VarEnum)8198, (IntPtr)(-1), new decimal[] { 10 } };
yield return new object[] { new BStrWrapper[] { new BStrWrapper("a"), new BStrWrapper(null), new BStrWrapper("c") }, (VarEnum)8200, (IntPtr)(-1), new string[] { "a", null, "c" } };
Expand All @@ -148,13 +67,9 @@ public static IEnumerable<object[]> GetNativeVariantForObject_NonRoundtrippingPr
var genericClass = new GenericClass<string>();
yield return new object[] { new GenericClass<string>[] { genericClass, null }, (VarEnum)8205, (IntPtr)(-1), new object[] { genericClass, null } };

var nonGenericStruct = new NonGenericStruct();
yield return new object[] { new NonGenericStruct[] { nonGenericStruct }, (VarEnum)8228, (IntPtr)(-1), new NonGenericStruct[] { nonGenericStruct } };

var classWithInterface = new ClassWithInterface();
var structWithInterface = new StructWithInterface();
yield return new object[] { new ClassWithInterface[] { classWithInterface, null }, (VarEnum)8201, (IntPtr)(-1), new object[] { classWithInterface, null } };
yield return new object[] { new StructWithInterface[] { structWithInterface }, (VarEnum)8228, (IntPtr)(-1), new StructWithInterface[] { structWithInterface } };
yield return new object[] { new INonGenericInterface[] { classWithInterface, structWithInterface, null }, (VarEnum)8201, (IntPtr)(-1), new object[] { classWithInterface, structWithInterface, null } };

// Enums.
Expand Down Expand Up @@ -183,7 +98,6 @@ public static IEnumerable<object[]> GetNativeVariantForObject_NonRoundtrippingPr
[Theory]
[MemberData(nameof(GetNativeVariantForObject_NonRoundtrippingPrimitives_TestData))]
[PlatformSpecific(TestPlatforms.Windows)]
[ActiveIssue("https://github.com/dotnet/runtime/issues/26820")]
public void GetNativeVariantForObject_ValidObject_Success(object primitive, VarEnum expectedVarType, IntPtr expectedValue, object expectedRoundtripValue)
{
var v = new Variant();
Expand Down Expand Up @@ -324,19 +238,6 @@ public void GetNativeVariantForObject_GenericObject_ThrowsArgumentException(obje
AssertExtensions.Throws<ArgumentException>("obj", () => Marshal.GetNativeVariantForObject<object>(obj, (IntPtr)1));
}

public static IEnumerable<object[]> GetNativeVariant_NotInteropCompatible_TestData()
{
yield return new object[] { new TimeSpan(10) };

yield return new object[] { new object[] { new GenericStruct<string>() } };

yield return new object[] { new GenericStruct<string>[0]};
yield return new object[] { new GenericStruct<string>[] { new GenericStruct<string>() } };

yield return new object[] { new Color[0] };
yield return new object[] { new Color[] { Color.FromArgb(10) } };
}

[Fact]
[PlatformSpecific(TestPlatforms.Windows)]
public void GetNativeVariant_InvalidArray_ThrowsSafeArrayTypeMismatchException()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -538,8 +538,7 @@ public void GetObjectForNativeVariant_NestedVariant_ReturnsExpected(Variant sour
}

[Fact]
[ActiveIssue("https://github.com/dotnet/runtime/issues/27015", TargetFrameworkMonikers.Netcoreapp)]
public void GetObjectForNativeVariant_Record_ReturnsExpected()
public void GetObjectForNativeVariant_Record_Throws()
{
int record = 10;
var recordInfo = new RecordInfo { Guid = typeof(int).GUID };
Expand All @@ -557,11 +556,8 @@ public void GetObjectForNativeVariant_Record_ReturnsExpected()
_recordInfo = pRecordInfo
}
});
Assert.Equal(10, GetObjectForNativeVariant(variant));
GetObjectForNativeVariant_NestedVariant_ReturnsExpected(variant, record);

variant.m_Variant.vt |= VT_BYREF;
Assert.Equal(10, GetObjectForNativeVariant(variant));
Assert.Throws<ArgumentException>(() => GetObjectForNativeVariant(variant));
}
finally
{
Expand Down