Claims node-container-runtime (ADR 0207). Owns the packages, the socket and a weekly prune of dangling images and unused build cache. Serves 18 tools over every container, marking the mesh's. daemon.json, docker.service and the docker group are left to a proposed change: dnsmasq and zsh declare them today, and the controller refuses a second declaration (README).
61 lines
1.5 KiB
Go
61 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"os"
|
|
"reflect"
|
|
"sort"
|
|
"strings"
|
|
"testing"
|
|
)
|
|
|
|
func TestTheToolsServedAreTheToolsTheManifestNames(t *testing.T) {
|
|
raw, err := os.ReadFile("../../module.json")
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
var m struct {
|
|
Tools []string `json:"tools"`
|
|
}
|
|
if err := json.Unmarshal(raw, &m); err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
served := []string{}
|
|
for _, tool := range tools(client(&fake{}, 1000)) {
|
|
if !strings.HasPrefix(tool.Name, "docker_") || tool.Description == "" || tool.Run == nil {
|
|
t.Errorf("tool %q", tool.Name)
|
|
}
|
|
served = append(served, tool.Name)
|
|
}
|
|
sort.Strings(served)
|
|
listed := append([]string{}, m.Tools...)
|
|
sort.Strings(listed)
|
|
if !reflect.DeepEqual(served, listed) {
|
|
t.Fatalf("served %v, manifest %v", served, listed)
|
|
}
|
|
}
|
|
|
|
func TestNumbersAreDefaultedAndBounded(t *testing.T) {
|
|
if n, _ := bounded(map[string]any{}, "lines", 200, 2000); n != 200 {
|
|
t.Error(n)
|
|
}
|
|
if n, _ := bounded(map[string]any{"lines": float64(99999)}, "lines", 200, 2000); n != 2000 {
|
|
t.Error(n)
|
|
}
|
|
for _, bad := range []any{float64(0), float64(-1), float64(1.5), "10"} {
|
|
if _, err := bounded(map[string]any{"lines": bad}, "lines", 200, 2000); err == nil {
|
|
t.Errorf("%v accepted", bad)
|
|
}
|
|
}
|
|
}
|
|
|
|
func TestAStopFromTheToolNeedsAContainer(t *testing.T) {
|
|
for _, tool := range tools(client(&fake{}, 1000)) {
|
|
if tool.Name == "docker_stop" {
|
|
if _, err := tool.Run(map[string]any{}); err == nil {
|
|
t.Fatal("a stop without a container was accepted")
|
|
}
|
|
}
|
|
}
|
|
}
|