Builds: design 47 G §568, A-76 Claude-Session: https://claude.ai/code/session_01NcbgfGKaxw984XyAPfLm4h
24 lines
1.0 KiB
Go
24 lines
1.0 KiB
Go
package buildrun
|
|
|
|
import "testing"
|
|
|
|
// Design 47 G §568, A-76: the class of a transport fault is read from the call's error, and its words are one form.
|
|
func TestFaultClassAndWords(t *testing.T) {
|
|
for cause, class := range map[string]string{
|
|
"nats: no responders available for request": ClassNoResponders,
|
|
"the holder is silent: seat x answered": ClassNoResponders,
|
|
"lookup proxy: no such host": ClassNameLookup,
|
|
"Get https://r: context deadline exceeded": ClassDeadline,
|
|
"read tcp: i/o timeout": ClassDeadline,
|
|
"dial tcp: connection refused": ClassConnection,
|
|
"ssh: kex_exchange_identification: read: reset": ClassConnection,
|
|
} {
|
|
if got := FaultClass(cause); got != class {
|
|
t.Errorf("FaultClass(%q) = %q, want %q", cause, got, class)
|
|
}
|
|
}
|
|
if got, want := TransportFault(ClassDeadline, "node-build-go", "ace", "i/o timeout"), "transport fault: deadline, node-build-go ace, i/o timeout"; got != want {
|
|
t.Errorf("TransportFault = %q, want %q", got, want)
|
|
}
|
|
}
|