Prepare sensitivity dependencies once per recorded operation
This commit is contained in:
@@ -27,7 +27,9 @@ func TestSensitivityCandidatesMergeRepeatedParsedPaths(t *testing.T) {
|
||||
})
|
||||
}
|
||||
}
|
||||
candidates := builder.freeze().sensitivityCandidates()
|
||||
model := builder.freeze()
|
||||
_, inherited := model.sensitivityDependencies()
|
||||
candidates := model.sensitivityCandidates(inherited)
|
||||
for _, path := range []Path{key, index, parsed, dependency} {
|
||||
count := 0
|
||||
for _, candidate := range candidates {
|
||||
@@ -236,19 +238,20 @@ func TestHistoryModelFinalizesLocationAndSensitivityWithoutRetainingInventoryTre
|
||||
t.Fatalf("latest historical location = %#v, %v", got, ok)
|
||||
}
|
||||
|
||||
candidates := model.sensitivityCandidates()
|
||||
var sawCandidate bool
|
||||
dependencies, inherited := model.sensitivityDependencies()
|
||||
candidates := model.sensitivityCandidates(inherited)
|
||||
var sawCandidate, sawDependency bool
|
||||
for _, candidate := range candidates {
|
||||
if !sameConcreteHistoryPath(candidate.path, keyPath) || !candidate.sensitive || len(candidate.dependencies) == 0 {
|
||||
continue
|
||||
if sameConcreteHistoryPath(candidate.path, keyPath) && candidate.sensitive {
|
||||
sawCandidate = true
|
||||
}
|
||||
if len(candidate.dependencies) != 1 || candidate.dependencies[0].String() != dependency.String() {
|
||||
t.Fatalf("sensitivity dependencies = %#v", candidate.dependencies)
|
||||
if slices.Equal(candidate.path.segments, dependency.segments) && candidate.classify {
|
||||
sawDependency = true
|
||||
}
|
||||
sawCandidate = true
|
||||
}
|
||||
if !sawCandidate {
|
||||
t.Fatal("sensitivity candidate omitted the concrete historical path")
|
||||
if !sawCandidate || !sawDependency || len(dependencies) != 1 ||
|
||||
dependencies[0].target.String() != "/shape" || dependencies[0].dependency.String() != dependency.String() {
|
||||
t.Fatal("sensitivity evidence omitted the concrete historical path or its recorded dependency")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user