Module Name: src
Committed By: ozaki-r
Date: Mon Aug 19 03:22:47 UTC 2019
Modified Files:
src/tests/net: net_common.sh
Log Message:
tests: check pool object leaks
Currently only llentpl leaks can be detected.
To generate a diff of this commit:
cvs rdiff -u -r1.33 -r1.34 src/tests/net/net_common.sh
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/tests/net/net_common.sh
diff -u src/tests/net/net_common.sh:1.33 src/tests/net/net_common.sh:1.34
--- src/tests/net/net_common.sh:1.33 Mon Aug 19 03:21:13 2019
+++ src/tests/net/net_common.sh Mon Aug 19 03:22:47 2019
@@ -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