Skip to content

Commit 6e1d47c

Browse files
committed
Merge branch '7.1' into tuple-transform-refactoring
# Conflicts: # Directory.Build.props # Extensions/Xtensive.Orm.Security/Cryptography/GenericHashingService.cs # Extensions/Xtensive.Orm.Security/Cryptography/MD5HashingService.cs # Extensions/Xtensive.Orm.Security/Cryptography/SHA1HashingService.cs # Extensions/Xtensive.Orm.Security/Cryptography/SHA256HashingService.cs # Extensions/Xtensive.Orm.Security/Cryptography/SHA384HashingService.cs # Extensions/Xtensive.Orm.Security/Cryptography/SHA512HashingService.cs # Orm/Xtensive.Orm.Sqlite/Sql.Drivers.Sqlite/ProviderInitializer.cs # Orm/Xtensive.Orm.Tests/Storage/Randomized/RandomizedTest.cs # Orm/Xtensive.Orm.Tests/Upgrade/ConflictsByTable/TestBase.cs # Orm/Xtensive.Orm/Core/Extensions/ArrayExtensions.cs # Orm/Xtensive.Orm/Orm/EntitySetBase.cs # Orm/Xtensive.Orm/Orm/Model/TypeInfo.cs # Orm/Xtensive.Orm/Orm/Providers/NameBuilder.cs # Orm/Xtensive.Orm/Orm/Providers/SqlCompiler.Include.cs # Orm/Xtensive.Orm/Orm/Providers/SqlProvider.cs # Orm/Xtensive.Orm/Orm/QueryableExtensions.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/AggregateProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/CalculateProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ConcatProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/ContainsTableProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/FreeTextProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/IncludeProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Compilable/OrderProviderBase.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/Executable/ExecutableRawProvider.cs # Orm/Xtensive.Orm/Orm/Rse/Providers/ExecutableProvider.cs # Orm/Xtensive.Orm/Tuples/Packed/PackedFieldAccessor.cs # Orm/Xtensive.Orm/Tuples/Packed/PackedFieldDescriptiorExtensions.cs # Orm/Xtensive.Orm/Tuples/Packed/PackedFieldDescriptor.cs # Orm/Xtensive.Orm/Tuples/Packed/PackedTuple.cs # Orm/Xtensive.Orm/Tuples/Transform/TupleTransformBase.cs # Orm/Xtensive.Orm/Tuples/Tuple.cs # Orm/Xtensive.Orm/Tuples/TupleExtensions.cs
2 parents 7840f5c + 1cb1064 commit 6e1d47c

1,616 files changed

Lines changed: 94515 additions & 40317 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@ indent_style = space
3535
tab_width = 2
3636

3737
# New line preferences
38-
end_of_line = crlf
3938
insert_final_newline = false
4039

