Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions build/Stride.Tests.Simple.slnf
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,9 @@
"..\\sources\\assets\\Stride.Core.Assets.Quantum.Tests\\Stride.Core.Assets.Quantum.Tests.csproj",
"..\\sources\\assets\\Stride.Core.Assets.Tests\\Stride.Core.Assets.Tests.csproj",
"..\\sources\\buildengine\\Stride.Core.BuildEngine.Tests\\Stride.Core.BuildEngine.Tests.csproj",
"..\\sources\\core\\Stride.Core.CompilerServices.Tests\\Stride.Core.CompilerServices.Tests.csproj",
"..\\sources\\core\\Stride.Core.Design.Tests\\Stride.Core.Design.Tests.csproj",
"..\\sources\\core\\Stride.Core.Mathematics.Tests\\Stride.Core.Mathematics.Tests.csproj",
"..\\sources\\core\\Stride.Core.Tests\\Stride.Core.Tests.csproj",
"..\\sources\\core\\Stride.Core.Yaml.Tests\\Stride.Core.Yaml.Tests.csproj",
"..\\sources\\editor\\Stride.Core.Assets.Editor.Tests\\Stride.Core.Assets.Editor.Tests.csproj",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -347,7 +347,7 @@ private BuildResultCode BuildSlave()
}

// Create scheduler
var scheduler = new Scheduler();
using var scheduler = new Scheduler();

