mirror of
https://github.com/containers/podman.git
synced 2025-10-18 03:33:32 +08:00
Unit tests for pkg/specgenutil pkg/signal
Add some lightweight unit tests to the arsenal. Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
146
pkg/specgenutil/util_test.go
Normal file
146
pkg/specgenutil/util_test.go
Normal file
@ -0,0 +1,146 @@
|
||||
package specgenutil
|
||||
|
||||
import (
|
||||
"reflect"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestCreateExpose(t *testing.T) {
|
||||
single := make(map[uint16]string, 0)
|
||||
single[99] = "tcp"
|
||||
|
||||
simpleRange := make(map[uint16]string, 0)
|
||||
simpleRange[99] = "tcp"
|
||||
simpleRange[100] = "tcp"
|
||||
|
||||
simpleRangeUDP := make(map[uint16]string, 0)
|
||||
simpleRangeUDP[99] = "udp"
|
||||
simpleRangeUDP[100] = "udp"
|
||||
type args struct {
|
||||
expose []string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want map[uint16]string
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "single port",
|
||||
args: args{
|
||||
expose: []string{"99"},
|
||||
},
|
||||
want: single,
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "simple range tcp",
|
||||
args: args{
|
||||
expose: []string{"99-100"},
|
||||
},
|
||||
want: simpleRange,
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "simple range udp",
|
||||
args: args{
|
||||
expose: []string{"99-100/udp"},
|
||||
},
|
||||
want: simpleRangeUDP,
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "range inverted should fail",
|
||||
args: args{
|
||||
expose: []string{"100-99"},
|
||||
},
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "specifying protocol twice should fail",
|
||||
args: args{
|
||||
expose: []string{"99/tcp-100/tcp"},
|
||||
},
|
||||
want: nil,
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := CreateExpose(tt.args.expose)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("CreateExpose() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
if !reflect.DeepEqual(got, tt.want) {
|
||||
t.Errorf("CreateExpose() got = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func Test_parseAndValidatePort(t *testing.T) {
|
||||
type args struct {
|
||||
port string
|
||||
}
|
||||
tests := []struct {
|
||||
name string
|
||||
args args
|
||||
want uint16
|
||||
wantErr bool
|
||||
}{
|
||||
{
|
||||
name: "0 should fail",
|
||||
args: args{
|
||||
port: "0",
|
||||
},
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "over 65535 should fail",
|
||||
args: args{
|
||||
port: "66666",
|
||||
},
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "",
|
||||
args: args{
|
||||
port: "99",
|
||||
},
|
||||
want: 99,
|
||||
wantErr: false,
|
||||
},
|
||||
{
|
||||
name: "negative values should fail",
|
||||
args: args{
|
||||
port: "-1",
|
||||
},
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
{
|
||||
name: "protocol should fail",
|
||||
args: args{
|
||||
port: "99/tcp",
|
||||
},
|
||||
want: 0,
|
||||
wantErr: true,
|
||||
},
|
||||
}
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
got, err := parseAndValidatePort(tt.args.port)
|
||||
if (err != nil) != tt.wantErr {
|
||||
t.Errorf("parseAndValidatePort() error = %v, wantErr %v", err, tt.wantErr)
|
||||
return
|
||||
}
|
||||
if got != tt.want {
|
||||
t.Errorf("parseAndValidatePort() got = %v, want %v", got, tt.want)
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user