blob: 9549252dd4858c597fab9e55db9fd2dff8a82007 [file] [log] [blame]
https://bugs.gentoo.org/583036
http://www.freelists.org/post/procps/Patch-Test-suite-fails-if-procpidsmaps-is-absent,1
From: tobbs@opentrash.com
To: procps@freelists.org
Date: Sun, 11 Sep 2016 15:01:29 +0200
Subject: [procps] [Patch] Test suite fails if /proc/<pid>/smaps is absent
Message-Id: <20160911130129.9A8B3322A81@astra4649.startdedicated.de>
Summary: Some Linux systems do not have /proc/<pid>/smaps, hence the test
suite fails. Attached a patch to skip tests in that case it.
When pmap is called with either -c, -x, or -x it tries to read
/proc/<pid>/smaps (pmap.c, l. 540). If not present it exits.
The file /proc/<pid>/smaps exits on Linux systems only if the kernel is
compiled with the option CONFIG_PROC_PAGE_MONITOR (see man page proc(5)).
In the test suite some tests check the output of pmap -X et al, but they
fail if /proc/<pid>/smaps is not present, because pmap does not produce
their expected output.
Attached a patch which checks if /proc/<pid>/smaps exits, if not it
skipps the test related to it.
Note: It is unclear what the 'expected' behaviour/output of pmap should
be if the file /proc/<pid>/smaps is not present. Maybe add an additional
test to check the return code if /proc/<pid>/smaps is absent.
--- a/testsuite/pmap.test/pmap.exp
+++ b/testsuite/pmap.test/pmap.exp
@@ -45,6 +45,11 @@
spawn $pmap -qd $mypid
expect_table $test $pmap_procname $pmap_device_items "\$"
+if { [ file readable "/proc/self/smaps" ] == 0 } {
+ unsupported "Skipping test which require pmap to access /proc/<pid>/smaps, because kernel seems to be compiled without CONFIG_PROC_PAGE_MONITOR."
+
+} else {
+
set test "pmap extended output"
spawn $pmap -x $mypid
expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer
@@ -66,3 +71,4 @@
spawn $pmap -XX 1
expect_pass $test "$pmap_initname\$"
+}