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

Reply via email to