4140
#### .NET Coding Conventions ####
Lines changed: 87 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
name: Run set of storage-dependant tests
2+
description: Groups runs of several test projects that require a database
3+
4+
inputs:
5+
build_config:
6+
description: 'Build configuration'
7+
required: true
8+
default: 'Release'
9+
type: string
10+
show_all_fails:
11+
description: 'No mute tests'
12+
type: boolean
13+
default: false
14+
required: true
15+
test_output_verbosity:
16+
description: 'Verbosity for dotnet test command'
17+
required: true
18+
default: 'minimal'
19+
type: string
20+
test_results_folder:
21+
description: 'Folder where trx-files will be located for later parsing'
22+
required: true
23+
type: string
24+
run_main:
25+
description: 'Run Xtensive.Orm.Tests tests'
26+
required: true
27+
default: true
28+
type: boolean
29+
run_sql:
30+
description: 'Run Xtensive.Orm.Tests.Sql tests'
31+
required: true
32+
default: true
33+
type: boolean
34+
run_extensions:
35+
description: 'Run extension projects tests'
36+
required: true
37+
default: true
38+
type: boolean
39+
40+
runs:
41+
using: "composite"
42+
steps:
43+
- name: Test Orm.Tests set of tests
44+
env:
45+
GA_NO_IGNORE: ${{ inputs.show_all_fails }}
46+
if: ${{ !cancelled() && fromJSON(inputs.run_main) }}
47+
shell: bash
48+
run: dotnet test Orm/Xtensive.Orm.Tests/Xtensive.Orm.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
49+
50+
- name: Test Orm.Tests.Sql set of tests
51+
env:
52+
GA_NO_IGNORE: ${{ inputs.show_all_fails }}
53+
if: ${{ !cancelled() && fromJSON(inputs.run_sql) }}
54+
shell: bash
55+
run: dotnet test Orm/Xtensive.Orm.Tests.Sql/Xtensive.Orm.Tests.Sql.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tests.Sql.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
56+
57+
- name: Test BulkOperations extension set of tests
58+
env:
59+
GA_NO_IGNORE: ${{ inputs.show_all_fails }}
60+
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
61+
shell: bash
62+
run: dotnet test Extensions/Xtensive.Orm.BulkOperations.Tests/Xtensive.Orm.BulkOperations.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.BulkOperations.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
63+
64+
- name: Test Localization extension set of tests
65+
env:
66+
GA_NO_IGNORE: ${{ inputs.show_all_fails }}
67+
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
68+
shell: bash
69+
run: dotnet test Extensions/Xtensive.Orm.Localization.Tests/Xtensive.Orm.Localization.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Localization.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
70+
71+
# NOTE! NO REPROCESSING TESTS. Reprocessing tests use multi-thread processing which may cause infinite execution.
72+
# Steps in composite action are not allowed to set timeout, it can be set only in calling job for entire composite
73+
# step. To not disturb normal tests execution Reprocessing tests moved outside the action.
74+
75+
- name: Test Security extension set of tests
76+
env:
77+
GA_NO_IGNORE: ${{ inputs.show_all_fails }}
78+
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
79+
shell: bash
80+
run: dotnet test Extensions/Xtensive.Orm.Security.Tests/Xtensive.Orm.Security.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Security.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
81+
82+
- name: Test Tracking extension set of tests
83+
env:
84+
GA_NO_IGNORE: ${{ inputs.show_all_fails }}
85+
if: ${{ !cancelled() && fromJSON(inputs.run_extensions) }}
86+
shell: bash
87+
run: dotnet test Extensions/Xtensive.Orm.Tracking.Tests/Xtensive.Orm.Tracking.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tracking.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
name: Run set of storage-independant tests
2+
description: Groups runs of several test projects that don't require a database
3+
4+
inputs:
5+
build_config:
6+
description: 'Build configuration'
7+
required: true
8+
default: 'Release'
9+
type: string
10+
test_output_verbosity:
11+
description: 'Verbosity for dotnet test command'
12+
required: true
13+
default: 'minimal'
14+
type: string
15+
test_results_folder:
16+
description: 'Folder where trx-files will be located for later parsing'
17+
required: true
18+
type: string
19+
run_core:
20+
description: 'Run Xtensive.Orm.Tests.Core tests'
21+
required: true
22+
default: true
23+
type: boolean
24+
run_log4net:
25+
description: 'Run Xtensive.Orm.Logging.log4net tests'
26+
required: true
27+
default: true
28+
type: boolean
29+
run_nlog:
30+
description: 'Run Xtensive.Orm.Logging.NLog tests'
31+
required: true
32+
default: true
33+
type: boolean
34+
35+
runs:
36+
using: "composite"
37+
steps:
38+
# core tests does not require any storage and take not so much time
39+
- name: Run Core tests
40+
if: ${{ !cancelled() && fromJSON(inputs.run_core) }}
41+
shell: bash
42+
run: dotnet test Orm/Xtensive.Orm.Tests.Core/Xtensive.Orm.Tests.Core.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Tests.Core.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
43+
44+
- name: Run log4net tests
45+
if: ${{ !cancelled() && fromJSON(inputs.run_log4net) }}
46+
shell: bash
47+
run: dotnet test Extensions/Xtensive.Orm.Logging.log4net.Tests/Xtensive.Orm.Logging.log4net.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Logging.log4net.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
48+
49+
- name: Run NLog tests
50+
if: ${{ !cancelled() && fromJSON(inputs.run_nlog) }}
51+
shell: bash
52+
run: dotnet test Extensions/Xtensive.Orm.Logging.NLog.Tests/Xtensive.Orm.Logging.NLog.Tests.csproj -c ${{ inputs.build_config }} --no-build --logger "trx;LogFileName=Xtensive.Orm.Logging.NLog.Tests.trx" --results-directory ${{ inputs.test_results_folder }} -v ${{ inputs.test_output_verbosity }}
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
name: Setup .NET versions
2+
description: Sets up one or multiple .NET versions according to target frameworks
3+
4+
inputs:
5+
target_framework:
6+
description: "Target frameworks which are used in projects (net6.0, netcoreapp2.2, netcoreapp3.1, etc.)"
7+
required: true
8+
type: string
9+
10+
runs:
11+
using: "composite"
12+
13+
steps:
14+
- name: Setup .NET 9 (if needed)
15+
if: ${{ contains(inputs.target_framework, '9.0') }}
16+
uses: actions/setup-dotnet@v4
17+
with:
18+
dotnet-version: '9.0.x'
19+
20+
- name: Setup .NET 8 (if needed)
21+
if: ${{ contains(inputs.target_framework, '8.0') }}
22+
uses: actions/setup-dotnet@v4
23+
with:
24+
dotnet-version: '8.0.x'
25+
26+
- name: Setup .NET 7 (if needed)
27+
if: ${{ contains(inputs.target_framework, '7.0') }}
28+
uses: actions/setup-dotnet@v4
29+
with:
30+
dotnet-version: '7.0.x'
31+
32+
- name: Setup .NET 6 (if needed)
33+
if: ${{ contains(inputs.target_framework, '6.0') }}
34+
uses: actions/setup-dotnet@v4
35+
with:
36+
dotnet-version: '6.0.x'
37+
38+
- name: Setup .NET 5 (if needed)
39+
if: ${{ contains(inputs.target_framework, '5.0') }}
40+
uses: actions/setup-dotnet@v4
41+
with:
42+
dotnet-version: '5.0.x'
43+
44+
- name: Setup .NET Core 3.1 (if needed)
45+
if: ${{ contains(inputs.target_framework, '3.1') }}
46+
uses: actions/setup-dotnet@v4
47+
with:
48+
dotnet-version: '3.1.x'
49+
50+
- name: Setup .NET Core 2.0 (if needed)
51+
if: ${{ contains(inputs.target_framework, '2.0') }}
52+
uses: actions/setup-dotnet@v4
53+
with:
54+
dotnet-version: '2.0.x'
Lines changed: 128 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,128 @@
1+
name: ⚙ Automated no-database tests
2+
run-name: Core tests triggered by '${{ github.event_name }}'. Run No ${{ github.run_number }}.
3+
4+
on:
5+
push:
6+
branches:
7+
- '7.1'
8+
- '7.1-*'
9+
paths:
10+
# extensions
11+
- 'Extensions/Xtensive.Orm.Logging.log4net/**'
12+
- '!Extensions/Xtensive.Orm.Logging.log4net/NuGetContent/**'
13+
- '!Extensions/Xtensive.Orm.Logging.log4net/**.csproj'
14+
- 'Extensions/Xtensive.Orm.Logging.log4net.Tests/**'
15+
- '!Extensions/Xtensive.Orm.Logging.log4net.Tests/**.csproj'
16+
- 'Extensions/Xtensive.Orm.Logging.NLog/**'
17+
- '!Extensions/Xtensive.Orm.Logging.NLog/NuGetContent/**'
18+
- '!Extensions/Xtensive.Orm.Logging.NLog/**.csproj'
19+
- 'Extensions/Xtensive.Orm.Logging.NLog.Tests/**'
20+
- '!Extensions/Xtensive.Orm.Logging.NLog.Tests/**.csproj'
21+
# main project
22+
- 'Orm/Xtensive.Orm/Arithmetics/**'
23+
- 'Orm/Xtensive.Orm/Caching/**'
24+
- 'Orm/Xtensive.Orm/Collections/**'
25+
- 'Orm/Xtensive.Orm/Comparison/**'
26+
- 'Orm/Xtensive.Orm/Conversion/**'
27+
- 'Orm/Xtensive.Orm/Ioc/**'
28+
- 'Orm/Xtensive.Orm/Reflection/**'
29+
- 'Orm/Xtensive.Orm/Tuples/**'
30+
# ability to trigger on demand
31+
- 'TestFileForBuildServerTests.txt'
32+
33+
pull_request:
34+
branches:
35+
- '7.1'
36+
paths:
37+
# extensions
38+
- 'Extensions/Xtensive.Orm.Logging.log4net/**'
39+
- '!Extensions/Xtensive.Orm.Logging.log4net/NuGetContent/**'
40+
- '!Extensions/Xtensive.Orm.Logging.log4net/**.csproj'
41+
- 'Extensions/Xtensive.Orm.Logging.log4net.Tests/**'
42+
- '!Extensions/Xtensive.Orm.Logging.log4net.Tests/**.csproj'
43+
- 'Extensions/Xtensive.Orm.Logging.NLog/**'
44+
- '!Extensions/Xtensive.Orm.Logging.NLog/NuGetContent/**'
45+
- '!Extensions/Xtensive.Orm.Logging.NLog/**.csproj'
46+
- 'Extensions/Xtensive.Orm.Logging.NLog.Tests/**'
47+
- '!Extensions/Xtensive.Orm.Logging.NLog.Tests/**.csproj'
48+
# main project
49+
- 'Orm/Xtensive.Orm/Arithmetics/**'
50+
- 'Orm/Xtensive.Orm/Caching/**'
51+
- 'Orm/Xtensive.Orm/Collections/**'
52+
- 'Orm/Xtensive.Orm/Comparison/**'
53+
- 'Orm/Xtensive.Orm/Conversion/**'
54+
- 'Orm/Xtensive.Orm/Ioc/**'
55+
- 'Orm/Xtensive.Orm/Reflection/**'
56+
- 'Orm/Xtensive.Orm/Tuples/**'
57+
# ability to trigger on demand
58+
- 'TestFileForBuildServerTests.txt'
59+
60+
pull_request_review:
61+
branches:
62+
- '7.1'
63+
paths:
64+
# extensions
65+
- 'Extensions/Xtensive.Orm.Logging.log4net/**'
66+
- '!Extensions/Xtensive.Orm.Logging.log4net/NuGetContent/**'
67+
- '!Extensions/Xtensive.Orm.Logging.log4net/**.csproj'
68+
- 'Extensions/Xtensive.Orm.Logging.log4net.Tests/**'
69+
- '!Extensions/Xtensive.Orm.Logging.log4net.Tests/**.csproj'
70+
- 'Extensions/Xtensive.Orm.Logging.NLog/**'
71+
- '!Extensions/Xtensive.Orm.Logging.NLog/NuGetContent/**'
72+
- '!Extensions/Xtensive.Orm.Logging.NLog/**.csproj'
73+
- 'Extensions/Xtensive.Orm.Logging.NLog.Tests/**'
74+
- '!Extensions/Xtensive.Orm.Logging.NLog.Tests/**.csproj'
75+
# main project
76+
- 'Orm/Xtensive.Orm/Arithmetics/**'
77+
- 'Orm/Xtensive.Orm/Caching/**'
78+
- 'Orm/Xtensive.Orm/Collections/**'
79+
- 'Orm/Xtensive.Orm/Comparison/**'
80+
- 'Orm/Xtensive.Orm/Conversion/**'
81+
- 'Orm/Xtensive.Orm/Ioc/**'
82+
- 'Orm/Xtensive.Orm/Reflection/**'
83+
- 'Orm/Xtensive.Orm/Tuples/**'
84+
# ability to trigger on demand
85+
- 'TestFileForBuildServerTests.txt'
86+
87+
# new commits with the same key will cancel previously run workflows
88+
concurrency:
89+
group: ${{ github.workflow }}-${{ github.ref }}
90+
cancel-in-progress: true
91+
92+
permissions:
93+
contents: read
94+
actions: read
95+
checks: write
96+
97+
jobs:
98+
databaseless_tests:
99+
name: Core Tests
100+
strategy:
101+
matrix:
102+
net: [ 'net5.0', 'net6.0' ]
103+
# For security reasons we allow test runs either for pushes from the team or for pull-requests after their changes were seen and approved by someone
104+
#
105+
# push filter - to cover pushes from the team to main branch of major version
106+
# first 'pull_request_review' filter - to cover external pull-requests, since there are major security concerns about content of pull-request we cannot allow auto-runs of tests
107+
# second 'pull_request_review' - to cover internal pull-requests that were not covered by 'on push' trigger
108+
#
109+
if: |
110+
github.event_name == 'push'
111+
|| (github.event_name == 'pull_request_review'
112+
&& github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
113+
&& startsWith(github.event.pull_request.base.ref, '7.1')
114+
&& github.event.review.state == 'approved')
115+
|| (github.event_name == 'pull_request'
116+
&& github.event.pull_request.head.repo.full_name == github.event.pull_request.base.repo.full_name
117+
&& !startsWith(github.head_ref, '7.1-'))
118+
119+
uses: DataObjects-NET/dataobjects-net/.github/workflows/reusable-storage-independant-tests.yml@7.1
120+
with:
121+
build_config: Release
122+
target_framework: ${{ matrix.net }}
123+
test_output_verbosity: minimal
124+
test_run_timeout: 10
125+
run_core: true
126+
run_log4net: true
127+
run_nlog: true
128+
publish_raw_results: false

0 commit comments

Comments
 (0)