diff options
author | Brent Baude <bbaude@redhat.com> | 2022-04-25 14:48:39 -0500 |
---|---|---|
committer | Brent Baude <bbaude@redhat.com> | 2022-04-25 14:48:39 -0500 |
commit | ecd245d8fdfd9f611bd23cebf93c2c23914e5653 (patch) | |
tree | e9b0ce975fd7f402c55baa6a953017d448611bf7 /pkg/signal/signal_common_test.go | |
parent | 6984a0f35704204fa15374aa2c133c4e6e0b366f (diff) | |
download | podman-ecd245d8fdfd9f611bd23cebf93c2c23914e5653.tar.gz podman-ecd245d8fdfd9f611bd23cebf93c2c23914e5653.tar.bz2 podman-ecd245d8fdfd9f611bd23cebf93c2c23914e5653.zip |
Unit tests for pkg/specgenutil pkg/signal
Add some lightweight unit tests to the arsenal.
Signed-off-by: Brent Baude <bbaude@redhat.com>
Diffstat (limited to 'pkg/signal/signal_common_test.go')
-rw-r--r-- | pkg/signal/signal_common_test.go | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/pkg/signal/signal_common_test.go b/pkg/signal/signal_common_test.go new file mode 100644 index 000000000..c4ae6b389 --- /dev/null +++ b/pkg/signal/signal_common_test.go @@ -0,0 +1,120 @@ +package signal + +import ( + "syscall" + "testing" +) + +func TestParseSignal(t *testing.T) { + type args struct { + rawSignal string + } + tests := []struct { + name string + args args + want syscall.Signal + wantErr bool + }{ + { + name: "KILL to SIGKILL", + args: args{ + rawSignal: "KILL", + }, + want: syscall.SIGKILL, + wantErr: false, + }, + { + name: "Case doesnt matter", + args: args{ + rawSignal: "kIlL", + }, + want: syscall.SIGKILL, + wantErr: false, + }, + { + name: "Garbage signal", + args: args{ + rawSignal: "FOO", + }, + want: -1, + wantErr: true, + }, + { + name: "Signal with prepended SIG", + args: args{ + rawSignal: "SIGKILL", + }, + want: syscall.SIGKILL, + wantErr: false, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ParseSignal(tt.args.rawSignal) + if (err != nil) != tt.wantErr { + t.Errorf("ParseSignal() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("ParseSignal() got = %v, want %v", got, tt.want) + } + }) + } +} + +func TestParseSignalNameOrNumber(t *testing.T) { + type args struct { + rawSignal string + } + tests := []struct { + name string + args args + want syscall.Signal + wantErr bool + }{ + { + name: "Kill should work", + args: args{ + rawSignal: "kill", + }, + want: syscall.SIGKILL, + wantErr: false, + }, + { + name: "9 for kill should work", + args: args{ + rawSignal: "9", + }, + want: syscall.SIGKILL, + wantErr: false, + }, + { + name: "Non-defined signal number should work", + args: args{ + rawSignal: "923", + }, + want: 923, + wantErr: false, + }, + { + name: "garbage should fail", + args: args{ + rawSignal: "foo", + }, + want: -1, + wantErr: true, + }, + } + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ParseSignalNameOrNumber(tt.args.rawSignal) + if (err != nil) != tt.wantErr { + t.Errorf("ParseSignalNameOrNumber() error = %v, wantErr %v", err, tt.wantErr) + return + } + if got != tt.want { + t.Errorf("ParseSignalNameOrNumber() got = %v, want %v", got, tt.want) + } + }) + } +} |