mirror of
https://github.com/shirou/gopsutil.git
synced 2025-04-24 13:48:56 +08:00
fix(proc): parsing of smaps path
This commit is contained in:
parent
edff3add94
commit
33251d10ec
@ -399,7 +399,9 @@ func (p *Process) MemoryMapsWithContext(ctx context.Context, grouped bool) (*[]M
|
||||
// function of parsing a block
|
||||
getBlock := func(firstLine []string, block []string) (MemoryMapsStat, error) {
|
||||
m := MemoryMapsStat{}
|
||||
m.Path = firstLine[len(firstLine)-1]
|
||||
if len(firstLine) >= 6 {
|
||||
m.Path = firstLine[5]
|
||||
}
|
||||
|
||||
for _, line := range block {
|
||||
if strings.Contains(line, "VmFlags") {
|
||||
|
@ -12,6 +12,7 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
)
|
||||
|
||||
func TestSplitProcStat(t *testing.T) {
|
||||
@ -174,3 +175,69 @@ func TestFillFromTIDStatWithContext_lx_brandz(t *testing.T) {
|
||||
assert.Equal(t, float64(0), cpuTimes.Iowait)
|
||||
}
|
||||
}
|
||||
|
||||
func TestProcessMemoryMaps(t *testing.T) {
|
||||
t.Setenv("HOST_PROC", "testdata/linux")
|
||||
pid := 1
|
||||
p, err := NewProcess(int32(pid))
|
||||
require.NoError(t, err)
|
||||
maps, err := p.MemoryMaps(false)
|
||||
require.NoError(t, err)
|
||||
|
||||
expected := &[]MemoryMapsStat{
|
||||
{
|
||||
"[vvar]",
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
},
|
||||
{
|
||||
"",
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
0,
|
||||
6,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
},
|
||||
{
|
||||
"[vdso]",
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
0,
|
||||
7,
|
||||
8,
|
||||
9,
|
||||
},
|
||||
{
|
||||
"/usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1",
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
3,
|
||||
4,
|
||||
5,
|
||||
6,
|
||||
7,
|
||||
0,
|
||||
9,
|
||||
},
|
||||
}
|
||||
|
||||
require.Equal(t, expected, maps)
|
||||
}
|
||||
|
44
process/testdata/linux/1/smaps
vendored
Normal file
44
process/testdata/linux/1/smaps
vendored
Normal file
@ -0,0 +1,44 @@
|
||||
ffffb5ecc000-ffffb5ece000 r--p 00000000 00:00 0 [vvar]
|
||||
Rss: 0 kB
|
||||
KernelPageSize: 4 kB
|
||||
Size: 1 kB
|
||||
Shared_Clean: 3 kB
|
||||
Shared_Dirty: 4 kB
|
||||
Private_Clean: 5 kB
|
||||
Private_Dirty: 6 kB
|
||||
Referenced: 7 kB
|
||||
Anonymous: 8 kB
|
||||
Swap: 9 kB
|
||||
ffffb5eca000-ffffb5ecc000 rw-p 00000000 00:00 0
|
||||
Rss: 0 kB
|
||||
Size: 1 kB
|
||||
Pss: 2 kB
|
||||
Shared_Clean: 3 kB
|
||||
Shared_Dirty: 4 kB
|
||||
Private_Dirty: 6 kB
|
||||
LazyFree: 0 kB
|
||||
Referenced: 7 kB
|
||||
Anonymous: 8 kB
|
||||
Swap: 9 kB
|
||||
ffffb5ece000-ffffb5ecf000 r-xp 00000000 00:00 0 [vdso]
|
||||
Rss: 0 kB
|
||||
Size: 1 kB
|
||||
Pss: 2 kB
|
||||
Shared_Clean: 3 kB
|
||||
Shared_Dirty: 4 kB
|
||||
Private_Clean: 5 kB
|
||||
Private_Hugetlb: 0 kB
|
||||
Referenced: 7 kB
|
||||
Anonymous: 8 kB
|
||||
Swap: 9 kB
|
||||
ffffb5ecf000-ffffb5ed1000 r--p 0002a000 00:3d 2238525 /usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1
|
||||
Rss: 0 kB
|
||||
Size: 1 kB
|
||||
Pss: 2 kB
|
||||
Shared_Clean: 3 kB
|
||||
Shared_Dirty: 4 kB
|
||||
Private_Clean: 5 kB
|
||||
Private_Dirty: 6 kB
|
||||
Referenced: 7 kB
|
||||
THPeligible: 0
|
||||
Swap: 9 kB
|
Loading…
x
Reference in New Issue
Block a user