var status = ResultStatus.NotProcessed;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
<PropertyGroup>
<TargetFramework>$(StrideEditorTargetFramework)</TargetFramework>
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion>
<StrideAssemblyProcessor>true</StrideAssemblyProcessor>
<StrideAssemblyProcessorOptions>--auto-module-initializer --serialization</StrideAssemblyProcessorOptions>
</PropertyGroup>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,8 +115,10 @@ protected override List<KeyValuePair<FileVersionKey, ObjectId>> ReadEntries(Syst

protected override void WriteEntry(Stream localStream, KeyValuePair<FileVersionKey, ObjectId> value)
{
ArgumentNullException.ThrowIfNull(localStream);

var key = value.Key;
var line = string.Format("{0}\t{1}\t{2}\t{3}\n", key.Path, key.LastModifiedDate.Ticks, key.FileSize, value.Value);
var line = $"{key.Path}\t{key.LastModifiedDate.Ticks}\t{key.FileSize}\t{value.Value}\n";
var bytes = Encoding.UTF8.GetBytes(line);
localStream.Write(bytes, 0, bytes.Length);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,7 @@ public static BuildResultCode BuildSlave(BuilderOptions options)
RegisterRemoteLogger(processBuilderRemote);

// Create scheduler
var scheduler = new Scheduler();
using var scheduler = new Scheduler();

var status = ResultStatus.NotProcessed;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
<RuntimeIdentifier>win-x64</RuntimeIdentifier>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<ImplicitUsings>enable</ImplicitUsings>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
Expand Down Expand Up @@ -31,4 +34,4 @@
<ItemGroup>
<None Include="app.config" />
</ItemGroup>
</Project>
</Project>
Original file line number Diff line number Diff line change
@@ -1,74 +1,68 @@
// Copyright (c) .NET Foundation and Contributors (https://dotnetfoundation.org/ & https://stride3d.net) and Silicon Studio Corp. (https://www.siliconstudio.co.jp)
// Distributed under the MIT license. See the LICENSE.md file in the project root for more information.

using System;
using System.Collections.Generic;
using System.IO;
using Mono.Cecil;
using Xunit;

namespace Stride.Core.AssemblyProcessor.Tests
namespace Stride.Core.AssemblyProcessor.Tests;

public class TestCecilExtensions
{
public class TestCecilExtensions
{
class Nested
{
}
class Nested;

private readonly BaseAssemblyResolver assemblyResolver = new DefaultAssemblyResolver();
private readonly BaseAssemblyResolver assemblyResolver = new DefaultAssemblyResolver();

public TestCecilExtensions()
{
// Add location of current assembly to MonoCecil search path.
assemblyResolver.AddSearchDirectory(Path.GetDirectoryName(typeof(TestCecilExtensions).Assembly.Location));
}
public TestCecilExtensions()
{
// Add location of current assembly to MonoCecil search path.
assemblyResolver.AddSearchDirectory(Path.GetDirectoryName(typeof(TestCecilExtensions).Assembly.Location));
}

private string GenerateNameCecil(Type type)
{
var typeReference = type.GenerateTypeCecil(assemblyResolver);
private string GenerateNameCecil(Type type)
{
var typeReference = type.GenerateTypeCecil(assemblyResolver);

return typeReference.ConvertAssemblyQualifiedName();
}
return typeReference.ConvertAssemblyQualifiedName();
}

private static string GenerateNameDotNet(Type type)
{
return type.AssemblyQualifiedName;
}
private static string? GenerateNameDotNet(Type type)
{
return type.AssemblyQualifiedName;
}

private void CheckGeneratedNames(Type type)
{
var nameCecil = GenerateNameCecil(type);
var nameDotNet = GenerateNameDotNet(type);
Assert.Equal(nameDotNet, nameCecil);
}
private void CheckGeneratedNames(Type type)
{
var nameCecil = GenerateNameCecil(type);
var nameDotNet = GenerateNameDotNet(type);
Assert.Equal(nameDotNet, nameCecil);
}

[Fact]
public void TestCecilDotNetAssemblyQualifiedNames()
{
// Primitive value type
CheckGeneratedNames(typeof(bool));
[Fact]
public void TestCecilDotNetAssemblyQualifiedNames()
{
// Primitive value type
CheckGeneratedNames(typeof(bool));

// Primitive class
CheckGeneratedNames(typeof(string));
// Primitive class
CheckGeneratedNames(typeof(string));

// User class
CheckGeneratedNames(typeof(TestCecilExtensions));
// User class
CheckGeneratedNames(typeof(TestCecilExtensions));

// Closed generics
CheckGeneratedNames(typeof(Dictionary<string, object>));
// Closed generics
CheckGeneratedNames(typeof(Dictionary<string, object>));

// Open generics
CheckGeneratedNames(typeof(Dictionary<,>));
// Open generics
CheckGeneratedNames(typeof(Dictionary<,>));

// Nested types
CheckGeneratedNames(typeof(Nested));
// Nested types
CheckGeneratedNames(typeof(Nested));

// Arrays
CheckGeneratedNames(typeof(string[]));
CheckGeneratedNames(typeof(Dictionary<string, object>[]));
// Arrays
CheckGeneratedNames(typeof(string[]));
CheckGeneratedNames(typeof(Dictionary<string, object>[]));

// Nullable
CheckGeneratedNames(typeof(bool?));
}
// Nullable
CheckGeneratedNames(typeof(bool?));
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,23 +6,23 @@ namespace Stride.Core.CompilerServices.Tests.AnalyzerTests;
public class STRDIAG000_Test
{
[Fact]
public void Error_On_Attribute_Contradiction_On_Property()
public async Task Error_On_Attribute_Contradiction_On_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMemberIgnore][DataMember]public int Value { get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG000AttributeContradiction.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG000AttributeContradiction.DiagnosticId);
}

[Fact]
public void Error_On_Attribute_Contradiction_On_Field()
public async Task Error_On_Attribute_Contradiction_On_Field()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMemberIgnore][DataMember]public int Value;");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG000AttributeContradiction.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG000AttributeContradiction.DiagnosticId);
}

[Fact]
public void NoErrorOn_Attribute_Contradiction_With_Updatable()
public async Task NoErrorOn_Attribute_Contradiction_With_Updatable()
{
string sourceCode = @"
const string sourceCode = @"
using System;
using Stride.Core;
using Stride.Updater;
Expand All @@ -46,6 +46,6 @@ public class TripleAnnotation
}
}
";
TestHelper.ExpectNoDiagnosticsErrors(sourceCode);
await TestHelper.ExpectNoDiagnosticsErrorsAsync(sourceCode);
}
}
Original file line number Diff line number Diff line change
@@ -1,36 +1,31 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Stride.Core.CompilerServices.Analyzers;
using Xunit;

