Use third-party UDP testing library to tighten up test.
diff --git a/hooks/papertrail/papertrail_test.go b/hooks/papertrail/papertrail_test.go
index a52874c..96318d0 100644
--- a/hooks/papertrail/papertrail_test.go
+++ b/hooks/papertrail/papertrail_test.go
@@ -1,43 +1,26 @@
 package logrus_papertrail
 
 import (
-	"net"
+	"fmt"
 	"testing"
 
 	"github.com/Sirupsen/logrus"
+	"github.com/stvp/go-udp-testing"
 )
 
 func TestWritingToUDP(t *testing.T) {
-	log := logrus.New()
 	port := 16661
-
-	addr := net.UDPAddr{
-		Port: port,
-		IP:   net.ParseIP("127.0.0.1"),
-	}
-
-	c, err := net.ListenUDP("udp", &addr)
-	if err != nil {
-		t.Fatalf("ListenUDP failed: %v", err)
-	}
-	defer c.Close()
+	udp.SetAddr(fmt.Sprintf(":%d", port))
 
 	hook, err := NewPapertrailHook("localhost", port, "test")
 	if err != nil {
 		t.Errorf("Unable to connect to local UDP server.")
 	}
 
+	log := logrus.New()
 	log.Hooks.Add(hook)
-	log.Info("Today was a good day.")
 
-	var buf = make([]byte, 1500)
-	n, _, err := c.ReadFromUDP(buf)
-
-	if err != nil {
-		t.Fatalf("Error reading data from local UDP server")
-	}
-
-	if n <= 0 {
-		t.Errorf("Nothing written to local UDP server.")
-	}
+	udp.ShouldReceive(t, "foo", func() {
+		log.Info("foo")
+	})
 }