more audit work

This commit is contained in:
master
2026-01-08 10:21:51 +02:00
parent 43c02081ef
commit 51cf4bc16c
546 changed files with 36721 additions and 4003 deletions

View File

@@ -11,6 +11,7 @@ namespace StellaOps.Scanner.Reachability.Tests;
public class RichGraphWriterTests
{
private static CancellationToken TestCancellationToken => TestContext.Current.CancellationToken;
[Trait("Category", TestCategories.Unit)]
[Fact]
public async Task WritesCanonicalGraphAndMeta()
@@ -30,11 +31,11 @@ public class RichGraphWriterTests
});
var rich = RichGraphBuilder.FromUnion(union, "test-analyzer", "1.0.0");
var result = await writer.WriteAsync(rich, temp.Path, "analysis-1");
var result = await writer.WriteAsync(rich, temp.Path, "analysis-1", TestCancellationToken);
Assert.True(File.Exists(result.GraphPath));
Assert.True(File.Exists(result.MetaPath));
var json = await File.ReadAllTextAsync(result.GraphPath);
var json = await File.ReadAllTextAsync(result.GraphPath, TestCancellationToken);
Assert.Contains("richgraph-v1", json);
Assert.Contains(":", result.GraphHash); // hash format: algorithm:digest
Assert.Equal(2, result.NodeCount);
@@ -62,9 +63,9 @@ public class RichGraphWriterTests
Edges: Array.Empty<ReachabilityUnionEdge>());
var rich = RichGraphBuilder.FromUnion(union, "test-analyzer", "1.0.0");
var result = await writer.WriteAsync(rich, temp.Path, "analysis-symbol-rich");
var result = await writer.WriteAsync(rich, temp.Path, "analysis-symbol-rich", TestCancellationToken);
var json = await File.ReadAllTextAsync(result.GraphPath);
var json = await File.ReadAllTextAsync(result.GraphPath, TestCancellationToken);
Assert.Contains("\"code_block_hash\":\"sha256:blockhash\"", json);
Assert.Contains("\"symbol\":{\"mangled\":\"_Zssl_read\",\"demangled\":\"ssl_read\",\"source\":\"DWARF\",\"confidence\":0.9}", json);
}
@@ -105,8 +106,8 @@ public class RichGraphWriterTests
}
};
var result = await writer.WriteAsync(rich, temp.Path, "analysis-gates");
var json = await File.ReadAllTextAsync(result.GraphPath);
var result = await writer.WriteAsync(rich, temp.Path, "analysis-gates", TestCancellationToken);
var json = await File.ReadAllTextAsync(result.GraphPath, TestCancellationToken);
Assert.Contains("\"gate_multiplier_bps\":3000", json);
Assert.Contains("\"gates\":[", json);
@@ -130,14 +131,14 @@ public class RichGraphWriterTests
Edges: Array.Empty<ReachabilityUnionEdge>());
var rich = RichGraphBuilder.FromUnion(union, "test-analyzer", "1.0.0");
var result = await writer.WriteAsync(rich, temp.Path, "analysis-blake3");
var result = await writer.WriteAsync(rich, temp.Path, "analysis-blake3", TestCancellationToken);
// Default profile (world) uses BLAKE3
Assert.StartsWith("blake3:", result.GraphHash);
Assert.Equal(64 + 7, result.GraphHash.Length); // "blake3:" (7) + 64 hex chars
// Verify meta.json also contains the blake3-prefixed hash
var metaJson = await File.ReadAllTextAsync(result.MetaPath);
var metaJson = await File.ReadAllTextAsync(result.MetaPath, TestCancellationToken);
Assert.Contains("\"graph_hash\": \"blake3:", metaJson);
}
}