mesh/merge-gate pass: builds networkmanager, systemd-networkd, sent nowhere; no bus step; 4 wait(s) for a person; every machine composes with the change as…
mesh/repo-check pass: its merge-check.sh passed
mesh/delivery delivered
mesh/delivery-group group feat/node-uplink-verbs delivered: every member is delivered
What a machine resolves through had no tool: the resolver file and who wrote it, and every link with its default route and the resolvers its manager knows. Each holder serves the same two node-uplink verbs; the reading is one text carried by both, held to it by a test, and only asking the manager for a link's names is each holder's own.
19 lines
821 B
Go
19 lines
821 B
Go
package main
|
|
|
|
import "testing"
|
|
|
|
// NetworkManager's word on each link's names, read from its terse output.
|
|
func TestNmcliIsReadPerDevice(t *testing.T) {
|
|
links := parseNmcli("GENERAL.DEVICE:wlp3s0\nGENERAL.STATE:100 (connected)\nIP4.DNS[1]:192.168.1.1\n" +
|
|
"IP4.DOMAIN[1]:localdomain\n\nGENERAL.DEVICE:docker0\nGENERAL.STATE:100 (connected (externally))\n\n" +
|
|
"GENERAL.DEVICE:vpn0\nGENERAL.STATE:100 (connected)\nIP4.DNS[1]:192.0.2.53\nIP4.DNS[2]:192.0.2.54\n" +
|
|
"IP4.DOMAIN[1]:corp.example\n")
|
|
if len(links) != 2 || links["wlp3s0"].Servers[0] != "192.168.1.1" || links["wlp3s0"].Domains[0] != "localdomain" ||
|
|
len(links["vpn0"].Servers) != 2 || links["vpn0"].Manager != "NetworkManager" {
|
|
t.Fatalf("read %+v", links)
|
|
}
|
|
if _, said := links["docker0"]; said {
|
|
t.Fatal("a link with no names was said")
|
|
}
|
|
}
|