Welcome to mirror list, hosted at ThFree Co, Russian Federation.

tests.singlefile.targets « testing « eng - github.com/dotnet/runtime.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: d307e837e6235aaec9caee206fc458df3d81299b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
<Project>
  <PropertyGroup>
    <OutputType>Exe</OutputType>

    <DefineConstants>$(DefineConstants);SINGLE_FILE_TEST_RUNNER</DefineConstants>

    <BundleDir>$([MSBuild]::NormalizeDirectory('$(OutDir)', 'publish'))</BundleDir>
    <RunScriptOutputPath>$([MSBuild]::NormalizePath('$(BundleDir)', '$(RunScriptOutputName)'))</RunScriptOutputPath>
    <RuntimeIdentifier>$(PackageRID)</RuntimeIdentifier>

    <RunScriptCommand Condition="'$(TargetOS)' == 'windows'">$(AssemblyName).exe</RunScriptCommand>
    <RunScriptCommand Condition="'$(TargetOS)' != 'windows'">chmod +rwx $(AssemblyName) &amp;&amp; ./$(AssemblyName)</RunScriptCommand>
  </PropertyGroup>

  <PropertyGroup Condition="'$(TestNativeAot)' != 'true'">
    <PublishSingleFile>true</PublishSingleFile>
    <UseAppHost>true</UseAppHost>
    <SelfContained>true</SelfContained>
  </PropertyGroup>

  <PropertyGroup Condition="'$(TestNativeAot)' == 'true'">
    <IlcToolsPath>$(CoreCLRILCompilerDir)</IlcToolsPath>
    <IlcToolsPath Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)'">$(CoreCLRCrossILCompilerDir)</IlcToolsPath>
    <CppCompilerAndLinker Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows'">clang-9</CppCompilerAndLinker>
    <SysRoot Condition="'$(TargetArchitecture)' != '$(BuildArchitecture)' and '$(HostOS)' != 'windows'">$(ROOTFS_DIR)</SysRoot>
    <IlcBuildTasksPath>$(CoreCLRILCompilerDir)netstandard/ILCompiler.Build.Tasks.dll</IlcBuildTasksPath>
    <IlcSdkPath>$(CoreCLRAotSdkDir)</IlcSdkPath>
    <IlcFrameworkPath>$(NetCoreAppCurrentTestHostSharedFrameworkPath)</IlcFrameworkPath>
    <NoWarn>$(NoWarn);IL1005;IL3002</NoWarn>
    <TrimMode>partial</TrimMode>
    <SuppressTrimAnalysisWarnings>true</SuppressTrimAnalysisWarnings>
    <SuppressAotAnalysisWarnings>true</SuppressAotAnalysisWarnings>

    <!-- Forced by ILLink targets; we should fix the SDK -->
    <SelfContained>true</SelfContained>
  </PropertyGroup>

  <Import Project="$(CoreCLRBuildIntegrationDir)Microsoft.DotNet.ILCompiler.SingleEntry.targets" Condition="'$(TestNativeAot)' == 'true'" />

  <ItemGroup Condition="'$(TestNativeAot)' == 'true'">
    <RdXmlFile Include="$(MSBuildThisFileDirectory)default.rd.xml" />

    <!-- Tests are doing private reflection. -->
    <IlcArg Include="--nometadatablocking" />

    <!-- xunit calls MakeGenericType to check if something is IEquatable -->
    <IlcArg Include="--feature:System.Reflection.IsTypeConstructionEagerlyValidated=false" />
  </ItemGroup>

  <ItemGroup>
    <Compile Include="$(CommonTestPath)SingleFileTestRunner\SingleFileTestRunner.cs"
             Link="Common\SingleFileTestRunner\SingleFileTestRunner.cs" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="xunit.runner.utility" Version="$(XUnitVersion)" />
  </ItemGroup>

  <Target Name="__ExcludeAssembliesFromSingleFile"
          Inputs="%(ResolvedFileToPublish.Identity)"
          Outputs="__NewResolvedFiles"
          BeforeTargets="_ComputeFilesToBundle">
    <PropertyGroup>
      <__Identity>%(ResolvedFileToPublish.Identity)</__Identity>
      <__FileName>%(ResolvedFileToPublish.Filename)%(ResolvedFileToPublish.Extension)</__FileName>
    </PropertyGroup>

    <ItemGroup>
      <__NewResolvedFiles Include="@(ResolvedFileToPublish)">
        <ExcludeFromSingleFile Condition="'%(__ExcludeFromBundle.Identity)' == '$(__FileName)'">true</ExcludeFromSingleFile>
      </__NewResolvedFiles>
    </ItemGroup>
  </Target>

  <Target Name="__UpdateExcludedAssembliesFromSingleFile"
          Inputs="ExcludeFromSingleFile"
          Outputs="ResolvedFileToPublish"
          DependsOnTargets="ComputeResolvedFilesToPublishList"
          BeforeTargets="_ComputeFilesToBundle">
    <ItemGroup>
      <ResolvedFileToPublish Remove="@(ResolvedFileToPublish)" />
      <ResolvedFileToPublish Include="@(__NewResolvedFiles)" />
    </ItemGroup>
  </Target>

  <Target Name="PublishTestAsSingleFile"
          Condition="'$(IsCrossTargetingBuild)' != 'true'"
          AfterTargets="Build"
          DependsOnTargets="Publish;ArchiveTests" />

</Project>