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

packageTest.targets « test « pkg - github.com/mono/corefx.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 559d5bfe365695d60a0d51cf886709cb4d6bd632 (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
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

  <PropertyGroup>
    <_targetFrameworkVersionIndex>$(TargetFramework.IndexOfAny(".-0123456789"))</_targetFrameworkVersionIndex>
    <_targetFrameworkIdentifier Condition="'$(_runtimeOSVersionIndex)' != '-1'">$(TargetFramework.SubString(0, $(_targetFrameworkVersionIndex)))</_targetFrameworkIdentifier>
    <ToolsDir>$(MSBuildThisFileDirectory)tools\</ToolsDir>
  </PropertyGroup>

  <Import Project="tools\Packaging.common.targets" />
  <Import Project="frameworkSettings\$(_targetFrameworkIdentifier)\*.targets" />
  <Import Project="frameworkSettings\$(TargetFramework)\*.targets" />
  <Import Project="packageSettings\$(TestPackageId)\*.targets" />
  <Import Project="packageSettings\$(TestPackageId)\$(_targetFrameworkIdentifier)\*.targets" />
  <Import Project="packageSettings\$(TestPackageId)\$(TargetFramework)\*.targets" />

  <Target Name="LogBeginTest">
    <PropertyGroup>
      <_message>Testing $(TestPackageID) TFM=$(TargetFramework)</_message>
      <_message Condition="'$(RuntimeIdentifier)' != ''">$(_message) RID=$(RuntimeIdentifier)</_message>
    </PropertyGroup>
    <Message Importance="High" Text="$(_message)" />
  </Target>

  <Target Name="VerifyReferenceClosure"
          DependsOnTargets="ResolveReferences"
          Condition="'$(ShouldVerifyClosure)' == 'true' AND '$(RuntimeIdentifier)' == ''">
    <ItemGroup>
      <_refClosureFileNames Include="@(ReferencePath->'%(FileName)')">
        <Original>%(Identity)</Original>
      </_refClosureFileNames>
      <_refClosureFileNamesFiltered Include="@(_refClosureFileNames)" Exclude="@(ExcludeFromClosure);@(ExcludeFromClosure->'%(Identity).ni')"/>
      <_refClosureFileFiltered Include="@(_refClosureFileNamesFiltered->'%(Original)')"/>
    </ItemGroup>

    <VerifyClosure Condition="'@(_refClosureFileFiltered)' != ''"
                   Sources="@(_refClosureFileFiltered)"
                   IgnoredReferences="@(IgnoredReference)" />
  </Target>

  <Target Name="VerifyReferenceTypes" 
          DependsOnTargets="ResolveReferences"
          Condition="'$(ShouldVerifyTypes)' == 'true' AND '$(RuntimeIdentifier)' == ''">
    <ItemGroup>
      <_refTypesFileNames Include="@(ReferencePath->'%(FileName)')">
        <Original>%(Identity)</Original>
      </_refTypesFileNames>
      <_refTypesFileNamesFiltered Include="@(_refTypesFileNames)" Exclude="@(ExcludeFromTypes);@(ExcludeFromTypes->'%(Identity).ni')"/>
      <_refTypesFileFiltered Include="@(_refTypesFileNamesFiltered->'%(Original)')"/>
    </ItemGroup>

    <VerifyTypes Condition="'@(_refTypesFileFiltered)' != ''"
                 Sources="@(_refTypesFileFiltered)"
                 IgnoredTypes="@(IgnoredTypes)" />
  </Target>

  <Target Name="VerifyRuntimeClosure" 
          DependsOnTargets="ResolveReferences"
          Condition="'$(ShouldVerifyClosure)' == 'true' AND '$(RuntimeIdentifier)' != '' AND '@(ReferenceCopyLocalPaths)' != ''">
    <ItemGroup>
      <_runClosureFileNames Include="@(ReferenceCopyLocalPaths->'%(FileName)')">
        <Original>%(Identity)</Original>
      </_runClosureFileNames>
      <_runClosureFileNamesFiltered Include="@(_runClosureFileNames)" Exclude="@(ExcludeFromClosure);@(ExcludeFromClosure->'%(Identity).ni')"/>
      <_runClosureFileFiltered Include="@(_runClosureFileNamesFiltered->'%(Original)')"/>
    </ItemGroup>

    <VerifyClosure Condition="'@(_runClosureFileFiltered)' != ''"
                   Sources="@(_runClosureFileFiltered)"
                   IgnoredReferences="@(IgnoredReference)" />
  </Target>

  <Target Name="VerifyRuntimeTypes" 
          DependsOnTargets="ResolveReferences"
          Condition="'$(ShouldVerifyTypes)' == 'true' AND '$(RuntimeIdentifier)' != ''">
    <ItemGroup>
      <_runTypesFileNames Include="@(ReferenceCopyLocalPaths->'%(FileName)')">
        <Original>%(Identity)</Original>
      </_runTypesFileNames>
      <_runTypesFileNamesFiltered Include="@(_runTypesFileNames)" Exclude="@(ExcludeFromTypes);@(ExcludeFromTypes->'%(Identity).ni')"/>
      <_runTypesFileFiltered Include="@(_runTypesFileNamesFiltered->'%(Original)')"/>
    </ItemGroup>

    <VerifyTypes Condition="'@(_runTypesFileFiltered)' != ''"
                 Sources="@(_runTypesFileFiltered)"
                 IgnoredTypes="@(IgnoredTypes)" />
  </Target>

  <PropertyGroup>
    <TestDependsOn>
      LogBeginTest;
      VerifyReferenceClosure;
      VerifyReferenceTypes;
      VerifyRuntimeClosure;
      VerifyRuntimeTypes;
    </TestDependsOn>
  </PropertyGroup>
  
  <!-- inner target to be called by outer Test Target -->
  <Target Name="_test"
          DependsOnTargets="$(TestDependsOn)">
    <MakeDir Directories="$(IntermediateOutputPath)" />
    <Touch AlwaysCreate="true" Files="$(IntermediateOutputPath)\.testComplete" />
  </Target>
  
  <Target Name="_getTestProjects">
    <ItemGroup>
      <_projectRuntime Include="$(RuntimeIdentifiers)" />

      <!-- Run _test once without RID, then for each RID -->
      <TestProject Include="$(MSBuildProjectFullPath)">
        <Semaphore>$(IntermediateOutputPath)\.testComplete</Semaphore>
      </TestProject>
      <TestProject Include="$(MSBuildProjectFullPath)">
        <Semaphore>$(IntermediateOutputPath)\%(_projectRuntime.Identity)\.testComplete</Semaphore>
        <AdditionalProperties>RuntimeIdentifier=%(_projectRuntime.Identity)</AdditionalProperties>
      </TestProject>
    </ItemGroup>
  </Target>
  
  <!-- runs all tests scenarios for this project -->
  <Target Name="Test"
          DependsOnTargets="_getTestProjects"
          Inputs="@(TestProject);$(MSBuildAllProjects);$(ProjectAssetsFile)"
          Outputs="@(TestProject->'%(Semaphore)')">
    <MSBuild Projects="@(TestProject)" Targets="_test" BuildInParallel="true" />
  </Target>
</Project>