Fix build and code structure improvements. New but essential UI functionality. CI improvements. Documentation improvements. AI module improvements.
This commit is contained in:
@@ -45,7 +45,7 @@ public sealed class LanguageAnalyzerContextTests
|
||||
var context = new LanguageAnalyzerContext(workspace.Path, TimeProvider.System, services: serviceProvider);
|
||||
|
||||
Assert.True(context.Secrets.IsAvailable);
|
||||
using var retrieved = await context.Secrets.GetAsync("registry", "default", TestContext.Current.CancellationToken);
|
||||
using var retrieved = await context.Secrets.GetAsync("registry", "default", CancellationToken.None);
|
||||
Assert.Same(handle, retrieved);
|
||||
Assert.Equal("test", retrieved.Metadata["source"]);
|
||||
Assert.Equal("token", Encoding.UTF8.GetString(retrieved.AsBytes().Span));
|
||||
@@ -58,7 +58,7 @@ public sealed class LanguageAnalyzerContextTests
|
||||
var context = new LanguageAnalyzerContext(workspace.Path, TimeProvider.System);
|
||||
|
||||
Assert.False(context.Secrets.IsAvailable);
|
||||
var secret = await context.Secrets.TryGetAsync("registry", cancellationToken: TestContext.Current.CancellationToken);
|
||||
var secret = await context.Secrets.TryGetAsync("registry", cancellationToken: CancellationToken.None);
|
||||
Assert.Null(secret);
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class LanguageAnalyzerHarnessTests
|
||||
{
|
||||
var fixturePath = TestPaths.ResolveFixture("determinism", "basic", "input");
|
||||
var goldenPath = TestPaths.ResolveFixture("determinism", "basic", "expected.json");
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
|
||||
var analyzers = new ILanguageAnalyzer[]
|
||||
{
|
||||
|
||||
@@ -12,7 +12,7 @@ public sealed class DotNetEntrypointResolverTests
|
||||
[Fact]
|
||||
public async Task SimpleFixtureResolvesSingleEntrypointAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "simple");
|
||||
|
||||
var context = new LanguageAnalyzerContext(fixturePath, TimeProvider.System);
|
||||
@@ -33,7 +33,7 @@ public sealed class DotNetEntrypointResolverTests
|
||||
[Fact]
|
||||
public async Task DeterministicOrderingIsStableAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "multi");
|
||||
|
||||
var context = new LanguageAnalyzerContext(fixturePath, TimeProvider.System);
|
||||
|
||||
@@ -15,7 +15,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task SimpleFixtureProducesDeterministicOutputAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "simple");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
|
||||
@@ -34,7 +34,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task SignedFixtureCapturesAssemblyMetadataAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "signed");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
|
||||
@@ -58,7 +58,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task SelfContainedFixtureHandlesNativeAssetsAndUsageAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "selfcontained");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
|
||||
@@ -84,7 +84,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task AnalyzerIsThreadSafeUnderConcurrencyAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "selfcontained");
|
||||
|
||||
var analyzers = new ILanguageAnalyzer[]
|
||||
@@ -107,7 +107,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task ConfigEnablesIlMetadataEdgesAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var sourceFixture = TestPaths.ResolveFixture("lang", "dotnet", "simple");
|
||||
var tempRoot = TestPaths.CreateTemporaryDirectory();
|
||||
|
||||
@@ -169,7 +169,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task MultiFixtureMergesRuntimeMetadataAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "multi");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
|
||||
@@ -217,7 +217,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task SourceTreeOnlyEmitsDeclaredPackagesAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "source-tree-only");
|
||||
|
||||
var analyzers = new ILanguageAnalyzer[]
|
||||
@@ -253,7 +253,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task LockfileOnlyEmitsDeclaredPackagesAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "lockfile-only");
|
||||
|
||||
var analyzers = new ILanguageAnalyzer[]
|
||||
@@ -291,7 +291,7 @@ public sealed class DotNetLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task PackagesConfigOnlyEmitsDeclaredPackagesAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "dotnet", "packages-config-only");
|
||||
|
||||
var analyzers = new ILanguageAnalyzer[]
|
||||
|
||||
@@ -1,12 +1,9 @@
|
||||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
<PackageVersion Include="Serilog" Version="3.1.1" />
|
||||
<PackageVersion Include="Newtonsoft.Json" Version="13.0.4" />
|
||||
<PackageVersion Include="Serilog" Version="4.3.0" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
</Project>
|
||||
@@ -1,9 +1,9 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<OutputType>Exe</OutputType>
|
||||
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
|
||||
<ManagePackageVersionsCentrally>false</ManagePackageVersionsCentrally>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
@@ -18,7 +18,7 @@ public sealed class RubyLanguageAnalyzerTests
|
||||
fixture,
|
||||
golden,
|
||||
new ILanguageAnalyzer[] { new RubyLanguageAnalyzer() },
|
||||
cancellationToken: TestContext.Current.CancellationToken,
|
||||
cancellationToken: CancellationToken.None,
|
||||
usageHints: usageHints);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ public sealed class RubyLanguageAnalyzerTests
|
||||
fixture,
|
||||
golden,
|
||||
new ILanguageAnalyzer[] { new RubyLanguageAnalyzer() },
|
||||
cancellationToken: TestContext.Current.CancellationToken);
|
||||
cancellationToken: CancellationToken.None);
|
||||
}
|
||||
|
||||
[Fact]
|
||||
@@ -46,7 +46,7 @@ public sealed class RubyLanguageAnalyzerTests
|
||||
fixture,
|
||||
golden,
|
||||
new ILanguageAnalyzer[] { new RubyLanguageAnalyzer() },
|
||||
cancellationToken: TestContext.Current.CancellationToken,
|
||||
cancellationToken: CancellationToken.None,
|
||||
usageHints: usageHints);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,7 +11,7 @@ public sealed class RustHeuristicCoverageComparisonTests
|
||||
[Fact]
|
||||
public async Task HeuristicCoverageExceedsCompetitorBaselineAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "rust", "heuristics");
|
||||
var baselinePath = Path.Combine(fixturePath, "competitor-baseline.json");
|
||||
RustFixtureBinaries.EnsureHeuristicBinary(fixturePath);
|
||||
|
||||
@@ -13,7 +13,7 @@ public sealed class RustLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task SimpleFixtureProducesDeterministicOutputAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "rust", "simple");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
|
||||
@@ -38,7 +38,7 @@ public sealed class RustLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task AnalyzerIsThreadSafeUnderConcurrencyAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "rust", "simple");
|
||||
|
||||
var analyzers = new ILanguageAnalyzer[]
|
||||
@@ -61,7 +61,7 @@ public sealed class RustLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task HeuristicFixtureProducesExpectedOutputAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "rust", "heuristics");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
RustFixtureBinaries.EnsureHeuristicBinary(fixturePath);
|
||||
@@ -86,7 +86,7 @@ public sealed class RustLanguageAnalyzerTests
|
||||
[Fact]
|
||||
public async Task FallbackFixtureProducesExpectedOutputAsync()
|
||||
{
|
||||
var cancellationToken = TestContext.Current.CancellationToken;
|
||||
var cancellationToken = CancellationToken.None;
|
||||
var fixturePath = TestPaths.ResolveFixture("lang", "rust", "fallback");
|
||||
var goldenPath = Path.Combine(fixturePath, "expected.json");
|
||||
RustFixtureBinaries.EnsureOpaqueBinary(fixturePath);
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
<?xml version='1.0' encoding='utf-8'?>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
<PropertyGroup>
|
||||
<UseXunitV3>true</UseXunitV3>
|
||||
<TargetFramework>net10.0</TargetFramework>
|
||||
<LangVersion>preview</LangVersion>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
@@ -8,7 +9,6 @@
|
||||
<TreatWarningsAsErrors>false</TreatWarningsAsErrors>
|
||||
<IsPackable>false</IsPackable>
|
||||
<OutputType>Exe</OutputType>
|
||||
<UseConcelierTestInfra>false</UseConcelierTestInfra>
|
||||
<ConcelierTestingPath></ConcelierTestingPath>
|
||||
<ConcelierSharedTestsPath></ConcelierSharedTestsPath>
|
||||
</PropertyGroup>
|
||||
@@ -26,13 +26,11 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.14.1" />
|
||||
<PackageReference Include="xunit.v3" Version="3.0.0" />
|
||||
<PackageReference Include="xunit.runner.visualstudio" Version="3.1.3" />
|
||||
<!-- Force newer versions to override transitive dependencies -->
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.4" />
|
||||
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" Version="10.0.0" />
|
||||
<PackageReference Include="BouncyCastle.Cryptography" Version="2.6.2" />
|
||||
<PackageReference Include="xunit.v3" />
|
||||
<!-- Force newer versions to override transitive dependencies -->
|
||||
<PackageReference Include="Newtonsoft.Json" />
|
||||
<PackageReference Include="Microsoft.Bcl.AsyncInterfaces" />
|
||||
<PackageReference Include="BouncyCastle.Cryptography" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@@ -48,6 +46,8 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- Exclude Fixtures from compilation - they contain sample .NET projects with their own obj/ directories -->
|
||||
<Compile Remove="Fixtures\**\*.cs" />
|
||||
<None Include="Fixtures\**\*" CopyToOutputDirectory="PreserveNewest" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
</Project>
|
||||
Reference in New Issue
Block a user