tests: check pool object leaks

Currently only llentpl leaks can be detected.
This commit is contained in:
ozaki-r 2019-08-19 03:22:47 +00:00
parent ce0ae1dfed
commit 7c447e107e
1 changed files with 28 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# $NetBSD: net_common.sh,v 1.33 2019/08/19 03:21:13 ozaki-r Exp $
# $NetBSD: net_common.sh,v 1.34 2019/08/19 03:22:47 ozaki-r Exp $
#
# Copyright (c) 2016 Internet Initiative Japan Inc.
# All rights reserved.
@ -337,10 +337,31 @@ rump_server_add_iface()
return 0
}
rump_server_check_poolleaks()
{
local target=$1
reqs=$($HIJACKING vmstat -mv | awk "/$target/ {print \$3;}")
rels=$($HIJACKING vmstat -mv | awk "/$target/ {print \$5;}")
atf_check_equal '$target$reqs' '$target$rels'
}
rump_server_check_memleaks()
{
rump_server_check_poolleaks llentrypl
# This doesn't work for objects allocated through pool_cache
#rump_server_check_poolleaks mbpl
#rump_server_check_poolleaks mclpl
#rump_server_check_poolleaks socket
}
rump_server_destroy_ifaces()
{
local backup=$RUMP_SERVER
local output=ignore
local reqs= rels=
$DEBUG && cat $_rump_server_ifaces
@ -372,6 +393,11 @@ rump_server_destroy_ifaces()
done < __ifaces
rm -f __ifaces
for sock in $(cat $_rump_server_socks); do
export RUMP_SERVER=$sock
rump_server_check_memleaks
done
export RUMP_SERVER=$backup
return 0
@ -410,6 +436,7 @@ dump_kernel_stats()
rump.netstat -nr
# XXX still need hijacking
$HIJACKING rump.netstat -nai
$HIJACKING vmstat -m
rump.arp -na
rump.ndp -na
$HIJACKING ifmcstat