package stario import ( "errors" "testing" ) func TestSignalErrorForType(t *testing.T) { cases := []struct { name string sig rune msg string want error }{ {name: "interrupt", sig: 0x03, msg: "SIGNAL SIGINT RECIVED", want: ErrSignalInterrupt}, {name: "stop", sig: 0x1a, msg: "SIGNAL SIGSTOP RECIVED", want: ErrSignalStop}, {name: "quit", sig: 0x1c, msg: "SIGNAL SIGQUIT RECIVED", want: ErrSignalQuit}, } for _, tc := range cases { err := signalErrorForType(tc.sig) if err == nil { t.Fatalf("%s: expected non-nil error", tc.name) } if err.Error() != tc.msg { t.Fatalf("%s: unexpected error text: got %q want %q", tc.name, err.Error(), tc.msg) } if !errors.Is(err, tc.want) { t.Fatalf("%s: errors.Is mismatch: got %v want %v", tc.name, err, tc.want) } } } func TestSignalErrorForUnknownType(t *testing.T) { if err := signalErrorForType('x'); err != nil { t.Fatalf("expected nil error for unknown signal, got %v", err) } } func TestSignalReturnsTypedError(t *testing.T) { err := signal(0x03) if !errors.Is(err, ErrSignalInterrupt) { t.Fatalf("expected interrupt error, got %v", err) } } func TestSignalReturnsNilForUnknownType(t *testing.T) { if err := signal('x'); err != nil { t.Fatalf("expected nil error for unknown signal, got %v", err) } }