85 lines
2.3 KiB
Go
85 lines
2.3 KiB
Go
// Copyright 2020 The gVisor 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 tools
|
|
|
|
import (
|
|
"testing"
|
|
)
|
|
|
|
// TestMeminfo checks the Meminfo parser on sample output.
|
|
func TestMeminfo(t *testing.T) {
|
|
sampleData := `
|
|
MemTotal: 16337408 kB
|
|
MemFree: 3742696 kB
|
|
MemAvailable: 9319948 kB
|
|
Buffers: 1433884 kB
|
|
Cached: 4607036 kB
|
|
SwapCached: 45284 kB
|
|
Active: 8288376 kB
|
|
Inactive: 2685928 kB
|
|
Active(anon): 4724912 kB
|
|
Inactive(anon): 1047940 kB
|
|
Active(file): 3563464 kB
|
|
Inactive(file): 1637988 kB
|
|
Unevictable: 326940 kB
|
|
Mlocked: 48 kB
|
|
SwapTotal: 33292284 kB
|
|
SwapFree: 32865736 kB
|
|
Dirty: 708 kB
|
|
Writeback: 0 kB
|
|
AnonPages: 4304204 kB
|
|
Mapped: 975424 kB
|
|
Shmem: 910292 kB
|
|
KReclaimable: 744532 kB
|
|
Slab: 1058448 kB
|
|
SReclaimable: 744532 kB
|
|
SUnreclaim: 313916 kB
|
|
KernelStack: 25188 kB
|
|
PageTables: 65300 kB
|
|
NFS_Unstable: 0 kB
|
|
Bounce: 0 kB
|
|
WritebackTmp: 0 kB
|
|
CommitLimit: 41460988 kB
|
|
Committed_AS: 22859492 kB
|
|
VmallocTotal: 34359738367 kB
|
|
VmallocUsed: 63088 kB
|
|
VmallocChunk: 0 kB
|
|
Percpu: 9248 kB
|
|
HardwareCorrupted: 0 kB
|
|
AnonHugePages: 786432 kB
|
|
ShmemHugePages: 0 kB
|
|
ShmemPmdMapped: 0 kB
|
|
FileHugePages: 0 kB
|
|
FilePmdMapped: 0 kB
|
|
HugePages_Total: 0
|
|
HugePages_Free: 0
|
|
HugePages_Rsvd: 0
|
|
HugePages_Surp: 0
|
|
Hugepagesize: 2048 kB
|
|
Hugetlb: 0 kB
|
|
DirectMap4k: 5408532 kB
|
|
DirectMap2M: 11241472 kB
|
|
DirectMap1G: 1048576 kB
|
|
`
|
|
want := 9319948.0
|
|
got, err := parseMemAvailable(sampleData)
|
|
if err != nil {
|
|
t.Fatalf("parseMemAvailable failed: %v", err)
|
|
}
|
|
if got != want {
|
|
t.Fatalf("parseMemAvailable got %f, want %f", got, want)
|
|
}
|
|
}
|