From 86e2d1b0a48fbd84590291969611f1870471c3e0 Mon Sep 17 00:00:00 2001 From: Matthew Holt Date: Tue, 26 Mar 2019 15:45:51 -0600 Subject: Rudimentary start of HTTP servers --- modules/caddyhttp/caddyhttp_test.go | 80 +++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 modules/caddyhttp/caddyhttp_test.go (limited to 'modules/caddyhttp/caddyhttp_test.go') diff --git a/modules/caddyhttp/caddyhttp_test.go b/modules/caddyhttp/caddyhttp_test.go new file mode 100644 index 0000000..c65a9a2 --- /dev/null +++ b/modules/caddyhttp/caddyhttp_test.go @@ -0,0 +1,80 @@ +package caddyhttp + +import ( + "reflect" + "testing" +) + +func TestParseListenerAddr(t *testing.T) { + for i, tc := range []struct { + input string + expectProto string + expectAddrs []string + expectErr bool + }{ + { + input: "", + expectProto: "tcp", + expectErr: true, + }, + { + input: ":", + expectProto: "tcp", + expectErr: true, + }, + { + input: ":1234", + expectProto: "tcp", + expectAddrs: []string{":1234"}, + }, + { + input: "tcp::::1234", + expectProto: "tcp", + expectAddrs: []string{":1234"}, + }, + { + input: "tcp6::::1234", + expectProto: "tcp6", + expectAddrs: []string{":1234"}, + }, + { + input: "tcp4:::localhost:1234", + expectProto: "tcp4", + expectAddrs: []string{"localhost:1234"}, + }, + { + input: "unix:::localhost:1234-1236", + expectProto: "unix", + expectAddrs: []string{"localhost:1234", "localhost:1235", "localhost:1236"}, + }, + { + input: "localhost:1234-1234", + expectProto: "tcp", + expectAddrs: []string{"localhost:1234"}, + }, + { + input: "localhost:2-1", + expectProto: "tcp", + expectErr: true, + }, + { + input: "localhost:0", + expectProto: "tcp", + expectAddrs: []string{"localhost:0"}, + }, + } { + actualProto, actualAddrs, err := parseListenAddr(tc.input) + if tc.expectErr && err == nil { + t.Errorf("Test %d: Expected error but got: %v", i, err) + } + if !tc.expectErr && err != nil { + t.Errorf("Test %d: Expected no error but got: %v", i, err) + } + if actualProto != tc.expectProto { + t.Errorf("Test %d: Expeceted protocol '%s' but got '%s'", i, tc.expectProto, actualProto) + } + if !reflect.DeepEqual(tc.expectAddrs, actualAddrs) { + t.Errorf("Test %d: Expected addresses %v but got %v", i, tc.expectAddrs, actualAddrs) + } + } +} -- cgit v1.2.3