stario/signal_error_test.go

51 lines
1.3 KiB
Go
Raw Normal View History

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)
}
}