// Copyright 2019 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 procfs import ( "reflect" "testing" ) func TestMeminfo(t *testing.T) { expected := Meminfo{ MemTotal: newuint64(15666184), MemFree: newuint64(440324), Buffers: newuint64(1020128), Cached: newuint64(12007640), SwapCached: newuint64(0), Active: newuint64(6761276), Inactive: newuint64(6532708), ActiveAnon: newuint64(267256), InactiveAnon: newuint64(268), ActiveFile: newuint64(6494020), InactiveFile: newuint64(6532440), Unevictable: newuint64(0), Mlocked: newuint64(0), SwapTotal: newuint64(0), SwapFree: newuint64(0), Dirty: newuint64(768), Writeback: newuint64(0), AnonPages: newuint64(266216), Mapped: newuint64(44204), Shmem: newuint64(1308), Slab: newuint64(1807264), SReclaimable: newuint64(1738124), SUnreclaim: newuint64(69140), KernelStack: newuint64(1616), PageTables: newuint64(5288), NFSUnstable: newuint64(0), Bounce: newuint64(0), WritebackTmp: newuint64(0), CommitLimit: newuint64(7833092), CommittedAS: newuint64(530844), VmallocTotal: newuint64(34359738367), VmallocUsed: newuint64(36596), VmallocChunk: newuint64(34359637840), HardwareCorrupted: newuint64(0), AnonHugePages: newuint64(12288), HugePagesTotal: newuint64(0), HugePagesFree: newuint64(0), HugePagesRsvd: newuint64(0), HugePagesSurp: newuint64(0), Hugepagesize: newuint64(2048), DirectMap4k: newuint64(91136), DirectMap2M: newuint64(16039936), } have, err := getProcFixtures(t).Meminfo() if err != nil { t.Fatal(err) } if !reflect.DeepEqual(have, expected) { t.Logf("have: %+v", have) t.Logf("expected: %+v", expected) t.Errorf("structs are not equal") } }