summaryrefslogtreecommitdiffhomepage
path: root/pkg
diff options
context:
space:
mode:
Diffstat (limited to 'pkg')
-rw-r--r--pkg/tcpip/tcpip.go4
-rw-r--r--pkg/tcpip/tcpip_test.go22
2 files changed, 26 insertions, 0 deletions
diff --git a/pkg/tcpip/tcpip.go b/pkg/tcpip/tcpip.go
index 7d4fbe075..fef5ba0e4 100644
--- a/pkg/tcpip/tcpip.go
+++ b/pkg/tcpip/tcpip.go
@@ -568,6 +568,10 @@ func (s *StatCounter) IncrementBy(v uint64) {
atomic.AddUint64(&s.count, v)
}
+func (s *StatCounter) String() string {
+ return strconv.FormatUint(s.Value(), 10)
+}
+
// IPStats collects IP-specific stats (both v4 and v6).
type IPStats struct {
// PacketsReceived is the total number of IP packets received from the link
diff --git a/pkg/tcpip/tcpip_test.go b/pkg/tcpip/tcpip_test.go
index 361e359d4..1f7b04398 100644
--- a/pkg/tcpip/tcpip_test.go
+++ b/pkg/tcpip/tcpip_test.go
@@ -15,7 +15,9 @@
package tcpip
import (
+ "fmt"
"net"
+ "strings"
"testing"
)
@@ -193,3 +195,23 @@ func TestAddressString(t *testing.T) {
}
}
}
+
+func TestStatsString(t *testing.T) {
+ got := fmt.Sprintf("%+v", Stats{}.FillIn())
+
+ matchers := []string{
+ // Print root-level stats correctly.
+ "UnknownProtocolRcvdPackets:0",
+ // Print protocol-specific stats correctly.
+ "TCP:{ActiveConnectionOpenings:0",
+ }
+
+ for _, m := range matchers {
+ if !strings.Contains(got, m) {
+ t.Errorf("string.Contains(got, %q) = false", m)
+ }
+ }
+ if t.Failed() {
+ t.Logf(`got = fmt.Sprintf("%%+v", Stats{}.FillIn()) = %q`, got)
+ }
+}