The restart line names no part of a value; the new rows join existing tests (issue 1966, review round 1)
mesh/delivery merged: source.main moved to novox/mesh-host@9d8647aa0f56
mesh/check checking aa649d85a065 on 9d8647aa0f56
mesh/delivery merged: source.main moved to novox/mesh-host@9d8647aa0f56
mesh/check checking aa649d85a065 on 9d8647aa0f56
Claude-Session: https://claude.ai/code/session_01JG73KEq4zoDfM9WtYpcQgZ
This commit is contained in:
@@ -28,6 +28,26 @@ func TestAGeneratedResourceOnASeatsPathIsRefused(t *testing.T) {
|
||||
t.Errorf("the refusal does not name %s: %v", want, err)
|
||||
}
|
||||
}
|
||||
// And the paths a module owns do not change with its build (issue 1966): the holder of node-files is told them in a
|
||||
// word of the tool runner's unit, so a place named for each build restarted the tool runner with each build.
|
||||
digest := "sha256:" + strings.Repeat("ab12", 16)
|
||||
for _, row := range []struct {
|
||||
name string
|
||||
res map[string]any
|
||||
owns string
|
||||
}{
|
||||
{"a build's own place", map[string]any{"id": "next", "type": "archive", "digest": digest, "path": "/usr/lib/x/versions/ab12ab12ab12"}, "/usr/lib/x/versions"},
|
||||
{"another build's place", map[string]any{"id": "next", "type": "archive", "digest": "sha256:" + strings.Repeat("cd34", 16), "path": "/usr/lib/x/versions/cd34cd34cd34"}, "/usr/lib/x/versions"},
|
||||
{"a fixed place", map[string]any{"id": "app", "type": "archive", "digest": digest, "path": "/opt/app"}, "/opt/app"},
|
||||
{"a file", map[string]any{"id": "f", "type": "file", "path": "/etc/f"}, "/etc/f"},
|
||||
} {
|
||||
t.Run(row.name, func(t *testing.T) {
|
||||
got := DeclaredPaths(mcat.Manifest{Module: "m", Resources: []map[string]any{row.res}})
|
||||
if len(got) != 1 || got[0] != row.owns {
|
||||
t.Fatalf("owns %v, want [%s]", got, row.owns)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// The stepping back comes from the seat, and is of a rendered file only: an uplink holder declaring the
|
||||
@@ -54,27 +74,3 @@ func TestAnUplinkDeclaringTheResolverFileAsAResourceIsRefusedBesideTheResolver(t
|
||||
t.Errorf("the uplink's holder renders %v beside the resolver", got.Facts)
|
||||
}
|
||||
}
|
||||
|
||||
// The paths a module owns do not change with its build (issue 1966): the holder of node-files is told them in an
|
||||
// environment word of the tool runner's unit, so a place named for each build moved with every build of its module and
|
||||
// restarted the tool runner each time.
|
||||
func TestAPathNamedForABuildIsOwnedAsTheDirectoryHoldingEveryBuild(t *testing.T) {
|
||||
digest := "sha256:" + strings.Repeat("ab12", 16)
|
||||
for _, row := range []struct {
|
||||
name string
|
||||
res map[string]any
|
||||
owns string
|
||||
}{
|
||||
{"a build's own place", map[string]any{"id": "next", "type": "archive", "digest": digest, "path": "/usr/lib/x/versions/ab12ab12ab12"}, "/usr/lib/x/versions"},
|
||||
{"another build's place", map[string]any{"id": "next", "type": "archive", "digest": "sha256:" + strings.Repeat("cd34", 16), "path": "/usr/lib/x/versions/cd34cd34cd34"}, "/usr/lib/x/versions"},
|
||||
{"a fixed place", map[string]any{"id": "app", "type": "archive", "digest": digest, "path": "/opt/app"}, "/opt/app"},
|
||||
{"a file", map[string]any{"id": "f", "type": "file", "path": "/etc/f"}, "/etc/f"},
|
||||
} {
|
||||
t.Run(row.name, func(t *testing.T) {
|
||||
got := DeclaredPaths(mcat.Manifest{Module: "m", Resources: []map[string]any{row.res}})
|
||||
if len(got) != 1 || got[0] != row.owns {
|
||||
t.Fatalf("owns %v, want [%s]", got, row.owns)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user