summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/prometheus/procfs/nfs/parse_nfsd_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/prometheus/procfs/nfs/parse_nfsd_test.go')
-rw-r--r--vendor/github.com/prometheus/procfs/nfs/parse_nfsd_test.go196
1 files changed, 196 insertions, 0 deletions
diff --git a/vendor/github.com/prometheus/procfs/nfs/parse_nfsd_test.go b/vendor/github.com/prometheus/procfs/nfs/parse_nfsd_test.go
new file mode 100644
index 000000000..b09b3b580
--- /dev/null
+++ b/vendor/github.com/prometheus/procfs/nfs/parse_nfsd_test.go
@@ -0,0 +1,196 @@
+// Copyright 2018 The Prometheus Authors
+// 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 nfs_test
+
+import (
+ "reflect"
+ "strings"
+ "testing"
+
+ "github.com/prometheus/procfs/nfs"
+)
+
+func TestNewNFSdServerRPCStats(t *testing.T) {
+ tests := []struct {
+ name string
+ content string
+ stats *nfs.ServerRPCStats
+ invalid bool
+ }{
+ {
+ name: "invalid file",
+ content: "invalid",
+ invalid: true,
+ }, {
+ name: "good file",
+ content: `rc 0 6 18622
+fh 0 0 0 0 0
+io 157286400 0
+th 8 0 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000
+ra 32 0 0 0 0 0 0 0 0 0 0 0
+net 18628 0 18628 6
+rpc 18628 0 0 0 0
+proc2 18 2 69 0 0 4410 0 0 0 0 0 0 0 0 0 0 0 99 2
+proc3 22 2 112 0 2719 111 0 0 0 0 0 0 0 0 0 0 0 27 216 0 2 1 0
+proc4 2 2 10853
+proc4ops 72 0 0 0 1098 2 0 0 0 0 8179 5896 0 0 0 0 5900 0 0 2 0 2 0 9609 0 2 150 1272 0 0 0 1236 0 0 0 0 3 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
+`,
+ stats: &nfs.ServerRPCStats{
+ ReplyCache: nfs.ReplyCache{
+ Hits: 0,
+ Misses: 6,
+ NoCache: 18622,
+ },
+ FileHandles: nfs.FileHandles{
+ Stale: 0,
+ TotalLookups: 0,
+ AnonLookups: 0,
+ DirNoCache: 0,
+ NoDirNoCache: 0,
+ },
+ InputOutput: nfs.InputOutput{
+ Read: 157286400,
+ Write: 0,
+ },
+ Threads: nfs.Threads{
+ Threads: 8,
+ FullCnt: 0,
+ },
+ ReadAheadCache: nfs.ReadAheadCache{
+ CacheSize: 32,
+ CacheHistogram: []uint64{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
+ NotFound: 0,
+ },
+ Network: nfs.Network{
+ NetCount: 18628,
+ UDPCount: 0,
+ TCPCount: 18628,
+ TCPConnect: 6,
+ },
+ ServerRPC: nfs.ServerRPC{
+ RPCCount: 18628,
+ BadCnt: 0,
+ BadFmt: 0,
+ BadAuth: 0,
+ BadcInt: 0,
+ },
+ V2Stats: nfs.V2Stats{
+ Null: 2,
+ GetAttr: 69,
+ SetAttr: 0,
+ Root: 0,
+ Lookup: 4410,
+ ReadLink: 0,
+ Read: 0,
+ WrCache: 0,
+ Write: 0,
+ Create: 0,
+ Remove: 0,
+ Rename: 0,
+ Link: 0,
+ SymLink: 0,
+ MkDir: 0,
+ RmDir: 0,
+ ReadDir: 99,
+ FsStat: 2,
+ },
+ V3Stats: nfs.V3Stats{
+ Null: 2,
+ GetAttr: 112,
+ SetAttr: 0,
+ Lookup: 2719,
+ Access: 111,
+ ReadLink: 0,
+ Read: 0,
+ Write: 0,
+ Create: 0,
+ MkDir: 0,
+ SymLink: 0,
+ MkNod: 0,
+ Remove: 0,
+ RmDir: 0,
+ Rename: 0,
+ Link: 0,
+ ReadDir: 27,
+ ReadDirPlus: 216,
+ FsStat: 0,
+ FsInfo: 2,
+ PathConf: 1,
+ Commit: 0,
+ },
+ ServerV4Stats: nfs.ServerV4Stats{
+ Null: 2,
+ Compound: 10853,
+ },
+ V4Ops: nfs.V4Ops{
+ Op0Unused: 0,
+ Op1Unused: 0,
+ Op2Future: 0,
+ Access: 1098,
+ Close: 2,
+ Commit: 0,
+ Create: 0,
+ DelegPurge: 0,
+ DelegReturn: 0,
+ GetAttr: 8179,
+ GetFH: 5896,
+ Link: 0,
+ Lock: 0,
+ Lockt: 0,
+ Locku: 0,
+ Lookup: 5900,
+ LookupRoot: 0,
+ Nverify: 0,
+ Open: 2,
+ OpenAttr: 0,
+ OpenConfirm: 2,
+ OpenDgrd: 0,
+ PutFH: 9609,
+ PutPubFH: 0,
+ PutRootFH: 2,
+ Read: 150,
+ ReadDir: 1272,
+ ReadLink: 0,
+ Remove: 0,
+ Rename: 0,
+ Renew: 1236,
+ RestoreFH: 0,
+ SaveFH: 0,
+ SecInfo: 0,
+ SetAttr: 0,
+ Verify: 3,
+ Write: 3,
+ RelLockOwner: 0,
+ },
+ },
+ },
+ }
+
+ for _, tt := range tests {
+ t.Run(tt.name, func(t *testing.T) {
+ stats, err := nfs.ParseServerRPCStats(strings.NewReader(tt.content))
+
+ if tt.invalid && err == nil {
+ t.Fatal("expected an error, but none occurred")
+ }
+ if !tt.invalid && err != nil {
+ t.Fatalf("unexpected error: %v", err)
+ }
+
+ if want, have := tt.stats, stats; !reflect.DeepEqual(want, have) {
+ t.Fatalf("unexpected NFS stats:\nwant:\n%v\nhave:\n%v", want, have)
+ }
+ })
+ }
+}