summaryrefslogtreecommitdiff
path: root/tests/src/Loader/classloader/PrivateInterfaceImpl
diff options
context:
space:
mode:
Diffstat (limited to 'tests/src/Loader/classloader/PrivateInterfaceImpl')
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.cs17
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.csproj39
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.il58
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.ilproj38
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.il65
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.ilproj38
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.il186
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.ilproj43
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.il18
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.ilproj43
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.il53
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.ilproj38
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/app.config27
-rw-r--r--tests/src/Loader/classloader/PrivateInterfaceImpl/project.json35
14 files changed, 698 insertions, 0 deletions
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.cs b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.cs
new file mode 100644
index 0000000000..990504cdd7
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.cs
@@ -0,0 +1,17 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+using System;
+
+public interface IA
+{
+ void methodIA();
+}
+
+
+public interface IB<t>
+{
+ void methodIB();
+}
+
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.csproj b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.csproj
new file mode 100644
index 0000000000..0c4c9f2fb3
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.csproj
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <AssemblyName>Test2_NonFriendPriInterface</AssemblyName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <OutputType>Library</OutputType>
+ <CLRTestKind>BuildOnly</CLRTestKind>
+ <CLRTestPriority>0</CLRTestPriority>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="Test2_NonFriendPriInterface.cs" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Include="app.config" />
+ <None Include="project.json" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.il b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.il
new file mode 100644
index 0000000000..83a1385f1b
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.il
@@ -0,0 +1,58 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern System.Console { }
+
+// Microsoft (R) .NET Framework IL Disassembler. Version 2.0.40914.00
+// Copyright (C) Microsoft Corporation. All rights reserved.
+
+
+
+// Metadata version: v2.0.40914
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:3600:0
+}
+.assembly Test2_NonFriendPriInterface
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module Test2_NonFriendPriInterface.dll
+// MVID: {492107BD-BB96-4344-A839-40CBDEBAB59A}
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+// Image base: 0x03F40000
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class interface private abstract auto ansi IA
+{
+ .method public hidebysig newslot abstract virtual
+ instance void methodIA() cil managed
+ {
+ } // end of method IA::methodIA
+
+} // end of class IA
+
+.class interface private abstract auto ansi 'IB`1'<([mscorlib]System.Object) t>
+{
+ .method public hidebysig newslot abstract virtual
+ instance void methodIB() cil managed
+ {
+ } // end of method 'IB`1'::methodIB
+
+} // end of class 'IB`1'
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
+// WARNING: Created Win32 resource file Test2_NonFriendPriInterface.res
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.ilproj b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.ilproj
new file mode 100644
index 0000000000..5f06568245
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test2_NonFriendPriInterface.ilproj
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <AssemblyName>Test2_NonFriendPriInterface</AssemblyName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
+ <OutputType>Library</OutputType>
+ <CLRTestKind>BuildOnly</CLRTestKind>
+ <CLRTestPriority>0</CLRTestPriority>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="Test2_NonFriendPriInterface.il" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.il b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.il
new file mode 100644
index 0000000000..963077526e
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.il
@@ -0,0 +1,65 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern System.Console { }
+
+// Microsoft (R) .NET Framework IL Disassembler. Version 2.0.40922.00
+// Copyright (C) Microsoft Corporation. All rights reserved.
+
+
+
+// Metadata version: v2.0.40922
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:3600:0
+}
+.assembly Test6_FriendPriInterface
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 23 54 65 73 74 36 5F 73 75 70 70 6C 69 65 // ..#Test6_supplie
+ 72 2C 20 50 75 62 6C 69 63 4B 65 79 54 6F 6B 65 // r, PublicKeyToke
+ 6E 3D 6E 75 6C 6C 00 00 ) // n=null..
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.InternalsVisibleToAttribute::.ctor(string) = ( 01 00 2C 54 65 73 74 36 5F 49 6D 70 6C 65 6D 65 // ..,Test6_Impleme
+ 6E 74 69 6E 67 43 6C 61 73 73 2C 20 50 75 62 6C // ntingClass, Publ
+ 69 63 4B 65 79 54 6F 6B 65 6E 3D 6E 75 6C 6C 00 // icKeyToken=null.
+ 00 )
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module Test6_FriendPriInterface.dll
+// MVID: {1B87B22B-74B6-4B85-86F0-0F70258C2D18}
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+// Image base: 0x03E50000
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class interface private abstract auto ansi IA
+{
+ .method public hidebysig newslot abstract virtual
+ instance void methodIA() cil managed
+ {
+ } // end of method IA::methodIA
+
+} // end of class IA
+
+.class interface private abstract auto ansi 'IB`1'<([mscorlib]System.Object) T>
+{
+ .method public hidebysig newslot abstract virtual
+ instance void methodIB() cil managed
+ {
+ } // end of method 'IB`1'::methodIB
+
+} // end of class 'IB`1'
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
+// WARNING: Created Win32 resource file Test6_FriendPriInterface.res
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.ilproj b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.ilproj
new file mode 100644
index 0000000000..19544aa58b
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_FriendPriInterface.ilproj
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <AssemblyName>Test6_FriendPriInterface</AssemblyName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
+ <OutputType>Library</OutputType>
+ <CLRTestKind>BuildOnly</CLRTestKind>
+ <CLRTestPriority>0</CLRTestPriority>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="Test6_FriendPriInterface.il" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.il b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.il
new file mode 100644
index 0000000000..1ac73d68d4
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.il
@@ -0,0 +1,186 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern System.Console { }
+
+// Microsoft (R) .NET Framework IL Disassembler. Version 2.0.40922.00
+// Copyright (C) Microsoft Corporation. All rights reserved.
+
+
+
+// Metadata version: v2.0.40922
+.assembly extern mscorlib
+{
+ .publickeytoken = (B7 7A 5C 56 19 34 E0 89 ) // .z\V.4..
+ .ver 2:0:3600:0
+}
+.assembly extern Test6_forwarder
+{
+ .ver 0:0:0:0
+}
+.assembly extern Test6_FriendPriInterface
+{
+ .ver 0:0:0:0
+}
+.assembly Test6_ImplementingClass
+{
+ .custom instance void [mscorlib]System.Runtime.CompilerServices.CompilationRelaxationsAttribute::.ctor(int32) = ( 01 00 08 00 00 00 00 00 )
+ .hash algorithm 0x00008004
+ .ver 0:0:0:0
+}
+.module Test6_ImplementingClass.exe
+// MVID: {899F22E9-D0C0-4B61-9698-A96DF1D4E4BE}
+.imagebase 0x00400000
+.file alignment 0x00000200
+.stackreserve 0x00100000
+.subsystem 0x0003 // WINDOWS_CUI
+.corflags 0x00000001 // ILONLY
+// Image base: 0x03E50000
+
+
+// =============== CLASS MEMBERS DECLARATION ===================
+
+.class public auto ansi beforefieldinit Test
+ extends [mscorlib]System.Object
+{
+ .method public hidebysig static void method1() cil managed
+ {
+ // Code size 14 (0xe)
+ .maxstack 1
+ .locals init (class [Test6_FriendPriInterface]IA V_0)
+ IL_0000: newobj instance void [Test6_forwarder]A::.ctor()
+ IL_0005: stloc.0
+ IL_0006: ldloc.0
+ IL_0007: callvirt instance void [Test6_FriendPriInterface]IA::methodIA()
+ IL_000c: nop
+ IL_000d: ret
+ } // end of method Test::method1
+
+ .method public hidebysig static void method2() cil managed
+ {
+ // Code size 14 (0xe)
+ .maxstack 1
+ .locals init (class [Test6_FriendPriInterface]'IB`1'<int32> V_0)
+ IL_0000: newobj instance void [Test6_forwarder]B::.ctor()
+ IL_0005: stloc.0
+ IL_0006: ldloc.0
+ IL_0007: callvirt instance void class [Test6_FriendPriInterface]'IB`1'<int32>::methodIB()
+ IL_000c: nop
+ IL_000d: ret
+ } // end of method Test::method2
+
+ .method public hidebysig static int32 Main() cil managed
+ {
+ .entrypoint
+ // Code size 130 (0x82)
+ .maxstack 2
+ .locals init ([0] int32 exitCode1,
+ [1] int32 exitCode2,
+ [2] class [mscorlib]System.Exception e,
+ [3] int32 CS$1$0000,
+ [4] bool CS$4$0001)
+ .try
+ {
+ IL_0000: call void Test::method1()
+ IL_0005: nop
+ IL_0006: ldstr "PASS at method1(): Loaded type A"
+ IL_000b: call void [System.Console]System.Console::WriteLine(string)
+ IL_0010: nop
+ IL_0011: ldc.i4.s 100
+ IL_0013: stloc.0
+ IL_0014: nop
+ IL_0015: leave.s IL_002f
+
+ } // end .try
+ catch [mscorlib]System.Exception
+ {
+ IL_0017: stloc.2
+ IL_0018: ldstr "FAIL at method1(): Caught unexpected exception: "
+ IL_001d: ldloc.2
+ IL_001e: call string [mscorlib]System.String::Concat(object,
+ object)
+ IL_0023: call void [System.Console]System.Console::WriteLine(string)
+ IL_0028: nop
+ IL_0029: ldc.i4.s 101
+ IL_002b: stloc.0
+ IL_002c: nop
+ IL_002d: leave.s IL_002f
+
+ } // end handler
+ IL_002f: nop
+ .try
+ {
+ IL_0030: call void Test::method2()
+ IL_0035: nop
+ IL_0036: ldstr "PASS at method2(): Loaded type B"
+ IL_003b: call void [System.Console]System.Console::WriteLine(string)
+ IL_0040: nop
+ IL_0041: ldc.i4.s 100
+ IL_0043: stloc.1
+ IL_0044: nop
+ IL_0045: leave.s IL_005f
+
+ } // end .try
+ catch [mscorlib]System.Exception
+ {
+ IL_0047: stloc.2
+ IL_0048: ldstr "FAIL at method2(): Caught unexpected exception: "
+ IL_004d: ldloc.2
+ IL_004e: call string [mscorlib]System.String::Concat(object,
+ object)
+ IL_0053: call void [System.Console]System.Console::WriteLine(string)
+ IL_0058: nop
+ IL_0059: ldc.i4.s 101
+ IL_005b: stloc.1
+ IL_005c: nop
+ IL_005d: leave.s IL_005f
+
+ } // end handler
+ IL_005f: nop
+ IL_0060: ldloc.0
+ IL_0061: ldc.i4.s 100
+ IL_0063: bne.un.s IL_006f
+
+ IL_0065: ldloc.1
+ IL_0066: ldc.i4.s 100
+ IL_0068: ceq
+ IL_006a: ldc.i4.0
+ IL_006b: ceq
+ IL_006d: br.s IL_0070
+
+ IL_006f: ldc.i4.1
+ IL_0070: stloc.s CS$4$0001
+ IL_0072: ldloc.s CS$4$0001
+ IL_0074: brtrue.s IL_007b
+
+ IL_0076: ldc.i4.s 100
+ IL_0078: stloc.3
+ IL_0079: br.s IL_0080
+
+ IL_007b: ldc.i4.s 101
+ IL_007d: stloc.3
+ IL_007e: br.s IL_0080
+
+ IL_0080: ldloc.3
+ IL_0081: ret
+ } // end of method Test::Main
+
+
+ .method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method Test::.ctor
+
+} // end of class Test
+
+
+// =============================================================
+
+// *********** DISASSEMBLY COMPLETE ***********************
+// WARNING: Created Win32 resource file Test6_ImplementingClass.res
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.ilproj b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.ilproj
new file mode 100644
index 0000000000..eb21b948b3
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_ImplementingClass.ilproj
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <AssemblyName>Test6_ImplementingClass</AssemblyName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
+ <OutputType>Exe</OutputType>
+ <CLRTestKind>BuildAndRun</CLRTestKind>
+ <CLRTestPriority>0</CLRTestPriority>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="Test6_ImplementingClass.il" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="Test6_forwarder.ilproj" />
+ <ProjectReference Include="Test6_FriendPriInterface.ilproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.il b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.il
new file mode 100644
index 0000000000..0b70c27410
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.il
@@ -0,0 +1,18 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern System.Console { }
+.assembly Test6_forwarder{}
+.assembly extern mscorlib{}
+.assembly extern Test6_supplier{}
+
+
+.class extern public forwarder A{
+ .assembly extern Test6_supplier
+}
+
+
+.class extern public forwarder B{
+ .assembly extern Test6_supplier
+}
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.ilproj b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.ilproj
new file mode 100644
index 0000000000..ee8f5f4f64
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_forwarder.ilproj
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <AssemblyName>Test6_forwarder</AssemblyName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>false</ReferenceLocalMscorlib>
+ <OutputType>Library</OutputType>
+ <CLRTestKind>BuildOnly</CLRTestKind>
+ <CLRTestPriority>0</CLRTestPriority>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="Test6_forwarder.il" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <ProjectReference Include="Test6_supplier.ilproj" />
+ <ProjectReference Include="Test6_supplier.ilproj" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.il b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.il
new file mode 100644
index 0000000000..6247b93f45
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.il
@@ -0,0 +1,53 @@
+// Licensed to the .NET Foundation under one or more agreements.
+// The .NET Foundation licenses this file to you under the MIT license.
+// See the LICENSE file in the project root for more information.
+
+.assembly extern System.Console { }
+.assembly Test6_supplier{}
+
+.assembly extern mscorlib{}
+.assembly extern Test6_FriendPriInterface{}
+
+
+.class public A implements [Test6_FriendPriInterface]IA
+{
+.method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method A::.ctor
+
+.method public hidebysig virtual final
+ instance void methodIA() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0006: ret
+ } // end of method A::.ctor
+}
+
+
+.class public B implements class [Test6_FriendPriInterface]'IB`1'<int32>
+{
+.method public hidebysig specialname rtspecialname
+ instance void .ctor() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0000: ldarg.0
+ IL_0001: call instance void [mscorlib]System.Object::.ctor()
+ IL_0006: ret
+ } // end of method B::.ctor
+
+.method public hidebysig virtual final
+ instance void methodIB() cil managed
+ {
+ // Code size 7 (0x7)
+ .maxstack 8
+ IL_0006: ret
+ } // end of method B::.ctor
+}
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.ilproj b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.ilproj
new file mode 100644
index 0000000000..2165a3f194
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/Test6_supplier.ilproj
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.props))\dir.props" />
+ <PropertyGroup>
+ <AssemblyName>Test6_supplier</AssemblyName>
+ <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+ <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+ <SchemaVersion>2.0</SchemaVersion>
+ <ProjectGuid>{95DFC527-4DC1-495E-97D7-E94EE1F7140D}</ProjectGuid>
+ <FileAlignment>512</FileAlignment>
+ <ProjectTypeGuids>{786C830F-07A1-408B-BD7F-6EE04809D6DB};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
+ <NuGetPackageImportStamp>7a9bfb7d</NuGetPackageImportStamp>
+ <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
+ <ReferenceLocalMscorlib>true</ReferenceLocalMscorlib>
+ <OutputType>Library</OutputType>
+ <CLRTestKind>BuildOnly</CLRTestKind>
+ <CLRTestPriority>0</CLRTestPriority>
+ </PropertyGroup>
+
+ <ItemGroup>
+ <CodeAnalysisDependentAssemblyPaths Condition=" '$(VS100COMNTOOLS)' != '' " Include="$(VS100COMNTOOLS)..\IDE\PrivateAssemblies">
+ <Visible>False</Visible>
+ </CodeAnalysisDependentAssemblyPaths>
+ </ItemGroup>
+
+ <ItemGroup>
+ <Compile Include="Test6_supplier.il" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <None Include="app.config" />
+ </ItemGroup>
+
+ <ItemGroup>
+ <Service Include="{82A7F48D-3B50-4B1E-B82E-3ADA8210C358}" />
+ </ItemGroup>
+ <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), dir.targets))\dir.targets" />
+</Project>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/app.config b/tests/src/Loader/classloader/PrivateInterfaceImpl/app.config
new file mode 100644
index 0000000000..e5622f77ad
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/app.config
@@ -0,0 +1,27 @@
+<?xml version = "1.0" encoding="utf-8"?>
+<configuration>
+ <runtime>
+ <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
+ <dependentAssembly>
+ <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.20.0" newVersion="4.0.20.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Text.Encoding" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.IO" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+ </dependentAssembly>
+ <dependentAssembly>
+ <assemblyIdentity name="System.Reflection" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
+ <bindingRedirect oldVersion="0.0.0.0-4.0.10.0" newVersion="4.0.10.0" />
+ </dependentAssembly>
+ </assemblyBinding>
+ </runtime>
+</configuration>
diff --git a/tests/src/Loader/classloader/PrivateInterfaceImpl/project.json b/tests/src/Loader/classloader/PrivateInterfaceImpl/project.json
new file mode 100644
index 0000000000..a2e84dc340
--- /dev/null
+++ b/tests/src/Loader/classloader/PrivateInterfaceImpl/project.json
@@ -0,0 +1,35 @@
+{
+ "dependencies": {
+ "Microsoft.NETCore.Platforms": "1.0.1-rc2-23816",
+ "System.Collections": "4.0.10",
+ "System.Collections.NonGeneric": "4.0.1-rc2-23816",
+ "System.Collections.Specialized": "4.0.1-rc2-23816",
+ "System.ComponentModel": "4.0.1-rc2-23816",
+ "System.Console": "4.0.0-rc2-23816",
+ "System.Diagnostics.Process": "4.1.0-rc2-23816",
+ "System.Globalization": "4.0.10",
+ "System.Globalization.Calendars": "4.0.0",
+ "System.IO": "4.0.10",
+ "System.IO.FileSystem": "4.0.0",
+ "System.IO.FileSystem.Primitives": "4.0.0",
+ "System.Linq": "4.0.1-rc2-23816",
+ "System.Linq.Queryable": "4.0.1-rc2-23816",
+ "System.Reflection": "4.0.10",
+ "System.Reflection.Primitives": "4.0.0",
+ "System.Runtime": "4.1.0-rc2-23816",
+ "System.Runtime.Extensions": "4.0.10",
+ "System.Runtime.Handles": "4.0.0",
+ "System.Runtime.InteropServices": "4.1.0-rc2-23816",
+ "System.Runtime.Loader": "4.0.0-rc2-23816",
+ "System.Text.Encoding": "4.0.10",
+ "System.Threading": "4.0.10",
+ "System.Threading.Thread": "4.0.0-rc2-23816",
+ "System.Xml.ReaderWriter": "4.0.11-rc2-23816",
+ "System.Xml.XDocument": "4.0.11-rc2-23816",
+ "System.Xml.XmlDocument": "4.0.1-rc2-23816",
+ "System.Xml.XmlSerializer": "4.0.11-rc2-23816"
+ },
+ "frameworks": {
+ "dnxcore50": {}
+ }
+}