namespace Stride.Core.CompilerServices.Tests.AnalyzerTests;
public class STRDIAG001_Test
{
[Fact]
public void Error_On_Private_Inner_Class_with_DataContract()
public async Task Error_On_Private_Inner_Class_with_DataContract()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataContract] private class InnerClass { }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG001InvalidDataContract.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG001InvalidDataContract.DiagnosticId);
}
[Fact]
public void No_Error_On_Private_Inner_Class_without_DataContract()
public async Task No_Error_On_Private_Inner_Class_without_DataContract()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "private class InnerClass { }");
TestHelper.ExpectNoDiagnosticsErrors(sourceCode);
await TestHelper.ExpectNoDiagnosticsErrorsAsync(sourceCode);
}
[Fact]
public void Error_On_file_scope_Class_with_DataContract()
public async Task Error_On_file_scope_Class_with_DataContract()
{
string sourceCode = "using Stride.Core; [DataContract] file class FileScopeClass { }";
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG001InvalidDataContract.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG001InvalidDataContract.DiagnosticId);
}
[Fact]
public void No_Error_On_file_scope_Class_without_DataContract()
public async Task No_Error_On_file_scope_Class_without_DataContract()
{
string sourceCode = "using Stride.Core; file class FileScopeClass { }";
TestHelper.ExpectNoDiagnosticsErrors(sourceCode);
await TestHelper.ExpectNoDiagnosticsErrorsAsync(sourceCode);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ namespace Stride.Core.CompilerServices.Tests.AnalyzerTests;
public class STRDIAG002_Test
{
[Fact]
public void Error_On_Attribute_Contradiction_On_Property()
public async Task Error_On_Attribute_Contradiction_On_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember(DataMemberMode.Content)]public int Value { get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG002InvalidContentMode.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG002InvalidContentMode.DiagnosticId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,44 +6,44 @@ namespace Stride.Core.CompilerServices.Tests.AnalyzerTests;
public class STRDIAG003_Test
{
[Fact]
public void Error_On_Datamember_With_private_InaccessibleMember_On_Property()
public async Task Error_On_Datamember_With_private_InaccessibleMember_On_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] private int Value { get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
}

[Fact]
public void Error_On_Datamember_With_private_InaccessibleMember_On_Field()
public async Task Error_On_Datamember_With_private_InaccessibleMember_On_Field()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] private int Value = 0;");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
}

[Fact]
public void Error_On_Datamember_With_protected_InaccessibleMember_On_Property()
public async Task Error_On_Datamember_With_protected_InaccessibleMember_On_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] protected int Value { get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
}

[Fact]
public void Error_On_Datamember_With_protected_InaccessibleMember_On_Field()
public async Task Error_On_Datamember_With_protected_InaccessibleMember_On_Field()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] protected int Value = 0;");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
}

[Fact]
public void Error_On_Datamember_With_private_protected_InaccessibleMember_On_Property()
public async Task Error_On_Datamember_With_private_protected_InaccessibleMember_On_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] private protected int Value { get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
}

[Fact]
public void Error_On_Datamember_With_private_protected_InaccessibleMember_On_Field()
public async Task Error_On_Datamember_With_private_protected_InaccessibleMember_On_Field()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] private protected int Value = 0;");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG003InaccessibleMember.DiagnosticId);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -6,30 +6,30 @@ namespace Stride.Core.CompilerServices.Tests.AnalyzerTests;
public class STRDIAG004_Test
{
[Fact]
public void Error_On_No_Get_Property()
public async Task Error_On_No_Get_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] public int Value { set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
}

[Fact]
public void Error_On_private_Get_Property()
public async Task Error_On_private_Get_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] public int Value { private get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
}

[Fact]
public void Error_On_protected_Get_Property()
public async Task Error_On_protected_Get_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] public int Value { protected get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
}

[Fact]
public void Error_On_private_protected_Get_Property()
public async Task Error_On_private_protected_Get_Property()
{
string sourceCode = string.Format(ClassTemplates.BasicClassTemplate, "[DataMember] public int Value { private protected get; set; }");
TestHelper.ExpectDiagnosticsError(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
await TestHelper.ExpectDiagnosticsErrorAsync(sourceCode, STRDIAG004PropertyWithNoGetter.DiagnosticId);
}
}
Loading