38 lines
1.3 KiB
Go
38 lines
1.3 KiB
Go
package catalogue
|
|
|
|
import "testing"
|
|
|
|
// A bundle is the module's own directory compiled whole, and naming a source would be describing its
|
|
// own build. That holds for an interpreted language and cannot hold for a compiled one: a repository
|
|
// written in Go carries several commands — the host and its bootstrap live in one — and "the module's
|
|
// own directory" is then not a package at all (novox/hq 04-ISSUES/142).
|
|
|
|
func TestAGoBundleMayNameItsCommand(t *testing.T) {
|
|
b := &Build{Artifacts: []Artifact{{
|
|
Name: "host-arch", Kind: ArtifactBundle, Language: "go", System: "arch",
|
|
From: "cmd/mesh-host",
|
|
}}}
|
|
if p := b.problems("mesh-host"); len(p) != 0 {
|
|
t.Fatalf("a go bundle naming its command was refused: %v", p)
|
|
}
|
|
}
|
|
|
|
func TestAnInterpretedBundleStillMayNotNameASource(t *testing.T) {
|
|
b := &Build{Artifacts: []Artifact{{
|
|
Name: "tools", Kind: ArtifactBundle, Language: "typescript", From: "src",
|
|
}}}
|
|
p := b.problems("something")
|
|
if len(p) == 0 {
|
|
t.Fatal("an interpreted bundle naming what it is built from was accepted")
|
|
}
|
|
}
|
|
|
|
func TestACompiledBundleStillMustSayItsSystem(t *testing.T) {
|
|
b := &Build{Artifacts: []Artifact{{
|
|
Name: "host", Kind: ArtifactBundle, Language: "go", From: "cmd/mesh-host",
|
|
}}}
|
|
if len(b.problems("mesh-host")) == 0 {
|
|
t.Fatal("a compiled bundle with no system was accepted")
|
|
}
|
|
}
|