From a50a44b0ca111d9ff9c47fe83231f6e1570d1642 Mon Sep 17 00:00:00 2001 From: Harshavardhana Date: Tue, 7 Jul 2015 16:15:47 -0700 Subject: [PATCH] Add nimbleNet tests --- pkg/server/nimble/net.go | 2 +- pkg/server/nimble/net_test.go | 78 +++++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+), 1 deletion(-) create mode 100644 pkg/server/nimble/net_test.go diff --git a/pkg/server/nimble/net.go b/pkg/server/nimble/net.go index 50cdc42fd..65cfc5d48 100644 --- a/pkg/server/nimble/net.go +++ b/pkg/server/nimble/net.go @@ -118,7 +118,7 @@ func (n *nimbleNet) Listen(nett, laddr string) (net.Listener, error) { return nil, iodine.New(err, nil) } return n.ListenTCP(nett, addr) - case "unix", "unixpacket", "invalid_unix_net_for_test": + case "unix", "unixpacket": addr, err := net.ResolveUnixAddr(nett, laddr) if err != nil { return nil, iodine.New(err, nil) diff --git a/pkg/server/nimble/net_test.go b/pkg/server/nimble/net_test.go new file mode 100644 index 000000000..f7757d140 --- /dev/null +++ b/pkg/server/nimble/net_test.go @@ -0,0 +1,78 @@ +/* + * Minimalist Object Storage, (C) 2015 Minio, Inc. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package nimble + +import ( + "os" + "regexp" + "testing" + + . "github.com/minio/check" + "github.com/minio/minio/pkg/iodine" +) + +func Test(t *testing.T) { TestingT(t) } + +type MySuite struct{} + +var _ = Suite(&MySuite{}) + +func (s *MySuite) TestEmptyCountEnvVariable(c *C) { + os.Setenv(envCountKey, "") + n := &nimbleNet{} + c.Assert(n.getInheritedListeners(), IsNil) +} + +func (s *MySuite) TestZeroCountEnvVariable(c *C) { + os.Setenv(envCountKey, "0") + n := &nimbleNet{} + c.Assert(n.getInheritedListeners(), IsNil) +} + +func (s *MySuite) TestInvalidCountEnvVariable(c *C) { + os.Setenv(envCountKey, "a") + n := &nimbleNet{} + expected := regexp.MustCompile("^found invalid count value: LISTEN_FDS=a$") + err := n.getInheritedListeners() + c.Assert(err, Not(IsNil)) + c.Assert(expected.MatchString(iodine.ToError(err).Error()), Equals, true) +} + +func (s *MySuite) TestInheritErrorOnListenTCPWithInvalidCount(c *C) { + os.Setenv(envCountKey, "a") + n := &nimbleNet{} + expected := regexp.MustCompile("^found invalid count value: LISTEN_FDS=a$") + _, err := n.Listen("tcp", ":0") + c.Assert(err, Not(IsNil)) + c.Assert(expected.MatchString(iodine.ToError(err).Error()), Equals, true) +} + +func (s *MySuite) TestInvalidNetwork(c *C) { + os.Setenv(envCountKey, "") + n := &nimbleNet{} + _, err := n.Listen("foo", "") + c.Assert(err, Not(IsNil)) + c.Assert(regexp.MustCompile("^unknown network foo$").MatchString(iodine.ToError(err).Error()), Equals, true) +} + +func (s *MySuite) TestInvalidTcpAddr(c *C) { + os.Setenv(envCountKey, "") + n := &nimbleNet{} + _, err := n.Listen("tcp", "abc") + c.Assert(err, Not(IsNil)) + c.Assert(regexp.MustCompile("^missing port in address abc$").MatchString(iodine.ToError(err).Error()), Equals, true) +}