1// Copyright 2019 The Prometheus Authors 2// Licensed under the Apache License, Version 2.0 (the "License"); 3// you may not use this file except in compliance with the License. 4// You may obtain a copy of the License at 5// 6// http://www.apache.org/licenses/LICENSE-2.0 7// 8// Unless required by applicable law or agreed to in writing, software 9// distributed under the License is distributed on an "AS IS" BASIS, 10// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11// See the License for the specific language governing permissions and 12// limitations under the License. 13 14package procfs 15 16import ( 17 "reflect" 18 "testing" 19) 20 21func TestFscacheinfo(t *testing.T) { 22 expected := Fscacheinfo{ 23 IndexCookiesAllocated: 3, 24 DataStorageCookiesAllocated: 67877, 25 SpecialCookiesAllocated: 0, 26 ObjectsAllocated: 67473, 27 ObjectAllocationsFailure: 0, 28 ObjectsAvailable: 67473, 29 ObjectsDead: 388, 30 ObjectsWithoutCoherencyCheck: 12, 31 ObjectsWithCoherencyCheck: 33, 32 ObjectsNeedCoherencyCheckUpdate: 44, 33 ObjectsDeclaredObsolete: 55, 34 PagesMarkedAsBeingCached: 547164, 35 UncachePagesRequestSeen: 364577, 36 AcquireCookiesRequestSeen: 67880, 37 AcquireRequestsWithNullParent: 98, 38 AcquireRequestsRejectedNoCacheAvailable: 25, 39 AcquireRequestsSucceeded: 67780, 40 AcquireRequestsRejectedDueToError: 39, 41 AcquireRequestsFailedDueToEnomem: 26, 42 LookupsNumber: 67473, 43 LookupsNegative: 67470, 44 LookupsPositive: 58, 45 ObjectsCreatedByLookup: 67473, 46 LookupsTimedOutAndRequed: 85, 47 InvalidationsNumber: 14, 48 InvalidationsRunning: 13, 49 UpdateCookieRequestSeen: 7, 50 UpdateRequestsWithNullParent: 3, 51 UpdateRequestsRunning: 8, 52 RelinquishCookiesRequestSeen: 394, 53 RelinquishCookiesWithNullParent: 1, 54 RelinquishRequestsWaitingCompleteCreation: 2, 55 RelinquishRetries: 3, 56 AttributeChangedRequestsSeen: 6, 57 AttributeChangedRequestsQueued: 5, 58 AttributeChangedRejectDueToEnobufs: 4, 59 AttributeChangedFailedDueToEnomem: 3, 60 AttributeChangedOps: 2, 61 AllocationRequestsSeen: 20, 62 AllocationOkRequests: 19, 63 AllocationWaitingOnLookup: 18, 64 AllocationsRejectedDueToEnobufs: 17, 65 AllocationsAbortedDueToErestartsys: 16, 66 AllocationOperationsSubmitted: 15, 67 AllocationsWaitedForCPU: 14, 68 AllocationsAbortedDueToObjectDeath: 13, 69 RetrievalsReadRequests: 151959, 70 RetrievalsOk: 82823, 71 RetrievalsWaitingLookupCompletion: 23467, 72 RetrievalsReturnedEnodata: 69136, 73 RetrievalsRejectedDueToEnobufs: 15, 74 RetrievalsAbortedDueToErestartsys: 69, 75 RetrievalsFailedDueToEnomem: 43, 76 RetrievalsRequests: 151959, 77 RetrievalsWaitingCPU: 42747, 78 RetrievalsAbortedDueToObjectDeath: 44, 79 StoreWriteRequests: 225565, 80 StoreSuccessfulRequests: 225565, 81 StoreRequestsOnPendingStorage: 12, 82 StoreRequestsRejectedDueToEnobufs: 13, 83 StoreRequestsFailedDueToEnomem: 14, 84 StoreRequestsSubmitted: 69156, 85 StoreRequestsRunning: 294721, 86 StorePagesWithRequestsProcessing: 225565, 87 StoreRequestsDeleted: 225565, 88 StoreRequestsOverStoreLimit: 43, 89 ReleaseRequestsAgainstPagesWithNoPendingStorage: 364512, 90 ReleaseRequestsAgainstPagesStoredByTimeLockGranted: 2, 91 ReleaseRequestsIgnoredDueToInProgressStore: 43, 92 PageStoresCancelledByReleaseRequests: 12, 93 VmscanWaiting: 66, 94 OpsPending: 42753, 95 OpsRunning: 221129, 96 OpsEnqueued: 628798, 97 OpsCancelled: 11, 98 OpsRejected: 88, 99 OpsInitialised: 377538, 100 OpsDeferred: 27, 101 OpsReleased: 377538, 102 OpsGarbageCollected: 37, 103 CacheopAllocationsinProgress: 1, 104 CacheopLookupObjectInProgress: 2, 105 CacheopLookupCompleteInPorgress: 3, 106 CacheopGrabObjectInProgress: 4, 107 CacheopInvalidations: 5, 108 CacheopUpdateObjectInProgress: 6, 109 CacheopDropObjectInProgress: 7, 110 CacheopPutObjectInProgress: 8, 111 CacheopAttributeChangeInProgress: 9, 112 CacheopSyncCacheInProgress: 10, 113 CacheopReadOrAllocPageInProgress: 11, 114 CacheopReadOrAllocPagesInProgress: 12, 115 CacheopAllocatePageInProgress: 13, 116 CacheopAllocatePagesInProgress: 14, 117 CacheopWritePagesInProgress: 15, 118 CacheopUncachePagesInProgress: 16, 119 CacheopDissociatePagesInProgress: 17, 120 CacheevLookupsAndCreationsRejectedLackSpace: 18, 121 CacheevStaleObjectsDeleted: 19, 122 CacheevRetiredWhenReliquished: 20, 123 CacheevObjectsCulled: 21, 124 } 125 126 have, err := getProcFixtures(t).Fscacheinfo() 127 if err != nil { 128 t.Fatal(err) 129 } 130 131 if !reflect.DeepEqual(have, expected) { 132 t.Logf("have: %+v", have) 133 t.Logf("expected: %+v", expected) 134 t.Errorf("structs are not equal") 135 } 136} 137