summaryrefslogtreecommitdiff
blob: 9549252dd4858c597fab9e55db9fd2dff8a82007 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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\$"
 
+}