From 06260abe3bf3cf88341948516f5a98bea1f99723 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Fri, 5 Nov 2021 14:01:06 -0700 Subject: [PATCH 1/5] Move BestFitMapping test source to consolidate projects --- .../BestFitMapping/Char/AFF_PFF/AFF_PFF.cs | 180 --------- .../BestFitMapping/Char/AFF_PFT/AFF_PFT.cs | 172 --------- .../BestFitMapping/Char/AFF_PTF/AFF_PTF.cs | 191 --------- .../Char/AFF_PTF/AFF_PTF.csproj | 13 - .../BestFitMapping/Char/AFF_PTT/AFF_PTT.cs | 180 --------- .../Char/AFF_PTT/AFF_PTT.csproj | 13 - .../BestFitMapping/Char/AFT_PFF/AFT_PFF.cs | 180 --------- .../Char/AFT_PFF/AFT_PFF.csproj | 13 - .../BestFitMapping/Char/AFT_PFT/AFT_PFT.cs | 174 --------- .../Char/AFT_PFT/AFT_PFT.csproj | 13 - .../BestFitMapping/Char/AFT_PTF/AFT_PTF.cs | 192 --------- .../Char/AFT_PTF/AFT_PTF.csproj | 13 - .../BestFitMapping/Char/AFT_PTT/AFT_PTT.cs | 180 --------- .../Char/AFT_PTT/AFT_PTT.csproj | 13 - .../BestFitMapping/Char/ATF_PFF/ATF_PFF.cs | 180 --------- .../Char/ATF_PFF/ATF_PFF.csproj | 13 - .../BestFitMapping/Char/ATF_PFT/ATF_PFT.cs | 173 --------- .../Char/ATF_PFT/ATF_PFT.csproj | 13 - .../BestFitMapping/Char/ATF_PTF/ATF_PTF.cs | 192 --------- .../Char/ATF_PTF/ATF_PTF.csproj | 13 - .../BestFitMapping/Char/ATF_PTT/ATF_PTT.cs | 180 --------- .../Char/ATF_PTT/ATF_PTT.csproj | 13 - .../BestFitMapping/Char/ATT_PFF/ATT_PFF.cs | 180 --------- .../Char/ATT_PFF/ATT_PFF.csproj | 13 - .../BestFitMapping/Char/ATT_PFT/ATT_PFT.cs | 174 --------- .../Char/ATT_PFT/ATT_PFT.csproj | 13 - .../BestFitMapping/Char/ATT_PTF/ATT_PTF.cs | 192 --------- .../Char/ATT_PTF/ATT_PTF.csproj | 13 - .../BestFitMapping/Char/ATT_PTT/ATT_PTT.cs | 180 --------- .../Char/ATT_PTT/ATT_PTT.csproj | 13 - .../Assembly_Default.csproj} | 0 ...mbly_False_False.cs => PInvoke_Default.cs} | 0 ...embly_False_True.cs => PInvoke_Default.cs} | 0 ...embly_True_False.cs => PInvoke_Default.cs} | 0 ...sembly_True_True.cs => PInvoke_Default.cs} | 0 ..._False_False.cs => PInvoke_False_False.cs} | 0 ...ke_False_True.cs => PInvoke_False_True.cs} | 0 ...ke_True_False.cs => PInvoke_True_False.cs} | 0 ...voke_True_True.cs => PInvoke_True_True.cs} | 0 .../Pinvoke_False_False.csproj | 13 - .../Pinvoke_False_True.csproj | 13 - .../Pinvoke_True_False.csproj | 13 - .../Pinvoke_True_True.csproj | 13 - .../BestFitMapping/LPStr/AFF_PFF/AFF_PFF.cs | 356 ----------------- .../LPStr/AFF_PFF/AFF_PFF.csproj | 13 - .../BestFitMapping/LPStr/AFF_PFT/AFF_PFT.cs | 343 ----------------- .../LPStr/AFF_PFT/AFF_PFT.csproj | 13 - .../BestFitMapping/LPStr/AFF_PTF/AFF_PTF.cs | 340 ---------------- .../LPStr/AFF_PTF/AFF_PTF.csproj | 13 - .../BestFitMapping/LPStr/AFF_PTT/AFF_PTT.cs | 329 ---------------- .../LPStr/AFF_PTT/AFF_PTT.csproj | 13 - .../BestFitMapping/LPStr/AFT_PFF/AFT_PFF.cs | 352 ----------------- .../LPStr/AFT_PFF/AFT_PFF.csproj | 13 - .../BestFitMapping/LPStr/AFT_PFT/AFT_PFT.cs | 341 ---------------- .../LPStr/AFT_PFT/AFT_PFT.csproj | 13 - .../BestFitMapping/LPStr/AFT_PTF/AFT_PTF.cs | 335 ---------------- .../LPStr/AFT_PTF/AFT_PTF.csproj | 13 - .../BestFitMapping/LPStr/AFT_PTT/AFT_PTT.cs | 363 ------------------ .../LPStr/AFT_PTT/AFT_PTT.csproj | 13 - .../BestFitMapping/LPStr/ATF_PFF/ATF_PFF.cs | 351 ----------------- .../LPStr/ATF_PFF/ATF_PFF.csproj | 13 - .../BestFitMapping/LPStr/ATF_PFT/ATF_PFT.cs | 339 ---------------- .../LPStr/ATF_PFT/ATF_PFT.csproj | 13 - .../BestFitMapping/LPStr/ATF_PTF/ATF_PTF.cs | 336 ---------------- .../LPStr/ATF_PTF/ATF_PTF.csproj | 13 - .../BestFitMapping/LPStr/ATF_PTT/ATF_PTT.cs | 328 ---------------- .../LPStr/ATF_PTT/ATF_PTT.csproj | 13 - .../BestFitMapping/LPStr/ATT_PFF/ATT_PFF.cs | 353 ----------------- .../LPStr/ATT_PFF/ATT_PFF.csproj | 13 - .../BestFitMapping/LPStr/ATT_PFT/ATT_PFT.cs | 342 ----------------- .../LPStr/ATT_PFT/ATT_PFT.csproj | 13 - .../BestFitMapping/LPStr/ATT_PTF/ATT_PTF.cs | 337 ---------------- .../LPStr/ATT_PTF/ATT_PTF.csproj | 13 - .../BestFitMapping/LPStr/ATT_PTT/ATT_PTT.cs | 330 ---------------- .../LPStr/ATT_PTT/ATT_PTT.csproj | 13 - .../Assembly_Default/Assembly_Default.csproj} | 0 ...mbly_False_False.cs => PInvoke_Default.cs} | 0 ...embly_False_True.cs => PInvoke_Default.cs} | 0 ...embly_True_False.cs => PInvoke_Default.cs} | 0 ...sembly_True_True.cs => PInvoke_Default.cs} | 0 ..._False_False.cs => PInvoke_False_False.cs} | 0 ...ke_False_True.cs => PInvoke_False_True.cs} | 0 ...ke_True_False.cs => PInvoke_True_False.cs} | 0 ...voke_True_True.cs => PInvoke_True_True.cs} | 0 .../Pinvoke_False_False.csproj | 13 - .../Pinvoke_False_True.csproj | 13 - .../Pinvoke_True_False.csproj | 13 - .../Pinvoke_True_True.csproj | 13 - 88 files changed, 8869 deletions(-) delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFF/AFF_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFT/AFF_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.csproj rename src/tests/Interop/PInvoke/BestFitMapping/Char/{AFF_PFF/AFF_PFF.csproj => Assembly_Default/Assembly_Default.csproj} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/{Assembly_False_False.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/{Assembly_False_True.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/{Assembly_True_False.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/{Assembly_True_True.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/{Pinvoke_False_False/Pinvoke_False_False.cs => PInvoke_False_False.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/{Pinvoke_False_True/Pinvoke_False_True.cs => PInvoke_False_True.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/{Pinvoke_True_False/Pinvoke_True_False.cs => PInvoke_True_False.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/Char/{Pinvoke_True_True/Pinvoke_True_True.cs => PInvoke_True_True.cs} (100%) delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_False/Pinvoke_False_False.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_True/Pinvoke_False_True.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_False/Pinvoke_True_False.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_True/Pinvoke_True_True.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.csproj rename src/tests/Interop/PInvoke/BestFitMapping/{Char/AFF_PFT/AFF_PFT.csproj => LPStr/Assembly_Default/Assembly_Default.csproj} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/{Assembly_False_False.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/{Assembly_False_True.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/{Assembly_True_False.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/{Assembly_True_True.cs => PInvoke_Default.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/{Pinvoke_False_False/Pinvoke_False_False.cs => PInvoke_False_False.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/{Pinvoke_False_True/Pinvoke_False_True.cs => PInvoke_False_True.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/{Pinvoke_True_False/Pinvoke_True_False.cs => PInvoke_True_False.cs} (100%) rename src/tests/Interop/PInvoke/BestFitMapping/LPStr/{Pinvoke_True_True/Pinvoke_True_True.cs => PInvoke_True_True.cs} (100%) delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_False/Pinvoke_False_False.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_True/Pinvoke_False_True.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_False/Pinvoke_True_False.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_True/Pinvoke_True_True.csproj diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFF/AFF_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFF/AFF_PFF.cs deleted file mode 100644 index 451035ecef963e..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFF/AFF_PFF.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal('?', cTemp); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(CharBuffer_In_StringBuilder(sb)); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFT/AFF_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFT/AFF_PFT.cs deleted file mode 100644 index 2a1901c594afd4..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFT/AFF_PFT.cs +++ /dev/null @@ -1,172 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.Throws(() => Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.Throws(() => CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.Throws(() => CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.cs deleted file mode 100644 index 0d07109fdb2fa2..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.cs +++ /dev/null @@ -1,191 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTF/AFF_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.cs deleted file mode 100644 index 1551a014accd2b..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PTT/AFF_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.cs deleted file mode 100644 index 69c0cb4ff2cf47..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal('?', cTemp); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(CharBuffer_In_StringBuilder(sb)); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFF/AFT_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.cs deleted file mode 100644 index 48a7ca485da51a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.cs +++ /dev/null @@ -1,174 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.Throws(() => Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.Throws(() => CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.Throws(() => CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PFT/AFT_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.cs deleted file mode 100644 index ef2153c38446ad..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.cs +++ /dev/null @@ -1,192 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTF/AFT_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.cs deleted file mode 100644 index 1e5ad9cc8856aa..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFT_PTT/AFT_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.cs deleted file mode 100644 index c3f90b45e12a77..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal('?', cTemp); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(CharBuffer_In_StringBuilder(sb)); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFF/ATF_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.cs deleted file mode 100644 index b9a40575104a8b..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.cs +++ /dev/null @@ -1,173 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.Throws(() => Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.Throws(() => CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.Throws(() => CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PFT/ATF_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.cs deleted file mode 100644 index a69d3e7acc1e32..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.cs +++ /dev/null @@ -1,192 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTF/ATF_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.cs deleted file mode 100644 index f3df14364a30aa..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATF_PTT/ATF_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.cs deleted file mode 100644 index 64105efc3b79ff..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal('?', cTemp); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(CharBuffer_In_StringBuilder(sb)); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFF/ATT_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.cs deleted file mode 100644 index 3d98ca4dec29cc..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.cs +++ /dev/null @@ -1,174 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.Throws(() => Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.Throws(() => CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.Throws(() => CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PFT/ATT_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.cs deleted file mode 100644 index 483d1cc297f790..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.cs +++ /dev/null @@ -1,192 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTF/ATT_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.cs deleted file mode 100644 index bd1a276080b542..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.cs +++ /dev/null @@ -1,180 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -public class BFM_CharMarshaler -{ - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static void runTest() - { - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/ATT_PTT/ATT_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFF/AFF_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFF/AFF_PFF.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_False/Pinvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_False/Pinvoke_False_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_True/Pinvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_True/Pinvoke_False_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_False/Pinvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_False/Pinvoke_True_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_True/Pinvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_True/Pinvoke_True_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_False/Pinvoke_False_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_False/Pinvoke_False_False.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_False/Pinvoke_False_False.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_True/Pinvoke_False_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_True/Pinvoke_False_True.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_False_True/Pinvoke_False_True.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_False/Pinvoke_True_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_False/Pinvoke_True_False.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_False/Pinvoke_True_False.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_True/Pinvoke_True_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_True/Pinvoke_True_True.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Pinvoke_True_True/Pinvoke_True_True.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.cs deleted file mode 100644 index 232e788168a107..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.cs +++ /dev/null @@ -1,356 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_In_StringBuilder(sb)); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); -; - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - LPStrTestStruct cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp = GetValidStruct(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass lpss = new LPStrTestClass(); - lpss.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - lpss.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] lpss = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(lpss)); - - Assert.True(LPStrBuffer_In_Array_String(GetValidArray())); - - String[] cTemp = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.NotEqual(cTempClone[0], cTemp[0]); - - cTemp = GetValidArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.NotEqual(lpssClone[0].str, lpss[0].str); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - - lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpssClone[0].str, lpss[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFF/AFF_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.cs deleted file mode 100644 index 811932cd55f09a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.cs +++ /dev/null @@ -1,343 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - // struct attribute should override PI flags for BFM - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.Throws(() => LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - LPStrTestStruct cTempClone = new LPStrTestStruct(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass cTest = new LPStrTestClass(); - cTest.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_In_Class_String(cTest)); - - cTest.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(cTest)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - - LPStrTestClass cTempClone = new LPStrTestClass(); - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] cTest = null; - cTest = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - - cTest = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(cTest)); - - String[] cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - - String[] cTempClone = new String[3]; - cTemp = GetValidArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = null; - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PFT/AFF_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.cs deleted file mode 100644 index e974116993b8df..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.cs +++ /dev/null @@ -1,340 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTF/AFF_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.cs deleted file mode 100644 index 62fcd1e9171106..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.cs +++ /dev/null @@ -1,329 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFF_PTT/AFF_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.cs deleted file mode 100644 index edb1a99cd915f4..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.cs +++ /dev/null @@ -1,352 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_In_StringBuilder(sb)); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - LPStrTestStruct cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp = GetValidStruct(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass lpss = new LPStrTestClass(); - lpss.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - lpss.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] lpss = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(lpss)); - Assert.True(LPStrBuffer_In_Array_String(GetValidArray())); - - String[] cTemp = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.NotEqual(cTempClone[0], cTemp[0]); - - cTemp = GetValidArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.NotEqual(lpss[0].str, lpssClone[0].str); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFF/AFT_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.cs deleted file mode 100644 index eef05a806c52b2..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.cs +++ /dev/null @@ -1,341 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.Throws(() => LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - LPStrTestStruct cTempClone = new LPStrTestStruct(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass cTest = new LPStrTestClass(); - cTest.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_In_Class_String(cTest)); - - cTest.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(cTest)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] cTest = null; - cTest = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - - cTest = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(cTest)); - - String[] cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = null; - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PFT/AFT_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.cs deleted file mode 100644 index 76afb9eb33dfe0..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.cs +++ /dev/null @@ -1,335 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTF/AFT_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.cs deleted file mode 100644 index 65bd4295ef83eb..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.cs +++ /dev/null @@ -1,363 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true)] -public struct LPStrTestStruct_nothrow -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String_nothrow([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct_nothrow strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static LPStrTestStruct_nothrow GetInvalidStruct_nothrow() - { - LPStrTestStruct_nothrow inValidStruct = new LPStrTestStruct_nothrow(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct_nothrow GetValidStruct_nothrow() - { - LPStrTestStruct_nothrow validStruct = new LPStrTestStruct_nothrow(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct_nothrow lpss_nt = GetInvalidStruct_nothrow(); - Assert.True(LPStrBuffer_In_Struct_String_nothrow(lpss_nt)); - - lpss_nt = GetValidStruct_nothrow(); - Assert.True(LPStrBuffer_In_Struct_String_nothrow(lpss_nt)); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/AFT_PTT/AFT_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.cs deleted file mode 100644 index 799828c84adfd6..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.cs +++ /dev/null @@ -1,351 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_In_StringBuilder(sb)); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - LPStrTestStruct cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp = GetValidStruct(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass lpss = new LPStrTestClass(); - lpss.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - lpss.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] lpss = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(lpss)); - Assert.True(LPStrBuffer_In_Array_String(GetValidArray())); - - String[] cTemp = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.NotEqual(cTempClone[0], cTemp[0]); - - cTemp = GetValidArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.NotEqual(lpss[0].str, lpssClone[0].str); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFF/ATF_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.cs deleted file mode 100644 index 45c2fd1feecbfe..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.cs +++ /dev/null @@ -1,339 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.Throws(() => LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - LPStrTestStruct cTempClone = new LPStrTestStruct(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass cTest = new LPStrTestClass(); - cTest.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_In_Class_String(cTest)); - - cTest.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(cTest)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] cTest = null; - cTest = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - - cTest = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(cTest)); - - String[] cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = null; - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PFT/ATF_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.cs deleted file mode 100644 index babd7d23578c31..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.cs +++ /dev/null @@ -1,336 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTF/ATF_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.cs deleted file mode 100644 index 36727bd9340e83..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.cs +++ /dev/null @@ -1,328 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATF_PTT/ATF_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.cs deleted file mode 100644 index 7d0e4590fb7428..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.cs +++ /dev/null @@ -1,353 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_In_StringBuilder(sb)); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - LPStrTestStruct cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp = GetValidStruct(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass lpss = new LPStrTestClass(); - lpss.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - lpss.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] lpss = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(lpss)); - - Assert.True(LPStrBuffer_In_Array_String(GetValidArray())); - - String[] cTemp = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.NotEqual(cTempClone[0], cTemp[0]); - - cTemp = GetValidArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.NotEqual(lpssClone[0].str, lpss[0].str); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpssClone[0].str, lpss[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFF/ATT_PFF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.cs deleted file mode 100644 index 26c2374a8a448d..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.cs +++ /dev/null @@ -1,342 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.Throws(() => LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferStruct() - { - Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - LPStrTestStruct cTempClone = new LPStrTestStruct(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass cTest = new LPStrTestClass(); - cTest.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_In_Class_String(cTest)); - - cTest.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(cTest)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] cTest = null; - cTest = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - - cTest = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(cTest)); - - String[] cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidArray(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - - cTemp = GetValidArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = null; - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PFT/ATT_PFT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.cs deleted file mode 100644 index 784c834986717a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.cs +++ /dev/null @@ -1,337 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTF/ATT_PTF.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.cs deleted file mode 100644 index abd0c7c30ef9d5..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.cs +++ /dev/null @@ -1,330 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - static void runTest() - { - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); - } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/ATT_PTT/ATT_PTT.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFT/AFF_PFT.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/AFF_PFT/AFF_PFT.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_False/Pinvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_False/Pinvoke_False_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_True/Pinvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_True/Pinvoke_False_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_False/Pinvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_False/Pinvoke_True_False.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_True/Pinvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_True/Pinvoke_True_True.cs rename to src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_False/Pinvoke_False_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_False/Pinvoke_False_False.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_False/Pinvoke_False_False.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_True/Pinvoke_False_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_True/Pinvoke_False_True.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_False_True/Pinvoke_False_True.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_False/Pinvoke_True_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_False/Pinvoke_True_False.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_False/Pinvoke_True_False.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_True/Pinvoke_True_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_True/Pinvoke_True_True.csproj deleted file mode 100644 index dcb39b6b27c578..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Pinvoke_True_True/Pinvoke_True_True.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - From 68ad45cde94d28edbe8d5ce77ce19a63d8f4a0d3 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Fri, 5 Nov 2021 17:44:55 -0700 Subject: [PATCH 2/5] Shared TestData class and p/invoke declarations --- .../Assembly_Default/Assembly_Default.csproj | 2 +- .../Char/Assembly_Default/PInvoke_Default.cs | 135 +++++++++++++ .../Char/Assembly_False_False/AssemblyInfo.cs | 6 + .../Assembly_False_False.csproj | 2 +- .../Assembly_False_False/PInvoke_Default.cs | 99 +--------- .../Char/Assembly_False_True/AssemblyInfo.cs | 6 + .../Assembly_False_True.csproj | 2 +- .../Assembly_False_True/PInvoke_Default.cs | 99 +--------- .../Char/Assembly_True_False/AssemblyInfo.cs | 6 + .../Assembly_True_False.csproj | 2 +- .../Assembly_True_False/PInvoke_Default.cs | 102 +--------- .../Char/Assembly_True_True/AssemblyInfo.cs | 6 + .../Assembly_True_True.csproj | 2 +- .../Assembly_True_True/PInvoke_Default.cs | 100 +--------- .../BestFitMapping/Char/Directory.Build.props | 13 ++ .../BestFitMapping/Char/PInvoke_Default.cs | 41 ++++ .../Char/PInvoke_False_False.cs | 72 +------ .../BestFitMapping/Char/PInvoke_False_True.cs | 72 +------ .../BestFitMapping/Char/PInvoke_True_False.cs | 72 +------ .../BestFitMapping/Char/PInvoke_True_True.cs | 72 +------ .../Assembly_Default/Assembly_Default.csproj | 2 +- .../LPStr/Assembly_Default/PInvoke_Default.cs | 185 ++++++++++++++++++ .../Assembly_False_False/AssemblyInfo.cs | 6 + .../Assembly_False_False.csproj | 2 +- .../Assembly_False_False/PInvoke_Default.cs | 168 +--------------- .../LPStr/Assembly_False_True/AssemblyInfo.cs | 6 + .../Assembly_False_True.csproj | 2 +- .../Assembly_False_True/PInvoke_Default.cs | 168 +--------------- .../LPStr/Assembly_True_False/AssemblyInfo.cs | 6 + .../Assembly_True_False.csproj | 2 +- .../Assembly_True_False/PInvoke_Default.cs | 168 +--------------- .../LPStr/Assembly_True_True/AssemblyInfo.cs | 6 + .../Assembly_True_True.csproj | 2 +- .../Assembly_True_True/PInvoke_Default.cs | 171 +--------------- .../LPStr/Directory.Build.props | 13 ++ .../BestFitMapping/LPStr/PInvoke_Default.cs | 81 ++++++++ .../LPStr/PInvoke_False_False.cs | 124 +++--------- .../LPStr/PInvoke_False_True.cs | 124 +++--------- .../LPStr/PInvoke_True_False.cs | 124 +++--------- .../BestFitMapping/LPStr/PInvoke_True_True.cs | 124 +++--------- .../Interop/PInvoke/BestFitMapping/Program.cs | 34 ++++ .../PInvoke/BestFitMapping/TestData.cs | 95 +++++++++ 42 files changed, 831 insertions(+), 1693 deletions(-) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Program.cs create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/TestData.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs new file mode 100644 index 00000000000000..ebcdce46c0aa91 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs @@ -0,0 +1,135 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Text; +using System.Runtime.InteropServices; +using TestLibrary; + +using static TestData; + +public partial class PInvoke_Default +{ + static void testChar() + { + Assert.IsTrue(Char_In(GetInvalidChar()), "[Error] Location tc1"); + + Assert.IsTrue(Char_In(GetValidChar()), "[Error] Location tc2"); + + char cTemp = GetInvalidChar(); + char cTempClone = cTemp; + Assert.IsTrue(Char_InByRef(ref cTemp), "[Error] Location tc3"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tc4"); + + cTemp = GetValidChar(); + cTempClone = cTemp; + Assert.IsTrue(Char_InByRef(ref cTemp), "[Error] Location tc5"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tc6"); + + cTemp = GetInvalidChar(); + cTempClone = cTemp; + Assert.IsTrue(Char_InOutByRef(ref cTemp), "[Error] Location tc7"); + Assert.AreNotEqual(cTempClone, cTemp, "[Error] Location tc8"); + + cTemp = GetValidChar(); + cTempClone = cTemp; + Assert.IsTrue(Char_InOutByRef(ref cTemp), "[Error] Location tc9"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tc10"); + } + + static void testCharBufferString() + { + Assert.IsTrue(CharBuffer_In_String(GetInvalidString()), "[Error] Location tcbs1"); + + Assert.IsTrue(CharBuffer_In_String(GetValidString()), "[Error] Location tcbs2"); + + String cTemp = GetInvalidString(); + String cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InByRef_String(ref cTemp), "[Error] Location tcbs3"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tcbs4"); + + cTemp = GetValidString(); + cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InByRef_String(ref cTemp), "[Error] Location tcbs5"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tcbs6"); + + cTemp = GetInvalidString(); + cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InOutByRef_String(ref cTemp), "[Error] Location tcbs7"); + Assert.AreNotEqual(cTempClone, cTemp, "[Error] Location tcbs8"); + + cTemp = GetValidString(); + cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InOutByRef_String(ref cTemp), "[Error] Location tcbs9"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tcbs10"); + } + + static void testCharBufferStringBuilder() + { + Assert.IsTrue(CharBuffer_In_StringBuilder(GetInvalidStringBuilder()), "[Error] Location tcbsb1"); + + Assert.IsTrue(CharBuffer_In_StringBuilder(GetValidStringBuilder()), "[Error] Location tcbsb2"); + + StringBuilder cTemp = GetInvalidStringBuilder(); + StringBuilder cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb3"); + Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb4"); + + cTemp = GetValidStringBuilder(); + cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb5"); + Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb6"); + + cTemp = GetInvalidStringBuilder(); + cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb7"); + Assert.AreNotEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb8"); + + cTemp = GetValidStringBuilder(); + cTempClone = cTemp; + Assert.IsTrue(CharBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb9"); + Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb10"); + } + + static char[] GetInvalidArray() + { + char[] c = new char[3]; + + c[0] = (char)0x2216; + c[1] = (char)0x2216; + c[2] = (char)0x2216; + + return c; + } + + static char[] GetValidArray() + { + char[] c = new char[3]; + + c[0] = 'a'; + c[1] = 'b'; + c[2] = 'c'; + + return c; + } + + static void testCharArrayWithOffset() + { + char[] c = GetInvalidArray(); + ArrayWithOffset arrWOff_0 = new ArrayWithOffset(c, 0); + Assert.IsTrue(Char_InOut_ArrayWithOffset(arrWOff_0), "[Error] Location ctlpsawo11"); + + c = GetValidArray(); + ArrayWithOffset arrWOff_1 = new ArrayWithOffset(c, 1); + Assert.IsTrue(Char_InOut_ArrayWithOffset(arrWOff_1), "[Error] Location ctlpsawo22"); + } + + public static void RunTest() + { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); + testChar(); + testCharBufferString(); + testCharBufferStringBuilder(); + testCharArrayWithOffset(); + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/AssemblyInfo.cs new file mode 100644 index 00000000000000..ba71ae63b953a2 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs index 1890beaadc1fe9..ff1c974763e20c 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs @@ -6,82 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] +using static TestData; -public class BFM_CharMarshaler +public partial class PInvoke_Default { - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.True(Char_In(GetInvalidChar())); @@ -151,30 +79,11 @@ static void testCharBufferStringBuilder() Assert.Equal(cTempClone.ToString(), cTemp.ToString()); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/AssemblyInfo.cs new file mode 100644 index 00000000000000..9d7331548071eb --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs index 92bad6bb31b9d9..8384b837ac3d26 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs @@ -6,82 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] +using static TestData; -public class BFM_CharMarshaler +public partial class PInvoke_Default { - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.Throws(() => Char_In(GetInvalidChar())); @@ -145,30 +73,11 @@ static void testCharBufferStringBuilder() Assert.Equal(cTempClone.ToString(), cTemp.ToString()); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/AssemblyInfo.cs new file mode 100644 index 00000000000000..1b8dfcd8a3475a --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs index 6dbfc4003e413e..c426b6e03c2e27 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs @@ -6,85 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] +using static TestData; -public class BFM_CharMarshaler +public partial class PInvoke_Default { - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InOut_ArrayWithOffset([In, Out]ArrayWithOffset charArrayWithOffset); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.True(Char_In(GetInvalidChar())); @@ -199,31 +124,12 @@ static void testCharArrayWithOffset() Assert.True(Char_InOut_ArrayWithOffset(arrWOff_1)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); testCharArrayWithOffset(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/AssemblyInfo.cs new file mode 100644 index 00000000000000..b92e13d520b9f6 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs index 12b5f7a2587867..bff76057ce3110 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs @@ -6,83 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] +using static TestData; -public class BFM_CharMarshaler +public partial class PInvoke_Default { - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_In([In]char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InByRef([In]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InOutByRef([In, Out]ref char c); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_String([In]String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_String([In]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); - - [DllImport("Char_BestFitMappingNative")] - public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.True(Char_In(GetInvalidChar())); @@ -152,30 +79,11 @@ static void testCharBufferStringBuilder() Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props new file mode 100644 index 00000000000000..3bd9e1f94e611a --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs new file mode 100644 index 00000000000000..5501ec4c61c79f --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs @@ -0,0 +1,41 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Text; +using System.Runtime.InteropServices; + +using static TestData; + +public partial class PInvoke_Default +{ + [DllImport("Char_BestFitMappingNative")] + public static extern bool Char_In([In]char c); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool Char_InByRef([In]ref char c); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool Char_InOutByRef([In, Out]ref char c); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool CharBuffer_In_String([In]String s); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool CharBuffer_InByRef_String([In]ref String s); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool CharBuffer_InOutByRef_String([In, Out]ref String s); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool CharBuffer_In_StringBuilder([In]StringBuilder s); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool CharBuffer_InByRef_StringBuilder([In]ref StringBuilder s); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); + + [DllImport("Char_BestFitMappingNative")] + public static extern bool Char_InOut_ArrayWithOffset([In, Out]ArrayWithOffset charArrayWithOffset); +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs index dd337aff5280e9..d801f24ebf40df 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs @@ -6,7 +6,9 @@ using System.Runtime.InteropServices; using Xunit; -public class BFM_CharMarshaler +using static TestData; + +public class PInvoke_False_False { [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool Char_In([In]char c); @@ -35,51 +37,6 @@ public class BFM_CharMarshaler [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.True(Char_In(GetInvalidChar())); @@ -149,30 +106,11 @@ static void testCharBufferStringBuilder() Assert.Equal(cTempClone.ToString(), cTemp.ToString()); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=false"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs index 95cfb973a01805..643b0de13fd292 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs @@ -6,7 +6,9 @@ using System.Runtime.InteropServices; using Xunit; -public class BFM_CharMarshaler +using static TestData; + +public class PInvoke_False_True { [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool Char_In([In]char c); @@ -35,51 +37,6 @@ public class BFM_CharMarshaler [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.Throws(() => Char_In(GetInvalidChar())); @@ -143,30 +100,11 @@ static void testCharBufferStringBuilder() Assert.Equal(cTempClone.ToString(), cTemp.ToString()); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=true"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs index 5511b94affe418..85c7ee4c4bb770 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs @@ -6,7 +6,9 @@ using System.Runtime.InteropServices; using Xunit; -public class BFM_CharMarshaler +using static TestData; + +public class PInvoke_True_False { [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool Char_In([In]char c); @@ -35,51 +37,6 @@ public class BFM_CharMarshaler [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.True(Char_In(GetInvalidChar())); @@ -161,30 +118,11 @@ static void testCharBufferStringBuilder() Assert.Equal(cTempClone.ToString(), cTemp.ToString()); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=false"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs index 4d5aa316b8e90d..b66c56bc3e7cf9 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs @@ -6,7 +6,9 @@ using System.Runtime.InteropServices; using Xunit; -public class BFM_CharMarshaler +using static TestData; + +public class PInvoke_True_True { [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool Char_In([In]char c); @@ -35,51 +37,6 @@ public class BFM_CharMarshaler [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - - static char GetInvalidChar() - { - return (char)0x2216; - } - - static char GetValidChar() - { - return 'c'; - } - static void testChar() { Assert.True(Char_In(GetInvalidChar())); @@ -149,30 +106,11 @@ static void testCharBufferStringBuilder() Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=true"); testChar(); testCharBufferString(); testCharBufferStringBuilder(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs new file mode 100644 index 00000000000000..0fd769df0cb85e --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs @@ -0,0 +1,185 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Text; +using System.Runtime.InteropServices; +using TestLibrary; + +using static TestData; + +public partial class PInvoke_Default +{ + static void testLPStrBufferString() + { + Assert.IsTrue(LPStrBuffer_In_String(GetInvalidString()), "[Error] Location tlpsbs1"); + Assert.IsTrue(LPStrBuffer_In_String(GetValidString()), "[Error] Location tlpsbs2"); + + String cTemp = GetInvalidString(); + String cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InByRef_String(ref cTemp), "[Error] Location tlpsbs3"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tlpsbs4"); + + cTemp = GetValidString(); + cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InByRef_String(ref cTemp), "[Error] Location tlpsbs5"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tlpsbs6"); + + cTemp = GetInvalidString(); + cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InOutByRef_String(ref cTemp), "[Error] Location tlpsbs7"); + Assert.AreNotEqual(cTempClone, cTemp, "[Error] Location tlpsbs8"); + + cTemp = GetValidString(); + cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InOutByRef_String(ref cTemp), "[Error] Location tlpsbs9"); + Assert.AreEqual(cTempClone, cTemp, "[Error] Location tlpsbs10"); + } + + static void testLPStrBufferStringBuilder() + { + Assert.IsTrue(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder()), "[Error] Location tlpsbsb1"); + Assert.IsTrue(LPStrBuffer_In_StringBuilder(GetValidStringBuilder()), "[Error] Location tlpsbsb2"); + + StringBuilder cTemp = GetInvalidStringBuilder(); + StringBuilder cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb3"); + Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb4"); + + cTemp = GetValidStringBuilder(); + cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb5"); + Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb6"); + + cTemp = GetInvalidStringBuilder(); + cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb7"); + Assert.AreNotEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb8"); + + cTemp = GetValidStringBuilder(); + cTempClone = cTemp; + Assert.IsTrue(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb9"); + Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb10"); + } + + static LPStrTestStruct GetInvalidStruct() + { + LPStrTestStruct inValidStruct = new LPStrTestStruct(); + inValidStruct.str = GetInvalidString(); + + return inValidStruct; + } + + static LPStrTestStruct GetValidStruct() + { + LPStrTestStruct validStruct = new LPStrTestStruct(); + validStruct.str = GetValidString(); + + return validStruct; + } + + static void testLPStrBufferStruct() + { + Assert.IsTrue(LPStrBuffer_In_Struct_String(GetInvalidStruct()), "[Error] Location tlpsbst1"); + Assert.IsTrue(LPStrBuffer_In_Struct_String(GetValidStruct()), "[Error] Location tlpsbst2"); + + LPStrTestStruct lpss = GetInvalidStruct(); + Assert.IsTrue(LPStrBuffer_InByRef_Struct_String(ref lpss), "[Error] Location tlpsbst3"); + + lpss = GetValidStruct(); + Assert.IsTrue(LPStrBuffer_InByRef_Struct_String(ref lpss), "[Error] Location tlpsbst4"); + + lpss = GetInvalidStruct(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Struct_String(ref lpss), "[Error] Location tlpsbst5"); + + lpss = GetValidStruct(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Struct_String(ref lpss), "[Error] Location tlpsbst6"); + } + + static void testLPStrBufferArray() + { + String[] s = GetInvalidStringArray(); + Assert.IsTrue(LPStrBuffer_In_Array_String(s), "[Error] Location tlpsba1"); + + s = GetValidStringArray(); + Assert.IsTrue(LPStrBuffer_In_Array_String(s), "[Error] Location tlpsba2"); + + s = GetInvalidStringArray(); + Assert.IsTrue(LPStrBuffer_InByRef_Array_String(ref s), "[Error] Location tlpsba3"); + + s = GetValidStringArray(); + Assert.IsTrue(LPStrBuffer_InByRef_Array_String(ref s), "[Error] Location tlpsba4"); + + s = GetInvalidStringArray(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Array_String(ref s), "[Error] Location tlpsba5"); + + s = GetValidStringArray(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Array_String(ref s), "[Error] Location tlpsba6"); + } + + static void testLPStrBufferClass() + { + LPStrTestClass sClass = new LPStrTestClass(); + sClass.str = GetInvalidString(); + Assert.IsTrue(LPStrBuffer_In_Class_String(sClass), "[Error] Location tlpsbc1"); + + sClass.str = GetValidString(); + Assert.IsTrue(LPStrBuffer_In_Class_String(sClass), "[Error] Location tlpsbc2"); + + sClass.str = GetInvalidString(); + Assert.IsTrue(LPStrBuffer_InByRef_Class_String(ref sClass), "[Error] Location tlpsbc3"); + + sClass.str = GetValidString(); + Assert.IsTrue(LPStrBuffer_InByRef_Class_String(ref sClass), "[Error] Location tlpsbc4"); + + sClass.str = GetInvalidString(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Class_String(ref sClass), "[Error] Location tlpsbc5"); + + sClass.str = GetValidString(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Class_String(ref sClass), "[Error] Location tlpsbc6"); + } + + static void testLPStrBufferArrayOfStructs() + { + LPStrTestStruct[] lpss = new LPStrTestStruct[2]; + lpss[0] = GetInvalidStruct(); + lpss[1] = GetInvalidStruct(); + Assert.IsTrue(LPStrBuffer_In_Array_Struct(lpss), "[Error] Location tlpsbaos1"); + + lpss = new LPStrTestStruct[2]; + lpss[0] = GetValidStruct(); + lpss[1] = GetValidStruct(); + Assert.IsTrue(LPStrBuffer_In_Array_Struct(lpss), "[Error] Location tlpsbaos2"); + + lpss = new LPStrTestStruct[2]; + lpss[0] = GetInvalidStruct(); + lpss[1] = GetInvalidStruct(); + Assert.IsTrue(LPStrBuffer_InByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos3"); + + lpss = new LPStrTestStruct[2]; + lpss[0] = GetValidStruct(); + lpss[1] = GetValidStruct(); + Assert.IsTrue(LPStrBuffer_InByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos4"); + + lpss = new LPStrTestStruct[2]; + lpss[0] = GetInvalidStruct(); + lpss[1] = GetInvalidStruct(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos5"); + + lpss = new LPStrTestStruct[2]; + lpss[0] = GetValidStruct(); + lpss[1] = GetValidStruct(); + Assert.IsTrue(LPStrBuffer_InOutByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos6"); + } + + public static void RunTest() + { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); + testLPStrBufferString(); + testLPStrBufferStringBuilder(); + testLPStrBufferStruct(); + testLPStrBufferArray(); + testLPStrBufferClass(); + testLPStrBufferArrayOfStructs(); + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs new file mode 100644 index 00000000000000..ba71ae63b953a2 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs index 6ceacf24783605..d082fee3e90dee 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs @@ -6,115 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] +using static TestData; -[StructLayout(LayoutKind.Sequential)] -public struct LPStrTestStruct +public partial class PInvoke_Default { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.True(LPStrBuffer_In_String(GetInvalidString())); @@ -176,28 +71,6 @@ static LPStrTestStruct GetValidStruct() return validStruct; } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferStruct() { LPStrTestStruct lpss = GetInvalidStruct(); @@ -251,23 +124,23 @@ static void testLPStrBufferClass() static void testLPStrBufferArray() { - String[] lpss = GetInvalidArray(); + String[] lpss = GetInvalidStringArray(); Assert.True(LPStrBuffer_In_Array_String(lpss)); - Assert.True(LPStrBuffer_In_Array_String(GetValidArray())); + Assert.True(LPStrBuffer_In_Array_String(GetValidStringArray())); - String[] cTemp = GetInvalidArray(); + String[] cTemp = GetInvalidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetInvalidArray(); + cTemp = GetInvalidStringArray(); String[] cTempClone = new String[3]; cTempClone[0] = cTemp[0]; Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); Assert.NotEqual(cTempClone[0], cTemp[0]); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); cTempClone[0] = cTemp[0]; Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); Assert.Equal(cTempClone[0], cTemp[0]); @@ -314,8 +187,9 @@ static void testLPStrBufferArrayOfStructs() Assert.Equal(lpss[0].str, lpssClone[0].str ); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -323,26 +197,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs new file mode 100644 index 00000000000000..9d7331548071eb --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs index 88a5faaccfed65..fdfb85e1a60f5c 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs @@ -6,115 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] +using static TestData; -[StructLayout(LayoutKind.Sequential)] -public struct LPStrTestStruct +public partial class PInvoke_Default { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); @@ -171,28 +66,6 @@ static LPStrTestStruct GetValidStruct() return validStruct; } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferStruct() { Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); @@ -243,22 +116,22 @@ static void testLPStrBufferClass() static void testLPStrBufferArray() { String[] cTest = null; - cTest = GetInvalidArray(); + cTest = GetInvalidStringArray(); Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - cTest = GetValidArray(); + cTest = GetValidStringArray(); Assert.True(LPStrBuffer_In_Array_String(cTest)); - String[] cTemp = GetInvalidArray(); + String[] cTemp = GetInvalidStringArray(); Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetInvalidArray(); + cTemp = GetInvalidStringArray(); Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); String[] cTempClone = new String[3]; cTempClone[0] = cTemp[0]; Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); @@ -303,8 +176,9 @@ static void testLPStrBufferArrayOfStructs() Assert.Equal(lpss[0].str, lpssClone[0].str); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -312,26 +186,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs new file mode 100644 index 00000000000000..1b8dfcd8a3475a --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs index 2fe7af3b2be717..3fb9a45748e19b 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs @@ -6,115 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] +using static TestData; -[StructLayout(LayoutKind.Sequential)] -public struct LPStrTestStruct +public partial class PInvoke_Default { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.True(LPStrBuffer_In_String(GetInvalidString())); @@ -201,46 +96,24 @@ static void testLPStrBufferStruct() Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferArray() { - String[] s = GetInvalidArray(); + String[] s = GetInvalidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); } @@ -299,8 +172,9 @@ static void testLPStrBufferArrayOfStructs() Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -308,26 +182,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs new file mode 100644 index 00000000000000..b92e13d520b9f6 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs @@ -0,0 +1,6 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Runtime.InteropServices; + +[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj index dcb39b6b27c578..9b74758668d151 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj @@ -5,7 +5,7 @@ true - + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs index f738c569e08d21..16bf77eeada3a4 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs @@ -6,118 +6,10 @@ using System.Runtime.InteropServices; using Xunit; -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] +using static TestData; -[StructLayout(LayoutKind.Sequential)] -//[BestFitMapping(true, ThrowOnUnmappableChar=true)] -public struct LPStrTestStruct +public partial class PInvoke_Default { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -[StructLayout(LayoutKind.Sequential)] -//[BestFitMapping(true, ThrowOnUnmappableChar=true)] -public class LPStrTestClass -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} - -public class BFM_LPStrMarshaler -{ -#pragma warning disable 618 - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - - [DllImport("LPStr_BestFitMappingNative")] - public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.True(LPStrBuffer_In_String(GetInvalidString())); @@ -197,46 +89,24 @@ static void testLPStrBufferStruct() Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferArray() { - String[] s = GetInvalidArray(); + String[] s = GetInvalidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); } @@ -295,8 +165,9 @@ static void testLPStrBufferArrayOfStructs() Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -304,26 +175,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } - catch (Exception e) - { - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props new file mode 100644 index 00000000000000..3bd9e1f94e611a --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs new file mode 100644 index 00000000000000..a90fbd0a85ec00 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs @@ -0,0 +1,81 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Text; +using System.Runtime.InteropServices; + +using static TestData; + +public partial class PInvoke_Default +{ + [StructLayout(LayoutKind.Sequential)] + public struct LPStrTestStruct + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } + + [StructLayout(LayoutKind.Sequential)] + public class LPStrTestClass + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } + +#pragma warning disable 618 + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InByRef_String([In][MarshalAs(UnmanagedType.LPStr)]ref String s); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InOutByRef_String([In, Out][MarshalAs(UnmanagedType.LPStr)]ref String s); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_In_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]StringBuilder s); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InByRef_StringBuilder([In][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InOutByRef_StringBuilder([In, Out][MarshalAs(UnmanagedType.LPStr)]ref StringBuilder s); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_In_Struct_String([In][MarshalAs(UnmanagedType.Struct)]LPStrTestStruct strStruct); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InByRef_Struct_String([In][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InOutByRef_Struct_String([In, Out][MarshalAs(UnmanagedType.Struct)]ref LPStrTestStruct strStruct); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_In_Array_String([In][MarshalAs(UnmanagedType.LPArray)]String[] strArray); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InByRef_Array_String([In][MarshalAs(UnmanagedType.LPArray)]ref String[] strArray); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InOutByRef_Array_String([In, Out][MarshalAs(UnmanagedType.LPArray)]ref String[] Array); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_In_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]LPStrTestClass strClass); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InByRef_Class_String([In][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InOutByRef_Class_String([In, Out][MarshalAs(UnmanagedType.LPStruct)]ref LPStrTestClass strClass); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_In_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]LPStrTestStruct[] structArray); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InByRef_Array_Struct([In][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); + + [DllImport("LPStr_BestFitMappingNative")] + public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); +#pragma warning restore 618 +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs index 5db6851db3bf86..aca2439d491e1c 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs @@ -6,24 +6,26 @@ using System.Runtime.InteropServices; using Xunit; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} +using static TestData; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = false)] -public class LPStrTestClass +public class PInvoke_False_False { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(false, ThrowOnUnmappableChar = false)] + public struct LPStrTestStruct + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } + + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(false, ThrowOnUnmappableChar = false)] + public class LPStrTestClass + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } -public class BFM_LPStrMarshaler -{ #pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,41 +82,6 @@ public class BFM_LPStrMarshaler public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); #pragma warning restore 618 - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.True(LPStrBuffer_In_String(GetInvalidString())); @@ -179,28 +146,6 @@ static LPStrTestStruct GetValidStruct() return validStruct; } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferStruct() { LPStrTestStruct lpss = GetInvalidStruct(); @@ -255,24 +200,24 @@ static void testLPStrBufferClass() static void testLPStrBufferArray() { - String[] lpss = GetInvalidArray(); + String[] lpss = GetInvalidStringArray(); Assert.True(LPStrBuffer_In_Array_String(lpss)); - Assert.True(LPStrBuffer_In_Array_String(GetValidArray())); + Assert.True(LPStrBuffer_In_Array_String(GetValidStringArray())); - String[] cTemp = GetInvalidArray(); + String[] cTemp = GetInvalidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetInvalidArray(); + cTemp = GetInvalidStringArray(); String[] cTempClone = new String[3]; cTempClone[0] = cTemp[0]; Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); Assert.NotEqual(cTempClone[0], cTemp[0]); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); cTempClone[0] = cTemp[0]; Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); Assert.Equal(cTempClone[0], cTemp[0]); @@ -319,8 +264,9 @@ static void testLPStrBufferArrayOfStructs() Assert.Equal(lpss[0].str, lpssClone[0].str); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=false"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -328,24 +274,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs index a9bcd732f29b70..e3e4f0b653e60f 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs @@ -6,24 +6,26 @@ using System.Runtime.InteropServices; using Xunit; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} +using static TestData; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(false, ThrowOnUnmappableChar = true)] -public class LPStrTestClass +public class PInvoke_False_True { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(false, ThrowOnUnmappableChar = true)] + public struct LPStrTestStruct + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } + + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(false, ThrowOnUnmappableChar = true)] + public class LPStrTestClass + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } -public class BFM_LPStrMarshaler -{ #pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,41 +82,6 @@ public class BFM_LPStrMarshaler public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); #pragma warning restore 618 - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); @@ -173,28 +140,6 @@ static LPStrTestStruct GetValidStruct() return validStruct; } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferStruct() { Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); @@ -246,22 +191,22 @@ static void testLPStrBufferClass() static void testLPStrBufferArray() { String[] cTest = null; - cTest = GetInvalidArray(); + cTest = GetInvalidStringArray(); Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - cTest = GetValidArray(); + cTest = GetValidStringArray(); Assert.True(LPStrBuffer_In_Array_String(cTest)); - String[] cTemp = GetInvalidArray(); + String[] cTemp = GetInvalidStringArray(); Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - cTemp = GetInvalidArray(); + cTemp = GetInvalidStringArray(); Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - cTemp = GetValidArray(); + cTemp = GetValidStringArray(); String[] cTempClone = new String[3]; cTempClone[0] = cTemp[0]; Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); @@ -306,8 +251,9 @@ static void testLPStrBufferArrayOfStructs() Assert.Equal(lpss[0].str, lpssClone[0].str); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=true"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -315,24 +261,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs index 8652eea56547ff..d326d55f3bf0bf 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs @@ -6,24 +6,26 @@ using System.Runtime.InteropServices; using Xunit; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} +using static TestData; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = false)] -public class LPStrTestClass +public class PInvoke_True_False { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(true, ThrowOnUnmappableChar = false)] + public struct LPStrTestStruct + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } + + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(true, ThrowOnUnmappableChar = false)] + public class LPStrTestClass + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } -public class BFM_LPStrMarshaler -{ #pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,41 +82,6 @@ public class BFM_LPStrMarshaler public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); #pragma warning restore 618 - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - sbl.Append('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.True(LPStrBuffer_In_String(GetInvalidString())); @@ -205,46 +172,24 @@ static void testLPStrBufferStruct() Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferArray() { - String[] s = GetInvalidArray(); + String[] s = GetInvalidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); } @@ -303,8 +248,9 @@ static void testLPStrBufferArrayOfStructs() Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=false"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -312,24 +258,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs index 66a38e2ef36709..5a70a3cb7a967d 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs @@ -6,24 +6,26 @@ using System.Runtime.InteropServices; using Xunit; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public struct LPStrTestStruct -{ - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} +using static TestData; -[StructLayout(LayoutKind.Sequential)] -[BestFitMapping(true, ThrowOnUnmappableChar = true)] -public class LPStrTestClass +public class PInvoke_True_True { - [MarshalAs(UnmanagedType.LPStr)] - public String str; -} + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(true, ThrowOnUnmappableChar = true)] + public struct LPStrTestStruct + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } + + [StructLayout(LayoutKind.Sequential)] + [BestFitMapping(true, ThrowOnUnmappableChar = true)] + public class LPStrTestClass + { + [MarshalAs(UnmanagedType.LPStr)] + public String str; + } -public class BFM_LPStrMarshaler -{ #pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,41 +82,6 @@ public class BFM_LPStrMarshaler public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); #pragma warning restore 618 - static String GetValidString() - { - return "This is the initial test string."; - } - - static String GetInvalidString() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl.ToString(); - } - - static StringBuilder GetValidStringBuilder() - { - StringBuilder sb = new StringBuilder("test string."); - return sb; - } - - static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - //sbl.Append ('乀'); - return sbl; - } - static void testLPStrBufferString() { Assert.True(LPStrBuffer_In_String(GetInvalidString())); @@ -197,46 +164,24 @@ static void testLPStrBufferStruct() Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); } - static String[] GetValidArray() - { - String[] s = new String[3]; - - s[0] = GetValidString(); - s[1] = GetValidString(); - s[2] = GetValidString(); - - return s; - } - - static String[] GetInvalidArray() - { - String[] s = new String[3]; - - s[0] = GetInvalidString(); - s[1] = GetInvalidString(); - s[2] = GetInvalidString(); - - return s; - } - static void testLPStrBufferArray() { - String[] s = GetInvalidArray(); + String[] s = GetInvalidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_In_Array_String(s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - s = GetInvalidArray(); + s = GetInvalidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - s = GetValidArray(); + s = GetValidStringArray(); Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); } @@ -295,8 +240,9 @@ static void testLPStrBufferArrayOfStructs() Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); } - static void runTest() + public static void RunTest() { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=true"); testLPStrBufferString(); testLPStrBufferStringBuilder(); testLPStrBufferStruct(); @@ -304,24 +250,4 @@ static void runTest() testLPStrBufferClass(); testLPStrBufferArrayOfStructs(); } - - public static int Main() - { - if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") - { - Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); - - Console.WriteLine("--- Success"); - return 100; - } - - try - { - runTest(); - return 100; - } catch (Exception e){ - Console.WriteLine($"Test Failure: {e}"); - return 101; - } - } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Program.cs b/src/tests/Interop/PInvoke/BestFitMapping/Program.cs new file mode 100644 index 00000000000000..f7bb12537b06cb --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Program.cs @@ -0,0 +1,34 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Text; +using System.Runtime.InteropServices; +using TestLibrary; + +public class Program +{ + public static int Main() + { + if (System.Globalization.CultureInfo.CurrentCulture.Name != "en-US") + { + Console.WriteLine("Non-US English platforms are not supported.\nPassing without running tests"); + + Console.WriteLine("--- Success"); + return 100; + } + + try + { + PInvoke_Default.RunTest(); + PInvoke_False_False.RunTest(); + PInvoke_False_True.RunTest(); + PInvoke_True_False.RunTest(); + PInvoke_True_True.RunTest(); + return 100; + } catch (Exception e){ + Console.WriteLine($"Test Failure: {e}"); + return 101; + } + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs b/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs new file mode 100644 index 00000000000000..bae22c728d6aa3 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs @@ -0,0 +1,95 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System.Text; + +public static class TestData +{ + public static string GetInvalidString() + { + return GetInvalidStringBuilder().ToString(); + } + + public static string GetUnmappableString() + { + return GetUnmappableStringBuilder().ToString(); + } + + public static string GetValidString() + { + return GetValidStringBuilder().ToString(); + } + + public static StringBuilder GetInvalidStringBuilder() + { + StringBuilder sbl = new StringBuilder(); + sbl.Append((char)0x2216); + sbl.Append((char)0x2044); + sbl.Append((char)0x2215); + sbl.Append((char)0x0589); + sbl.Append((char)0x2236); + return sbl; + } + + public static StringBuilder GetUnmappableStringBuilder() + { + StringBuilder sbl = new StringBuilder(); + sbl.Append('乀'); + sbl.Append('Ω'); + sbl.Append('火'); + return sbl; + } + + public static StringBuilder GetValidStringBuilder() + { + return new StringBuilder("This is the initial test string."); + } + + public static char GetInvalidChar() + { + return (char)0x2216; + } + + public static char GetValidChar() + { + return 'c'; + } + + public static char GetUnmappableChar() + { + return '火'; + } + + public static string[] GetInvalidStringArray() + { + string invalid = GetInvalidString(); + return new string[] + { + invalid, + invalid, + invalid + }; + } + + public static string[] GetUnmappableStringArray() + { + string unmappable = GetUnmappableString(); + return new string[] + { + unmappable, + unmappable, + unmappable + }; + } + + public static string[] GetValidStringArray() + { + string valid = GetValidString(); + return new string[] + { + valid, + valid, + valid + }; + } +} From 7b6f8c299c75e38df6c7c59e0e189156ae3ff188 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Mon, 8 Nov 2021 14:40:12 -0800 Subject: [PATCH 3/5] Shared PInvoke_Default and helpers for test cases --- .../Char/Assembly_Default/PInvoke_Default.cs | 127 +-------- .../Assembly_False_False/PInvoke_Default.cs | 81 +----- .../Assembly_False_True/PInvoke_Default.cs | 75 +---- .../Assembly_True_False/PInvoke_Default.cs | 127 +-------- .../Assembly_True_True/PInvoke_Default.cs | 81 +----- .../Char/BestFitMappingNative.cpp | 20 -- .../BestFitMapping/Char/Directory.Build.props | 5 + .../BestFitMapping/Char/PInvoke_Default.cs | 32 ++- .../Char/PInvoke_False_False.cs | 104 ++----- .../BestFitMapping/Char/PInvoke_False_True.cs | 97 ++----- .../BestFitMapping/Char/PInvoke_True_False.cs | 116 ++------ .../BestFitMapping/Char/PInvoke_True_True.cs | 104 ++----- .../LPStr/Assembly_Default/PInvoke_Default.cs | 177 +----------- .../Assembly_False_False/PInvoke_Default.cs | 192 +------------ .../Assembly_False_True/PInvoke_Default.cs | 181 +------------ .../Assembly_True_False/PInvoke_Default.cs | 177 +----------- .../Assembly_True_True/PInvoke_Default.cs | 170 +----------- .../LPStr/Directory.Build.props | 5 + .../BestFitMapping/LPStr/PInvoke_Default.cs | 71 ++++- .../LPStr/PInvoke_False_False.cs | 256 +++++------------- .../LPStr/PInvoke_False_True.cs | 243 +++++------------ .../LPStr/PInvoke_True_False.cs | 240 +++++----------- .../BestFitMapping/LPStr/PInvoke_True_True.cs | 232 +++++----------- .../Interop/PInvoke/BestFitMapping/Test.cs | 95 +++++++ 24 files changed, 587 insertions(+), 2421 deletions(-) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Test.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs index ebcdce46c0aa91..fafab5827a64cb 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs @@ -1,135 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using TestLibrary; - -using static TestData; - public partial class PInvoke_Default { - static void testChar() - { - Assert.IsTrue(Char_In(GetInvalidChar()), "[Error] Location tc1"); - - Assert.IsTrue(Char_In(GetValidChar()), "[Error] Location tc2"); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.IsTrue(Char_InByRef(ref cTemp), "[Error] Location tc3"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tc4"); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.IsTrue(Char_InByRef(ref cTemp), "[Error] Location tc5"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tc6"); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.IsTrue(Char_InOutByRef(ref cTemp), "[Error] Location tc7"); - Assert.AreNotEqual(cTempClone, cTemp, "[Error] Location tc8"); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.IsTrue(Char_InOutByRef(ref cTemp), "[Error] Location tc9"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tc10"); - } - - static void testCharBufferString() - { - Assert.IsTrue(CharBuffer_In_String(GetInvalidString()), "[Error] Location tcbs1"); - - Assert.IsTrue(CharBuffer_In_String(GetValidString()), "[Error] Location tcbs2"); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InByRef_String(ref cTemp), "[Error] Location tcbs3"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tcbs4"); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InByRef_String(ref cTemp), "[Error] Location tcbs5"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tcbs6"); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InOutByRef_String(ref cTemp), "[Error] Location tcbs7"); - Assert.AreNotEqual(cTempClone, cTemp, "[Error] Location tcbs8"); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InOutByRef_String(ref cTemp), "[Error] Location tcbs9"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tcbs10"); - } - - static void testCharBufferStringBuilder() - { - Assert.IsTrue(CharBuffer_In_StringBuilder(GetInvalidStringBuilder()), "[Error] Location tcbsb1"); - - Assert.IsTrue(CharBuffer_In_StringBuilder(GetValidStringBuilder()), "[Error] Location tcbsb2"); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb3"); - Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb4"); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb5"); - Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb6"); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb7"); - Assert.AreNotEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb8"); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.IsTrue(CharBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tcbsb9"); - Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tcbsb10"); - } - - static char[] GetInvalidArray() - { - char[] c = new char[3]; - - c[0] = (char)0x2216; - c[1] = (char)0x2216; - c[2] = (char)0x2216; - - return c; - } - - static char[] GetValidArray() - { - char[] c = new char[3]; - - c[0] = 'a'; - c[1] = 'b'; - c[2] = 'c'; - - return c; - } - - static void testCharArrayWithOffset() - { - char[] c = GetInvalidArray(); - ArrayWithOffset arrWOff_0 = new ArrayWithOffset(c, 0); - Assert.IsTrue(Char_InOut_ArrayWithOffset(arrWOff_0), "[Error] Location ctlpsawo11"); - - c = GetValidArray(); - ArrayWithOffset arrWOff_1 = new ArrayWithOffset(c, 1); - Assert.IsTrue(Char_InOut_ArrayWithOffset(arrWOff_1), "[Error] Location ctlpsawo22"); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - testCharArrayWithOffset(); + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs index ff1c974763e20c..0eb493234dc3a4 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs @@ -1,89 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal('?', cTemp); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(CharBuffer_In_StringBuilder(sb)); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + RunTest(bestFitMapping: false, throwOnUnmappableChar: false); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs index 8384b837ac3d26..e15be59d936c8a 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs @@ -1,83 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testChar() - { - Assert.Throws(() => Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.Throws(() => CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.Throws(() => CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + RunTest(bestFitMapping: false, throwOnUnmappableChar: true); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs index c426b6e03c2e27..fafab5827a64cb 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs @@ -1,135 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static char[] GetInvalidArray() - { - char[] c = new char[3]; - - c[0] = (char)0x2216; - c[1] = (char)0x2216; - c[2] = (char)0x2216; - - return c; - } - - static char[] GetValidArray() - { - char[] c = new char[3]; - - c[0] = 'a'; - c[1] = 'b'; - c[2] = 'c'; - - return c; - } - - static void testCharArrayWithOffset() - { - char[] c = GetInvalidArray(); - ArrayWithOffset arrWOff_0 = new ArrayWithOffset(c, 0); - Assert.True(Char_InOut_ArrayWithOffset(arrWOff_0)); - - c = GetValidArray(); - ArrayWithOffset arrWOff_1 = new ArrayWithOffset(c, 1); - Assert.True(Char_InOut_ArrayWithOffset(arrWOff_1)); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); - testCharArrayWithOffset(); + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs index bff76057ce3110..ecd011fedcee7a 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs @@ -1,89 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + RunTest(bestFitMapping: true, throwOnUnmappableChar: true); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/BestFitMappingNative.cpp b/src/tests/Interop/PInvoke/BestFitMapping/Char/BestFitMappingNative.cpp index 1ae2bba3d9c776..cb0501b13102ba 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/BestFitMappingNative.cpp +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/BestFitMappingNative.cpp @@ -75,23 +75,3 @@ extern "C" bool DLL_EXPORT STDMETHODCALLTYPE CharBuffer_InOutByRef_StringBuilder return TRUE; } - -extern "C" bool DLL_EXPORT STDMETHODCALLTYPE Char_In_ArrayWithOffset (char* pArrayWithOffset) -{ - return TRUE; -} - -extern "C" bool DLL_EXPORT STDMETHODCALLTYPE Char_InOut_ArrayWithOffset (char* pArrayWithOffset) -{ - return TRUE; -} - -extern "C" bool DLL_EXPORT STDMETHODCALLTYPE Char_InByRef_ArrayWithOffset (char** ppArrayWithOffset) -{ - return TRUE; -} - -extern "C" bool DLL_EXPORT STDMETHODCALLTYPE Char_InOutByRef_ArrayWithOffset (char** ppArrayWithOffset) -{ - return TRUE; -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props index 3bd9e1f94e611a..5f653e49e7c674 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props @@ -1,12 +1,17 @@ + + true + + + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs index 5501ec4c61c79f..98dd84df552deb 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs @@ -5,8 +5,6 @@ using System.Text; using System.Runtime.InteropServices; -using static TestData; - public partial class PInvoke_Default { [DllImport("Char_BestFitMappingNative")] @@ -36,6 +34,32 @@ public partial class PInvoke_Default [DllImport("Char_BestFitMappingNative")] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - [DllImport("Char_BestFitMappingNative")] - public static extern bool Char_InOut_ArrayWithOffset([In, Out]ArrayWithOffset charArrayWithOffset); + private static unsafe void RunTest(bool bestFitMapping, bool throwOnUnmappableChar) + { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); + + Test.ValidateChar( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &Char_In, + &Char_InByRef, + &Char_InOutByRef)); + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_String, + &CharBuffer_InByRef_String, + &CharBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_StringBuilder, + &CharBuffer_InByRef_StringBuilder, + &CharBuffer_InOutByRef_StringBuilder)); + } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs index d801f24ebf40df..ea7de3b61fa5f2 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs @@ -4,9 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; - -using static TestData; public class PInvoke_False_False { @@ -37,80 +34,35 @@ public class PInvoke_False_False [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal('?', cTemp); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(CharBuffer_In_StringBuilder(sb)); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=false"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + + bool bestFitMapping = false; + bool throwOnUnmappableChar = false; + + Test.ValidateChar( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &Char_In, + &Char_InByRef, + &Char_InOutByRef)); + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_String, + &CharBuffer_InByRef_String, + &CharBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_StringBuilder, + &CharBuffer_InByRef_StringBuilder, + &CharBuffer_InOutByRef_StringBuilder)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs index 643b0de13fd292..1e82e5aa0b1403 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs @@ -4,9 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; - -using static TestData; public class PInvoke_False_True { @@ -37,74 +34,34 @@ public class PInvoke_False_True [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static void testChar() - { - Assert.Throws(() => Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - Assert.Throws(() => Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - char cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.Throws(() => CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.Throws(() => CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=true"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + + bool bestFitMapping = false; + bool throwOnUnmappableChar = true; + Test.ValidateChar( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &Char_In, + &Char_InByRef, + &Char_InOutByRef)); + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_String, + &CharBuffer_InByRef_String, + &CharBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_StringBuilder, + &CharBuffer_InByRef_StringBuilder, + &CharBuffer_InOutByRef_StringBuilder)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs index 85c7ee4c4bb770..1aa53f958aca52 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs @@ -4,9 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; - -using static TestData; public class PInvoke_True_False { @@ -37,92 +34,35 @@ public class PInvoke_True_False [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=false"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + + bool bestFitMapping = true; + bool throwOnUnmappableChar = false; + + Test.ValidateChar( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &Char_In, + &Char_InByRef, + &Char_InOutByRef)); + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_String, + &CharBuffer_InByRef_String, + &CharBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_StringBuilder, + &CharBuffer_InByRef_StringBuilder, + &CharBuffer_InOutByRef_StringBuilder)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs index b66c56bc3e7cf9..6ff1dcce5dc02a 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs @@ -4,9 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; - -using static TestData; public class PInvoke_True_True { @@ -37,80 +34,35 @@ public class PInvoke_True_True [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool CharBuffer_InOutByRef_StringBuilder([In, Out]ref StringBuilder s); - static void testChar() - { - Assert.True(Char_In(GetInvalidChar())); - - Assert.True(Char_In(GetValidChar())); - - char cTemp = GetInvalidChar(); - char cTempClone = GetInvalidChar(); - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InByRef(ref cTemp)); - - cTemp = GetInvalidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - - cTemp = GetValidChar(); - cTempClone = cTemp; - Assert.True(Char_InOutByRef(ref cTemp)); - } - - static void testCharBufferString() - { - Assert.True(CharBuffer_In_String(GetInvalidString())); - - Assert.True(CharBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_String(ref cTemp)); - } - - static void testCharBufferStringBuilder() - { - Assert.True(CharBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(CharBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(CharBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=true"); - testChar(); - testCharBufferString(); - testCharBufferStringBuilder(); + + bool bestFitMapping = true; + bool throwOnUnmappableChar = true; + + Test.ValidateChar( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &Char_In, + &Char_InByRef, + &Char_InOutByRef)); + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_String, + &CharBuffer_InByRef_String, + &CharBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &CharBuffer_In_StringBuilder, + &CharBuffer_InByRef_StringBuilder, + &CharBuffer_InOutByRef_StringBuilder)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs index 0fd769df0cb85e..fafab5827a64cb 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs @@ -1,185 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using TestLibrary; - -using static TestData; - public partial class PInvoke_Default { - static void testLPStrBufferString() - { - Assert.IsTrue(LPStrBuffer_In_String(GetInvalidString()), "[Error] Location tlpsbs1"); - Assert.IsTrue(LPStrBuffer_In_String(GetValidString()), "[Error] Location tlpsbs2"); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InByRef_String(ref cTemp), "[Error] Location tlpsbs3"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tlpsbs4"); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InByRef_String(ref cTemp), "[Error] Location tlpsbs5"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tlpsbs6"); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InOutByRef_String(ref cTemp), "[Error] Location tlpsbs7"); - Assert.AreNotEqual(cTempClone, cTemp, "[Error] Location tlpsbs8"); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InOutByRef_String(ref cTemp), "[Error] Location tlpsbs9"); - Assert.AreEqual(cTempClone, cTemp, "[Error] Location tlpsbs10"); - } - - static void testLPStrBufferStringBuilder() - { - Assert.IsTrue(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder()), "[Error] Location tlpsbsb1"); - Assert.IsTrue(LPStrBuffer_In_StringBuilder(GetValidStringBuilder()), "[Error] Location tlpsbsb2"); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb3"); - Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb4"); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb5"); - Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb6"); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb7"); - Assert.AreNotEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb8"); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.IsTrue(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp), "[Error] Location tlpsbsb9"); - Assert.AreEqual(cTempClone.ToString(), cTemp.ToString(), "[Error] Location tlpsbsb10"); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.IsTrue(LPStrBuffer_In_Struct_String(GetInvalidStruct()), "[Error] Location tlpsbst1"); - Assert.IsTrue(LPStrBuffer_In_Struct_String(GetValidStruct()), "[Error] Location tlpsbst2"); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.IsTrue(LPStrBuffer_InByRef_Struct_String(ref lpss), "[Error] Location tlpsbst3"); - - lpss = GetValidStruct(); - Assert.IsTrue(LPStrBuffer_InByRef_Struct_String(ref lpss), "[Error] Location tlpsbst4"); - - lpss = GetInvalidStruct(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Struct_String(ref lpss), "[Error] Location tlpsbst5"); - - lpss = GetValidStruct(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Struct_String(ref lpss), "[Error] Location tlpsbst6"); - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidStringArray(); - Assert.IsTrue(LPStrBuffer_In_Array_String(s), "[Error] Location tlpsba1"); - - s = GetValidStringArray(); - Assert.IsTrue(LPStrBuffer_In_Array_String(s), "[Error] Location tlpsba2"); - - s = GetInvalidStringArray(); - Assert.IsTrue(LPStrBuffer_InByRef_Array_String(ref s), "[Error] Location tlpsba3"); - - s = GetValidStringArray(); - Assert.IsTrue(LPStrBuffer_InByRef_Array_String(ref s), "[Error] Location tlpsba4"); - - s = GetInvalidStringArray(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Array_String(ref s), "[Error] Location tlpsba5"); - - s = GetValidStringArray(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Array_String(ref s), "[Error] Location tlpsba6"); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.IsTrue(LPStrBuffer_In_Class_String(sClass), "[Error] Location tlpsbc1"); - - sClass.str = GetValidString(); - Assert.IsTrue(LPStrBuffer_In_Class_String(sClass), "[Error] Location tlpsbc2"); - - sClass.str = GetInvalidString(); - Assert.IsTrue(LPStrBuffer_InByRef_Class_String(ref sClass), "[Error] Location tlpsbc3"); - - sClass.str = GetValidString(); - Assert.IsTrue(LPStrBuffer_InByRef_Class_String(ref sClass), "[Error] Location tlpsbc4"); - - sClass.str = GetInvalidString(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Class_String(ref sClass), "[Error] Location tlpsbc5"); - - sClass.str = GetValidString(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Class_String(ref sClass), "[Error] Location tlpsbc6"); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.IsTrue(LPStrBuffer_In_Array_Struct(lpss), "[Error] Location tlpsbaos1"); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.IsTrue(LPStrBuffer_In_Array_Struct(lpss), "[Error] Location tlpsbaos2"); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.IsTrue(LPStrBuffer_InByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos3"); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.IsTrue(LPStrBuffer_InByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos4"); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos5"); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.IsTrue(LPStrBuffer_InOutByRef_Array_Struct(ref lpss), "[Error] Location tlpsbaos6"); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs index d082fee3e90dee..0eb493234dc3a4 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs @@ -1,200 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_In_StringBuilder(sb)); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - LPStrTestStruct cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp = GetValidStruct(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass lpss = new LPStrTestClass(); - lpss.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - lpss.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] lpss = GetInvalidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(lpss)); - Assert.True(LPStrBuffer_In_Array_String(GetValidStringArray())); - - String[] cTemp = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidStringArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.NotEqual(cTempClone[0], cTemp[0]); - - cTemp = GetValidStringArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.NotEqual(lpss[0].str, lpssClone[0].str); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str ); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + RunTest(bestFitMapping: false, throwOnUnmappableChar: false); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs index fdfb85e1a60f5c..e15be59d936c8a 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs @@ -1,189 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testLPStrBufferString() - { - Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.Throws(() => LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString() ); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - LPStrTestStruct cTempClone = new LPStrTestStruct(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass cTest = new LPStrTestClass(); - cTest.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_In_Class_String(cTest)); - - cTest.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(cTest)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] cTest = null; - cTest = GetInvalidStringArray(); - Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - - cTest = GetValidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(cTest)); - - String[] cTemp = GetInvalidStringArray(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidStringArray(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - - cTemp = GetValidStringArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = null; - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + RunTest(bestFitMapping: false, throwOnUnmappableChar: true); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs index 3fb9a45748e19b..fafab5827a64cb 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs @@ -1,185 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs index 16bf77eeada3a4..ecd011fedcee7a 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs @@ -1,178 +1,10 @@ // Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. -using System; -using System.Text; -using System.Runtime.InteropServices; -using Xunit; - -using static TestData; - public partial class PInvoke_Default { - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - public static void RunTest() { - Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + RunTest(bestFitMapping: true, throwOnUnmappableChar: true); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props index 3bd9e1f94e611a..f8ec5230e18990 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props @@ -1,6 +1,10 @@ + + true + + @@ -8,6 +12,7 @@ + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs index a90fbd0a85ec00..543c3bac8df37e 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs @@ -23,7 +23,6 @@ public class LPStrTestClass public String str; } -#pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative")] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -77,5 +76,73 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative")] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 + + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; + + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; + + private static unsafe void RunTest(bool bestFitMapping, bool throwOnUnmappableChar) + { + Console.WriteLine(" -- Validate P/Invokes: BestFitMapping not set, ThrowOnUnmappableChar not set"); + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_String, + &LPStrBuffer_InByRef_String, + &LPStrBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_StringBuilder, + &LPStrBuffer_InByRef_StringBuilder, + &LPStrBuffer_InOutByRef_StringBuilder)); + + Test.ValidateStringArray( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_String, + &LPStrBuffer_InByRef_Array_String, + &LPStrBuffer_InOutByRef_Array_String)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Struct_String, + &LPStrBuffer_InByRef_Struct_String, + &LPStrBuffer_InOutByRef_Struct_String), + new Test.DataContext( + GetInvalidStruct(), + GetValidStruct(), + (LPStrTestStruct s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Class_String, + &LPStrBuffer_InByRef_Class_String, + &LPStrBuffer_InOutByRef_Class_String), + new Test.DataContext( + new LPStrTestClass() { str = GetInvalidString() }, + new LPStrTestClass() { str = GetValidString() }, + (LPStrTestClass s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_Struct, + &LPStrBuffer_InByRef_Array_Struct, + &LPStrBuffer_InOutByRef_Array_Struct), + new Test.DataContext( + new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, + (LPStrTestStruct[] s) => s[0].str)); + } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs index aca2439d491e1c..7deda7b5ffc4a5 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs @@ -4,7 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; using static TestData; @@ -26,7 +25,6 @@ public class LPStrTestClass public String str; } -#pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,198 +78,76 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - StringBuilder sb = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_In_StringBuilder(sb)); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Struct_String(lpss)); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - cTemp = GetInvalidStruct(); - LPStrTestStruct cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; - cTemp = GetValidStruct(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass lpss = new LPStrTestClass(); - lpss.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - lpss.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(lpss)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.NotEqual(cTempClone.str, cTemp.str); - - cTemp.str = GetValidString(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] lpss = GetInvalidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(lpss)); - - Assert.True(LPStrBuffer_In_Array_String(GetValidStringArray())); - - String[] cTemp = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidStringArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.NotEqual(cTempClone[0], cTemp[0]); - - cTemp = GetValidStringArray(); - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.NotEqual(lpss[0].str, lpssClone[0].str); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=false"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + + bool bestFitMapping = false; + bool throwOnUnmappableChar = false; + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_String, + &LPStrBuffer_InByRef_String, + &LPStrBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_StringBuilder, + &LPStrBuffer_InByRef_StringBuilder, + &LPStrBuffer_InOutByRef_StringBuilder)); + + Test.ValidateStringArray( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_String, + &LPStrBuffer_InByRef_Array_String, + &LPStrBuffer_InOutByRef_Array_String)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Struct_String, + &LPStrBuffer_InByRef_Struct_String, + &LPStrBuffer_InOutByRef_Struct_String), + new Test.DataContext( + GetInvalidStruct(), + GetValidStruct(), + (LPStrTestStruct s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Class_String, + &LPStrBuffer_InByRef_Class_String, + &LPStrBuffer_InOutByRef_Class_String), + new Test.DataContext( + new LPStrTestClass() { str = GetInvalidString() }, + new LPStrTestClass() { str = GetValidString() }, + (LPStrTestClass s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_Struct, + &LPStrBuffer_InByRef_Array_Struct, + &LPStrBuffer_InOutByRef_Array_Struct), + new Test.DataContext( + new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, + (LPStrTestStruct[] s) => s[0].str)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs index e3e4f0b653e60f..1fa8ab198775e3 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs @@ -4,7 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; using static TestData; @@ -26,7 +25,6 @@ public class LPStrTestClass public String str; } -#pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,185 +78,76 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - static void testLPStrBufferString() - { - Assert.Throws(() => LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.Throws(() => LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - Assert.Throws(() => LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } - - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.Throws(() => LPStrBuffer_In_Struct_String(GetInvalidStruct())); + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; - LPStrTestStruct cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref cTemp)); - - cTemp = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - - cTemp = GetValidStruct(); - LPStrTestStruct cTempClone = new LPStrTestStruct(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferClass() - { - LPStrTestClass cTest = new LPStrTestClass(); - cTest.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_In_Class_String(cTest)); - - cTest.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(cTest)); - - LPStrTestClass cTemp = new LPStrTestClass(); - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref cTemp)); - - cTemp.str = GetInvalidString(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - - cTemp.str = GetValidString(); - LPStrTestClass cTempClone = new LPStrTestClass(); - cTempClone.str = cTemp.str; - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref cTemp)); - Assert.Equal(cTempClone.str, cTemp.str); - } - - static void testLPStrBufferArray() - { - String[] cTest = null; - cTest = GetInvalidStringArray(); - Assert.Throws(() => LPStrBuffer_In_Array_String(cTest)); - - cTest = GetValidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(cTest)); - - String[] cTemp = GetInvalidStringArray(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref cTemp)); - - cTemp = GetInvalidStringArray(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - - cTemp = GetValidStringArray(); - String[] cTempClone = new String[3]; - cTempClone[0] = cTemp[0]; - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref cTemp)); - Assert.Equal(cTempClone[0], cTemp[0]); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = null; - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.Throws(() => LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - LPStrTestStruct[] lpssClone = new LPStrTestStruct[2]; - lpssClone[0].str = lpss[0].str; - lpssClone[1].str = lpss[1].str; - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - Assert.Equal(lpss[0].str, lpssClone[0].str); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=false, ThrowOnUnmappableChar=true"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + + bool bestFitMapping = false; + bool throwOnUnmappableChar = true; + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_String, + &LPStrBuffer_InByRef_String, + &LPStrBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_StringBuilder, + &LPStrBuffer_InByRef_StringBuilder, + &LPStrBuffer_InOutByRef_StringBuilder)); + + Test.ValidateStringArray( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_String, + &LPStrBuffer_InByRef_Array_String, + &LPStrBuffer_InOutByRef_Array_String)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Struct_String, + &LPStrBuffer_InByRef_Struct_String, + &LPStrBuffer_InOutByRef_Struct_String), + new Test.DataContext( + GetInvalidStruct(), + GetValidStruct(), + (LPStrTestStruct s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Class_String, + &LPStrBuffer_InByRef_Class_String, + &LPStrBuffer_InOutByRef_Class_String), + new Test.DataContext( + new LPStrTestClass() { str = GetInvalidString() }, + new LPStrTestClass() { str = GetValidString() }, + (LPStrTestClass s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_Struct, + &LPStrBuffer_InByRef_Array_Struct, + &LPStrBuffer_InOutByRef_Array_Struct), + new Test.DataContext( + new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, + (LPStrTestStruct[] s) => s[0].str)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs index d326d55f3bf0bf..436c448790d118 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs @@ -4,7 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; using static TestData; @@ -26,7 +25,6 @@ public class LPStrTestClass public String str; } -#pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,182 +78,76 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.NotEqual(cTempClone, cTemp); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - Assert.Equal(cTempClone, cTemp); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.NotEqual(cTempClone.ToString(), cTemp.ToString()); + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - Assert.Equal(cTempClone.ToString(), cTemp.ToString()); - } + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=false"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + + bool bestFitMapping = true; + bool throwOnUnmappableChar = false; + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_String, + &LPStrBuffer_InByRef_String, + &LPStrBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_StringBuilder, + &LPStrBuffer_InByRef_StringBuilder, + &LPStrBuffer_InOutByRef_StringBuilder)); + + Test.ValidateStringArray( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_String, + &LPStrBuffer_InByRef_Array_String, + &LPStrBuffer_InOutByRef_Array_String)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Struct_String, + &LPStrBuffer_InByRef_Struct_String, + &LPStrBuffer_InOutByRef_Struct_String), + new Test.DataContext( + GetInvalidStruct(), + GetValidStruct(), + (LPStrTestStruct s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Class_String, + &LPStrBuffer_InByRef_Class_String, + &LPStrBuffer_InOutByRef_Class_String), + new Test.DataContext( + new LPStrTestClass() { str = GetInvalidString() }, + new LPStrTestClass() { str = GetValidString() }, + (LPStrTestClass s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_Struct, + &LPStrBuffer_InByRef_Array_Struct, + &LPStrBuffer_InOutByRef_Array_Struct), + new Test.DataContext( + new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, + (LPStrTestStruct[] s) => s[0].str)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs index 5a70a3cb7a967d..d50e6011ecf3e3 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs @@ -4,7 +4,6 @@ using System; using System.Text; using System.Runtime.InteropServices; -using Xunit; using static TestData; @@ -26,7 +25,6 @@ public class LPStrTestClass public String str; } -#pragma warning disable 618 [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_In_String([In][MarshalAs(UnmanagedType.LPStr)]String s); @@ -80,174 +78,76 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); -#pragma warning restore 618 - static void testLPStrBufferString() - { - Assert.True(LPStrBuffer_In_String(GetInvalidString())); - - Assert.True(LPStrBuffer_In_String(GetValidString())); - - String cTemp = GetInvalidString(); - String cTempClone = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_String(ref cTemp)); - - cTemp = GetInvalidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - - cTemp = GetValidString(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_String(ref cTemp)); - } - - static void testLPStrBufferStringBuilder() - { - Assert.True(LPStrBuffer_In_StringBuilder(GetInvalidStringBuilder())); - - Assert.True(LPStrBuffer_In_StringBuilder(GetValidStringBuilder())); - - StringBuilder cTemp = GetInvalidStringBuilder(); - StringBuilder cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InByRef_StringBuilder(ref cTemp)); - - cTemp = GetInvalidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - cTemp = GetValidStringBuilder(); - cTempClone = cTemp; - Assert.True(LPStrBuffer_InOutByRef_StringBuilder(ref cTemp)); - } + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; - static LPStrTestStruct GetInvalidStruct() - { - LPStrTestStruct inValidStruct = new LPStrTestStruct(); - inValidStruct.str = GetInvalidString(); - - return inValidStruct; - } - - - static LPStrTestStruct GetValidStruct() - { - LPStrTestStruct validStruct = new LPStrTestStruct(); - validStruct.str = GetValidString(); - - return validStruct; - } - - static void testLPStrBufferStruct() - { - Assert.True(LPStrBuffer_In_Struct_String(GetInvalidStruct())); - - Assert.True(LPStrBuffer_In_Struct_String(GetValidStruct())); - - LPStrTestStruct lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Struct_String(ref lpss)); - - lpss = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - - lpss = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Struct_String(ref lpss)); - } - - static void testLPStrBufferArray() - { - String[] s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_In_Array_String(s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InByRef_Array_String(ref s)); - - s = GetInvalidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - - s = GetValidStringArray(); - Assert.True(LPStrBuffer_InOutByRef_Array_String(ref s)); - } - - static void testLPStrBufferClass() - { - LPStrTestClass sClass = new LPStrTestClass(); - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_In_Class_String(sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InByRef_Class_String(ref sClass)); - - sClass.str = GetInvalidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - - sClass.str = GetValidString(); - Assert.True(LPStrBuffer_InOutByRef_Class_String(ref sClass)); - } - - static void testLPStrBufferArrayOfStructs() - { - LPStrTestStruct[] lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_In_Array_Struct(lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetInvalidStruct(); - lpss[1] = GetInvalidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - - lpss = new LPStrTestStruct[2]; - lpss[0] = GetValidStruct(); - lpss[1] = GetValidStruct(); - Assert.True(LPStrBuffer_InOutByRef_Array_Struct(ref lpss)); - } - - public static void RunTest() + public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=true"); - testLPStrBufferString(); - testLPStrBufferStringBuilder(); - testLPStrBufferStruct(); - testLPStrBufferArray(); - testLPStrBufferClass(); - testLPStrBufferArrayOfStructs(); + + bool bestFitMapping = true; + bool throwOnUnmappableChar = true; + + Test.ValidateString( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_String, + &LPStrBuffer_InByRef_String, + &LPStrBuffer_InOutByRef_String)); + + Test.ValidateStringBuilder( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_StringBuilder, + &LPStrBuffer_InByRef_StringBuilder, + &LPStrBuffer_InOutByRef_StringBuilder)); + + Test.ValidateStringArray( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_String, + &LPStrBuffer_InByRef_Array_String, + &LPStrBuffer_InOutByRef_Array_String)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Struct_String, + &LPStrBuffer_InByRef_Struct_String, + &LPStrBuffer_InOutByRef_Struct_String), + new Test.DataContext( + GetInvalidStruct(), + GetValidStruct(), + (LPStrTestStruct s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Class_String, + &LPStrBuffer_InByRef_Class_String, + &LPStrBuffer_InOutByRef_Class_String), + new Test.DataContext( + new LPStrTestClass() { str = GetInvalidString() }, + new LPStrTestClass() { str = GetValidString() }, + (LPStrTestClass s) => s.str)); + + Test.Validate( + bestFitMapping, + throwOnUnmappableChar, + new Test.Functions( + &LPStrBuffer_In_Array_Struct, + &LPStrBuffer_InByRef_Array_Struct, + &LPStrBuffer_InOutByRef_Array_Struct), + new Test.DataContext( + new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, + (LPStrTestStruct[] s) => s[0].str)); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Test.cs b/src/tests/Interop/PInvoke/BestFitMapping/Test.cs new file mode 100644 index 00000000000000..e1b01d64c58de4 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Test.cs @@ -0,0 +1,95 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +using System; +using System.Text; +using System.Runtime.InteropServices; +using Xunit; + +using static TestData; + +internal unsafe class Test +{ + internal record DataContext(T Invalid, T Valid, Func GetValueToCompare); + + internal readonly struct Functions + { + public Functions( + delegate* inByValue, + delegate* inByRef, + delegate* inOutByRef) + { + In = inByValue; + InByRef = inByRef; + InOutByRef = inOutByRef; + } + + public readonly delegate* In; + public readonly delegate* InByRef; + public readonly delegate* InOutByRef; + } + + public static void Validate(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs, DataContext data) + { + bool shouldThrowOnInvalid = !bestFitMapping && throwOnUnmappableChar; + + T invalid = data.Invalid; + if (shouldThrowOnInvalid) + { + Assert.Throws(() => funcs.In(invalid)); + + invalid = data.Invalid; + Assert.Throws(() => funcs.InByRef(ref invalid)); + + invalid = data.Invalid; + Assert.Throws(() => funcs.InOutByRef(ref invalid)); + } + else + { + Assert.True(funcs.In(invalid)); + + invalid = data.Invalid; + Assert.True(funcs.InByRef(ref invalid)); + Assert.Equal(data.GetValueToCompare(data.Invalid), data.GetValueToCompare(invalid)); + + invalid = data.Invalid; + Assert.True(funcs.InOutByRef(ref invalid)); + Assert.NotEqual(data.GetValueToCompare(data.Invalid), data.GetValueToCompare(invalid)); + } + + T valid = data.Valid; + Assert.True(funcs.In(valid)); + + valid = data.Valid; + Assert.True(funcs.InByRef(ref valid)); + Assert.Equal(data.GetValueToCompare(data.Valid), data.GetValueToCompare(valid)); + + valid = data.Valid; + Assert.True(funcs.InOutByRef(ref valid)); + Assert.Equal(data.GetValueToCompare(data.Valid), data.GetValueToCompare(valid)); + } + + public static void ValidateChar(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) + { + var context = new DataContext(GetInvalidChar(), GetValidChar(), (char c) => c); + Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); + } + + public static void ValidateString(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) + { + var context = new DataContext(GetInvalidString(), GetValidString(), (string s) => s); + Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); + } + + public static void ValidateStringBuilder(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) + { + var context = new DataContext(GetInvalidStringBuilder(), GetValidStringBuilder(), (StringBuilder s) => s.ToString()); + Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); + } + + public static void ValidateStringArray(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) + { + var context = new DataContext(GetInvalidStringArray(), GetValidStringArray(), (string[] s) => s[0]); + Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); + } +} From cb700266d1292e645b66cdd86e6713b0b68fe763 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Tue, 9 Nov 2021 14:03:08 -0800 Subject: [PATCH 4/5] Add cases with unmappable characters --- .../BestFitMapping/LPStr/PInvoke_Default.cs | 13 ++- .../LPStr/PInvoke_False_False.cs | 13 ++- .../LPStr/PInvoke_False_True.cs | 13 ++- .../LPStr/PInvoke_True_False.cs | 14 ++- .../BestFitMapping/LPStr/PInvoke_True_True.cs | 13 ++- .../Interop/PInvoke/BestFitMapping/Test.cs | 34 +++++- .../PInvoke/BestFitMapping/TestData.cs | 105 ++++-------------- 7 files changed, 89 insertions(+), 116 deletions(-) diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs index 543c3bac8df37e..e6cc5c3979b838 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs @@ -77,9 +77,9 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative")] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - - private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = InvalidString }; + private static LPStrTestStruct GetUnmappableStruct() => new LPStrTestStruct() { str = UnmappableString }; + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = ValidString }; private static unsafe void RunTest(bool bestFitMapping, bool throwOnUnmappableChar) { @@ -118,6 +118,7 @@ private static unsafe void RunTest(bool bestFitMapping, bool throwOnUnmappableCh &LPStrBuffer_InOutByRef_Struct_String), new Test.DataContext( GetInvalidStruct(), + GetUnmappableStruct(), GetValidStruct(), (LPStrTestStruct s) => s.str)); @@ -129,8 +130,9 @@ private static unsafe void RunTest(bool bestFitMapping, bool throwOnUnmappableCh &LPStrBuffer_InByRef_Class_String, &LPStrBuffer_InOutByRef_Class_String), new Test.DataContext( - new LPStrTestClass() { str = GetInvalidString() }, - new LPStrTestClass() { str = GetValidString() }, + new LPStrTestClass() { str = InvalidString }, + new LPStrTestClass() { str = UnmappableString }, + new LPStrTestClass() { str = ValidString }, (LPStrTestClass s) => s.str)); Test.Validate( @@ -142,6 +144,7 @@ private static unsafe void RunTest(bool bestFitMapping, bool throwOnUnmappableCh &LPStrBuffer_InOutByRef_Array_Struct), new Test.DataContext( new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetUnmappableStruct(), GetUnmappableStruct() }, new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, (LPStrTestStruct[] s) => s[0].str)); } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs index 7deda7b5ffc4a5..d90bd6f591fe9b 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs @@ -79,9 +79,9 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - - private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = InvalidString }; + private static LPStrTestStruct GetUnmappableStruct() => new LPStrTestStruct() { str = UnmappableString }; + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = ValidString }; public static unsafe void RunTest() { @@ -123,6 +123,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Struct_String), new Test.DataContext( GetInvalidStruct(), + GetUnmappableStruct(), GetValidStruct(), (LPStrTestStruct s) => s.str)); @@ -134,8 +135,9 @@ public static unsafe void RunTest() &LPStrBuffer_InByRef_Class_String, &LPStrBuffer_InOutByRef_Class_String), new Test.DataContext( - new LPStrTestClass() { str = GetInvalidString() }, - new LPStrTestClass() { str = GetValidString() }, + new LPStrTestClass() { str = InvalidString }, + new LPStrTestClass() { str = UnmappableString }, + new LPStrTestClass() { str = ValidString }, (LPStrTestClass s) => s.str)); Test.Validate( @@ -147,6 +149,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Array_Struct), new Test.DataContext( new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetUnmappableStruct(), GetUnmappableStruct() }, new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, (LPStrTestStruct[] s) => s[0].str)); } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs index 1fa8ab198775e3..581d8db7df082b 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs @@ -79,9 +79,9 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - - private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = InvalidString }; + private static LPStrTestStruct GetUnmappableStruct() => new LPStrTestStruct() { str = UnmappableString }; + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = ValidString }; public static unsafe void RunTest() { @@ -123,6 +123,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Struct_String), new Test.DataContext( GetInvalidStruct(), + GetUnmappableStruct(), GetValidStruct(), (LPStrTestStruct s) => s.str)); @@ -134,8 +135,9 @@ public static unsafe void RunTest() &LPStrBuffer_InByRef_Class_String, &LPStrBuffer_InOutByRef_Class_String), new Test.DataContext( - new LPStrTestClass() { str = GetInvalidString() }, - new LPStrTestClass() { str = GetValidString() }, + new LPStrTestClass() { str = InvalidString }, + new LPStrTestClass() { str = UnmappableString }, + new LPStrTestClass() { str = ValidString }, (LPStrTestClass s) => s.str)); Test.Validate( @@ -147,6 +149,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Array_Struct), new Test.DataContext( new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetUnmappableStruct(), GetUnmappableStruct() }, new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, (LPStrTestStruct[] s) => s[0].str)); } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs index 436c448790d118..be9321ad885ff6 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs @@ -79,10 +79,9 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - - private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; - + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = InvalidString }; + private static LPStrTestStruct GetUnmappableStruct() => new LPStrTestStruct() { str = UnmappableString }; + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = ValidString }; public static unsafe void RunTest() { Console.WriteLine(" -- Validate P/Invokes: BestFitMapping=true, ThrowOnUnmappableChar=false"); @@ -123,6 +122,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Struct_String), new Test.DataContext( GetInvalidStruct(), + GetUnmappableStruct(), GetValidStruct(), (LPStrTestStruct s) => s.str)); @@ -134,8 +134,9 @@ public static unsafe void RunTest() &LPStrBuffer_InByRef_Class_String, &LPStrBuffer_InOutByRef_Class_String), new Test.DataContext( - new LPStrTestClass() { str = GetInvalidString() }, - new LPStrTestClass() { str = GetValidString() }, + new LPStrTestClass() { str = InvalidString }, + new LPStrTestClass() { str = UnmappableString }, + new LPStrTestClass() { str = ValidString }, (LPStrTestClass s) => s.str)); Test.Validate( @@ -147,6 +148,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Array_Struct), new Test.DataContext( new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetUnmappableStruct(), GetUnmappableStruct() }, new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, (LPStrTestStruct[] s) => s[0].str)); } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs index d50e6011ecf3e3..4f0b408da9300f 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs @@ -79,9 +79,9 @@ public class LPStrTestClass [DllImport("LPStr_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] public static extern bool LPStrBuffer_InOutByRef_Array_Struct([In, Out][MarshalAs(UnmanagedType.LPArray)]ref LPStrTestStruct[] structArray); - private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = GetInvalidString() }; - - private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = GetValidString() }; + private static LPStrTestStruct GetInvalidStruct() => new LPStrTestStruct() { str = InvalidString }; + private static LPStrTestStruct GetUnmappableStruct() => new LPStrTestStruct() { str = UnmappableString }; + private static LPStrTestStruct GetValidStruct() => new LPStrTestStruct() { str = ValidString }; public static unsafe void RunTest() { @@ -123,6 +123,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Struct_String), new Test.DataContext( GetInvalidStruct(), + GetUnmappableStruct(), GetValidStruct(), (LPStrTestStruct s) => s.str)); @@ -134,8 +135,9 @@ public static unsafe void RunTest() &LPStrBuffer_InByRef_Class_String, &LPStrBuffer_InOutByRef_Class_String), new Test.DataContext( - new LPStrTestClass() { str = GetInvalidString() }, - new LPStrTestClass() { str = GetValidString() }, + new LPStrTestClass() { str = InvalidString }, + new LPStrTestClass() { str = UnmappableString }, + new LPStrTestClass() { str = ValidString }, (LPStrTestClass s) => s.str)); Test.Validate( @@ -147,6 +149,7 @@ public static unsafe void RunTest() &LPStrBuffer_InOutByRef_Array_Struct), new Test.DataContext( new LPStrTestStruct[] { GetInvalidStruct(), GetInvalidStruct() }, + new LPStrTestStruct[] { GetUnmappableStruct(), GetUnmappableStruct() }, new LPStrTestStruct[] { GetValidStruct(), GetValidStruct() }, (LPStrTestStruct[] s) => s[0].str)); } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Test.cs b/src/tests/Interop/PInvoke/BestFitMapping/Test.cs index e1b01d64c58de4..126bb7337783b4 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Test.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Test.cs @@ -10,7 +10,7 @@ internal unsafe class Test { - internal record DataContext(T Invalid, T Valid, Func GetValueToCompare); + internal record DataContext(T Invalid, T Unmappable, T Valid, Func GetValueToCompare); internal readonly struct Functions { @@ -57,6 +57,30 @@ public static void Validate(bool bestFitMapping, bool throwOnUnmappableCha Assert.NotEqual(data.GetValueToCompare(data.Invalid), data.GetValueToCompare(invalid)); } + T unmappable = data.Unmappable; + if (throwOnUnmappableChar) + { + Assert.Throws(() => funcs.In(unmappable)); + + unmappable = data.Unmappable; + Assert.Throws(() => funcs.InByRef(ref unmappable)); + + unmappable = data.Unmappable; + Assert.Throws(() => funcs.InOutByRef(ref unmappable)); + } + else + { + Assert.True(funcs.In(unmappable)); + + unmappable = data.Unmappable; + Assert.True(funcs.InByRef(ref unmappable)); + Assert.Equal(data.GetValueToCompare(data.Unmappable), data.GetValueToCompare(unmappable)); + + unmappable = data.Unmappable; + Assert.True(funcs.InOutByRef(ref unmappable)); + Assert.NotEqual(data.GetValueToCompare(data.Unmappable), data.GetValueToCompare(unmappable)); + } + T valid = data.Valid; Assert.True(funcs.In(valid)); @@ -71,25 +95,25 @@ public static void Validate(bool bestFitMapping, bool throwOnUnmappableCha public static void ValidateChar(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) { - var context = new DataContext(GetInvalidChar(), GetValidChar(), (char c) => c); + var context = new DataContext(InvalidChar, UnmappableChar, ValidChar, (char c) => c); Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); } public static void ValidateString(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) { - var context = new DataContext(GetInvalidString(), GetValidString(), (string s) => s); + var context = new DataContext(InvalidString, UnmappableString, ValidString, (string s) => s); Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); } public static void ValidateStringBuilder(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) { - var context = new DataContext(GetInvalidStringBuilder(), GetValidStringBuilder(), (StringBuilder s) => s.ToString()); + var context = new DataContext(InvalidStringBuilder, UnmappableStringBuilder, ValidStringBuilder, (StringBuilder s) => s.ToString()); Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); } public static void ValidateStringArray(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs) { - var context = new DataContext(GetInvalidStringArray(), GetValidStringArray(), (string[] s) => s[0]); + var context = new DataContext(InvalidStringArray, UnmappableStringArray, ValidStringArray, (string[] s) => s[0]); Validate(bestFitMapping, throwOnUnmappableChar, funcs, context); } } diff --git a/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs b/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs index bae22c728d6aa3..d8e93106b590f6 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/TestData.cs @@ -5,91 +5,26 @@ public static class TestData { - public static string GetInvalidString() - { - return GetInvalidStringBuilder().ToString(); - } + public const char InvalidChar = (char)0x2216; + public const char UnmappableChar = '火'; + public const char ValidChar = 'c'; - public static string GetUnmappableString() - { - return GetUnmappableStringBuilder().ToString(); - } - - public static string GetValidString() - { - return GetValidStringBuilder().ToString(); - } - - public static StringBuilder GetInvalidStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append((char)0x2216); - sbl.Append((char)0x2044); - sbl.Append((char)0x2215); - sbl.Append((char)0x0589); - sbl.Append((char)0x2236); - return sbl; - } - - public static StringBuilder GetUnmappableStringBuilder() - { - StringBuilder sbl = new StringBuilder(); - sbl.Append('乀'); - sbl.Append('Ω'); - sbl.Append('火'); - return sbl; - } - - public static StringBuilder GetValidStringBuilder() - { - return new StringBuilder("This is the initial test string."); - } - - public static char GetInvalidChar() - { - return (char)0x2216; - } - - public static char GetValidChar() - { - return 'c'; - } - - public static char GetUnmappableChar() - { - return '火'; - } - - public static string[] GetInvalidStringArray() - { - string invalid = GetInvalidString(); - return new string[] - { - invalid, - invalid, - invalid - }; - } - - public static string[] GetUnmappableStringArray() - { - string unmappable = GetUnmappableString(); - return new string[] - { - unmappable, - unmappable, - unmappable - }; - } - - public static string[] GetValidStringArray() - { - string valid = GetValidString(); - return new string[] + public static readonly string InvalidString = new string(new char[] { - valid, - valid, - valid - }; - } + (char)0x2216, + (char)0x2044, + (char)0x2215, + (char)0x0589, + (char)0x2236 + }); + public static readonly string UnmappableString = new string(new char[] { '乀', 'Ω', '火' }); + public static readonly string ValidString = "This is the initial test string."; + + public static readonly StringBuilder InvalidStringBuilder = new StringBuilder(InvalidString); + public static readonly StringBuilder UnmappableStringBuilder = new StringBuilder(UnmappableString); + public static readonly StringBuilder ValidStringBuilder = new StringBuilder(ValidString); + + public static readonly string[] InvalidStringArray = new string[] { InvalidString, InvalidString, InvalidString }; + public static readonly string[] UnmappableStringArray = new string[] { UnmappableString, UnmappableString, UnmappableString }; + public static readonly string[] ValidStringArray = new string[] { ValidString, ValidString, ValidString }; } From d99a6cd6c85d0330f57239e09b96ea9d52866118 Mon Sep 17 00:00:00 2001 From: Elinor Fung Date: Tue, 9 Nov 2021 16:55:59 -0800 Subject: [PATCH 5/5] Collapse Char/LPStr tests into same project --- .../Assembly_Default/Assembly_Default.csproj | 3 -- .../Assembly_Default/PInvoke_Default.cs | 24 +++++++++++++++ .../Assembly_False_False/AssemblyInfo.cs | 0 .../Assembly_False_False.csproj | 3 -- .../Assembly_False_False/PInvoke_Default.cs | 24 +++++++++++++++ .../Assembly_False_True/AssemblyInfo.cs | 0 .../Assembly_False_True.csproj | 3 -- .../Assembly_False_True/PInvoke_Default.cs | 24 +++++++++++++++ .../Assembly_True_False/AssemblyInfo.cs | 0 .../Assembly_True_False.csproj | 3 -- .../Assembly_True_False/PInvoke_Default.cs | 24 +++++++++++++++ .../Assembly_True_True/AssemblyInfo.cs | 0 .../Assembly_True_True.csproj | 3 -- .../Assembly_True_True/PInvoke_Default.cs | 24 +++++++++++++++ .../Char/Assembly_Default/PInvoke_Default.cs | 10 ------- .../Assembly_False_False.csproj | 13 -------- .../Assembly_False_False/PInvoke_Default.cs | 10 ------- .../Assembly_False_True.csproj | 13 -------- .../Assembly_False_True/PInvoke_Default.cs | 10 ------- .../Assembly_True_False.csproj | 13 -------- .../Assembly_True_False/PInvoke_Default.cs | 10 ------- .../Assembly_True_True/PInvoke_Default.cs | 10 ------- .../BestFitMapping/Char/Directory.Build.props | 18 ----------- .../BestFitMapping/Char/PInvoke_Default.cs | 2 ++ .../Char/PInvoke_False_False.cs | 2 ++ .../BestFitMapping/Char/PInvoke_False_True.cs | 2 ++ .../BestFitMapping/Char/PInvoke_True_False.cs | 2 ++ .../BestFitMapping/Char/PInvoke_True_True.cs | 2 ++ .../BestFitMapping/Directory.Build.props | 30 +++++++++++++++++++ .../Assembly_Default/Assembly_Default.csproj | 13 -------- .../LPStr/Assembly_Default/PInvoke_Default.cs | 10 ------- .../Assembly_False_False/AssemblyInfo.cs | 6 ---- .../Assembly_False_False/PInvoke_Default.cs | 10 ------- .../LPStr/Assembly_False_True/AssemblyInfo.cs | 6 ---- .../Assembly_False_True/PInvoke_Default.cs | 10 ------- .../LPStr/Assembly_True_False/AssemblyInfo.cs | 6 ---- .../Assembly_True_False/PInvoke_Default.cs | 10 ------- .../LPStr/Assembly_True_True/AssemblyInfo.cs | 6 ---- .../Assembly_True_True.csproj | 13 -------- .../Assembly_True_True/PInvoke_Default.cs | 10 ------- .../LPStr/Directory.Build.props | 18 ----------- .../BestFitMapping/LPStr/PInvoke_Default.cs | 2 ++ .../LPStr/PInvoke_False_False.cs | 2 ++ .../LPStr/PInvoke_False_True.cs | 2 ++ .../LPStr/PInvoke_True_False.cs | 2 ++ .../BestFitMapping/LPStr/PInvoke_True_True.cs | 2 ++ .../Interop/PInvoke/BestFitMapping/Program.cs | 18 +++++++---- .../Interop/PInvoke/BestFitMapping/Test.cs | 2 ++ 48 files changed, 185 insertions(+), 245 deletions(-) rename src/tests/Interop/PInvoke/BestFitMapping/{Char => }/Assembly_Default/Assembly_Default.csproj (80%) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/PInvoke_Default.cs rename src/tests/Interop/PInvoke/BestFitMapping/{Char => }/Assembly_False_False/AssemblyInfo.cs (100%) rename src/tests/Interop/PInvoke/BestFitMapping/{LPStr => }/Assembly_False_False/Assembly_False_False.csproj (80%) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/PInvoke_Default.cs rename src/tests/Interop/PInvoke/BestFitMapping/{Char => }/Assembly_False_True/AssemblyInfo.cs (100%) rename src/tests/Interop/PInvoke/BestFitMapping/{LPStr => }/Assembly_False_True/Assembly_False_True.csproj (80%) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/PInvoke_Default.cs rename src/tests/Interop/PInvoke/BestFitMapping/{Char => }/Assembly_True_False/AssemblyInfo.cs (100%) rename src/tests/Interop/PInvoke/BestFitMapping/{LPStr => }/Assembly_True_False/Assembly_True_False.csproj (80%) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/PInvoke_Default.cs rename src/tests/Interop/PInvoke/BestFitMapping/{Char => }/Assembly_True_True/AssemblyInfo.cs (100%) rename src/tests/Interop/PInvoke/BestFitMapping/{Char => }/Assembly_True_True/Assembly_True_True.csproj (80%) create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props create mode 100644 src/tests/Interop/PInvoke/BestFitMapping/Directory.Build.props delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs delete mode 100644 src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/Assembly_Default.csproj similarity index 80% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/Assembly_Default.csproj index 9b74758668d151..2b9c677b90a845 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/Assembly_Default.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/Assembly_Default.csproj @@ -7,7 +7,4 @@ - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/PInvoke_Default.cs new file mode 100644 index 00000000000000..60723e479bbf02 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_Default/PInvoke_Default.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Char +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); + } + } +} + +namespace LPStr +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); + } + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/AssemblyInfo.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/AssemblyInfo.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/AssemblyInfo.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/Assembly_False_False.csproj similarity index 80% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/Assembly_False_False.csproj index 9b74758668d151..2b9c677b90a845 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/Assembly_False_False.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/Assembly_False_False.csproj @@ -7,7 +7,4 @@ - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/PInvoke_Default.cs new file mode 100644 index 00000000000000..15be8e2e49ec68 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_False/PInvoke_Default.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Char +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: false, throwOnUnmappableChar: false); + } + } +} + +namespace LPStr +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: false, throwOnUnmappableChar: false); + } + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/AssemblyInfo.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/AssemblyInfo.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/AssemblyInfo.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/Assembly_False_True.csproj similarity index 80% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/Assembly_False_True.csproj index 9b74758668d151..2b9c677b90a845 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/Assembly_False_True.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/Assembly_False_True.csproj @@ -7,7 +7,4 @@ - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/PInvoke_Default.cs new file mode 100644 index 00000000000000..1a7afb964c2715 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_False_True/PInvoke_Default.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Char +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: false, throwOnUnmappableChar: true); + } + } +} + +namespace LPStr +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: false, throwOnUnmappableChar: true); + } + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/AssemblyInfo.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/AssemblyInfo.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/AssemblyInfo.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/Assembly_True_False.csproj similarity index 80% rename from src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/Assembly_True_False.csproj index 9b74758668d151..2b9c677b90a845 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/Assembly_True_False.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/Assembly_True_False.csproj @@ -7,7 +7,4 @@ - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/PInvoke_Default.cs new file mode 100644 index 00000000000000..60723e479bbf02 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_False/PInvoke_Default.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Char +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); + } + } +} + +namespace LPStr +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: true, throwOnUnmappableChar: false); + } + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/AssemblyInfo.cs similarity index 100% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/AssemblyInfo.cs rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/AssemblyInfo.cs diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/Assembly_True_True.csproj similarity index 80% rename from src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj rename to src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/Assembly_True_True.csproj index 9b74758668d151..2b9c677b90a845 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/Assembly_True_True.csproj +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/Assembly_True_True.csproj @@ -7,7 +7,4 @@ - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/PInvoke_Default.cs new file mode 100644 index 00000000000000..440e7252214b96 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Assembly_True_True/PInvoke_Default.cs @@ -0,0 +1,24 @@ +// Licensed to the .NET Foundation under one or more agreements. +// The .NET Foundation licenses this file to you under the MIT license. + +namespace Char +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: true, throwOnUnmappableChar: true); + } + } +} + +namespace LPStr +{ + public partial class PInvoke_Default + { + public static void RunTest() + { + RunTest(bestFitMapping: true, throwOnUnmappableChar: true); + } + } +} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs deleted file mode 100644 index fafab5827a64cb..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_Default/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: true, throwOnUnmappableChar: false); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj deleted file mode 100644 index 9b74758668d151..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/Assembly_False_False.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs deleted file mode 100644 index 0eb493234dc3a4..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_False/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: false, throwOnUnmappableChar: false); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj deleted file mode 100644 index 9b74758668d151..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/Assembly_False_True.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs deleted file mode 100644 index e15be59d936c8a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_False_True/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: false, throwOnUnmappableChar: true); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj deleted file mode 100644 index 9b74758668d151..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/Assembly_True_False.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs deleted file mode 100644 index fafab5827a64cb..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_False/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: true, throwOnUnmappableChar: false); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs deleted file mode 100644 index ecd011fedcee7a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Assembly_True_True/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: true, throwOnUnmappableChar: true); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props deleted file mode 100644 index 5f653e49e7c674..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/Directory.Build.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - - true - - - - - - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs index 98dd84df552deb..36582abe8004e6 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_Default.cs @@ -5,6 +5,8 @@ using System.Text; using System.Runtime.InteropServices; +namespace Char; + public partial class PInvoke_Default { [DllImport("Char_BestFitMappingNative")] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs index ea7de3b61fa5f2..e0dd77c40ffc39 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_False.cs @@ -5,6 +5,8 @@ using System.Text; using System.Runtime.InteropServices; +namespace Char; + public class PInvoke_False_False { [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs index 1e82e5aa0b1403..5caf8b3d434679 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_False_True.cs @@ -5,6 +5,8 @@ using System.Text; using System.Runtime.InteropServices; +namespace Char; + public class PInvoke_False_True { [DllImport("Char_BestFitMappingNative", BestFitMapping = false, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs index 1aa53f958aca52..64a1bff8708afd 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_False.cs @@ -5,6 +5,8 @@ using System.Text; using System.Runtime.InteropServices; +namespace Char; + public class PInvoke_True_False { [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs index 6ff1dcce5dc02a..7f408a83cd4193 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Char/PInvoke_True_True.cs @@ -5,6 +5,8 @@ using System.Text; using System.Runtime.InteropServices; +namespace Char; + public class PInvoke_True_True { [DllImport("Char_BestFitMappingNative", BestFitMapping = true, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/Directory.Build.props new file mode 100644 index 00000000000000..498cfdda30a371 --- /dev/null +++ b/src/tests/Interop/PInvoke/BestFitMapping/Directory.Build.props @@ -0,0 +1,30 @@ + + + + + true + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj deleted file mode 100644 index 9b74758668d151..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/Assembly_Default.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs deleted file mode 100644 index fafab5827a64cb..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_Default/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: true, throwOnUnmappableChar: false); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs deleted file mode 100644 index ba71ae63b953a2..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.InteropServices; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs deleted file mode 100644 index 0eb493234dc3a4..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_False/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: false, throwOnUnmappableChar: false); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs deleted file mode 100644 index 9d7331548071eb..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.InteropServices; - -[assembly: BestFitMapping(false, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs deleted file mode 100644 index e15be59d936c8a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_False_True/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: false, throwOnUnmappableChar: true); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs deleted file mode 100644 index 1b8dfcd8a3475a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.InteropServices; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = false)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs deleted file mode 100644 index fafab5827a64cb..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_False/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: true, throwOnUnmappableChar: false); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs deleted file mode 100644 index b92e13d520b9f6..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/AssemblyInfo.cs +++ /dev/null @@ -1,6 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -using System.Runtime.InteropServices; - -[assembly: BestFitMapping(true, ThrowOnUnmappableChar = true)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj deleted file mode 100644 index 9b74758668d151..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/Assembly_True_True.csproj +++ /dev/null @@ -1,13 +0,0 @@ - - - Exe - - true - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs deleted file mode 100644 index ecd011fedcee7a..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Assembly_True_True/PInvoke_Default.cs +++ /dev/null @@ -1,10 +0,0 @@ -// Licensed to the .NET Foundation under one or more agreements. -// The .NET Foundation licenses this file to you under the MIT license. - -public partial class PInvoke_Default -{ - public static void RunTest() - { - RunTest(bestFitMapping: true, throwOnUnmappableChar: true); - } -} diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props deleted file mode 100644 index f8ec5230e18990..00000000000000 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/Directory.Build.props +++ /dev/null @@ -1,18 +0,0 @@ - - - - - true - - - - - - - - - - - - - diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs index e6cc5c3979b838..422ac57c5918c6 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_Default.cs @@ -7,6 +7,8 @@ using static TestData; +namespace LPStr; + public partial class PInvoke_Default { [StructLayout(LayoutKind.Sequential)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs index d90bd6f591fe9b..cf0ee9632f769c 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_False.cs @@ -7,6 +7,8 @@ using static TestData; +namespace LPStr; + public class PInvoke_False_False { [StructLayout(LayoutKind.Sequential)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs index 581d8db7df082b..efd6effa7296d5 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_False_True.cs @@ -7,6 +7,8 @@ using static TestData; +namespace LPStr; + public class PInvoke_False_True { [StructLayout(LayoutKind.Sequential)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs index be9321ad885ff6..4e17c9a6d64e07 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_False.cs @@ -7,6 +7,8 @@ using static TestData; +namespace LPStr; + public class PInvoke_True_False { [StructLayout(LayoutKind.Sequential)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs index 4f0b408da9300f..0b32243ab9e1ae 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/LPStr/PInvoke_True_True.cs @@ -7,6 +7,8 @@ using static TestData; +namespace LPStr; + public class PInvoke_True_True { [StructLayout(LayoutKind.Sequential)] diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Program.cs b/src/tests/Interop/PInvoke/BestFitMapping/Program.cs index f7bb12537b06cb..e9e0725fe49f72 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Program.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Program.cs @@ -20,11 +20,19 @@ public static int Main() try { - PInvoke_Default.RunTest(); - PInvoke_False_False.RunTest(); - PInvoke_False_True.RunTest(); - PInvoke_True_False.RunTest(); - PInvoke_True_True.RunTest(); + Console.WriteLine("Validating char marshalling..."); + Char.PInvoke_Default.RunTest(); + Char.PInvoke_False_False.RunTest(); + Char.PInvoke_False_True.RunTest(); + Char.PInvoke_True_False.RunTest(); + Char.PInvoke_True_True.RunTest(); + + Console.WriteLine("Validating LPStr marshalling..."); + LPStr.PInvoke_Default.RunTest(); + LPStr.PInvoke_False_False.RunTest(); + LPStr.PInvoke_False_True.RunTest(); + LPStr.PInvoke_True_False.RunTest(); + LPStr.PInvoke_True_True.RunTest(); return 100; } catch (Exception e){ Console.WriteLine($"Test Failure: {e}"); diff --git a/src/tests/Interop/PInvoke/BestFitMapping/Test.cs b/src/tests/Interop/PInvoke/BestFitMapping/Test.cs index 126bb7337783b4..936ebecd45d3ea 100644 --- a/src/tests/Interop/PInvoke/BestFitMapping/Test.cs +++ b/src/tests/Interop/PInvoke/BestFitMapping/Test.cs @@ -31,6 +31,8 @@ public Functions( public static void Validate(bool bestFitMapping, bool throwOnUnmappableChar, Functions funcs, DataContext data) { + Console.WriteLine($" ---- Marshal {typeof(T).Name}"); + bool shouldThrowOnInvalid = !bestFitMapping && throwOnUnmappableChar; T invalid = data.Invalid;