2011-11-27 13:02:10 +05:30
#
# Dejagnu tests for pgrep - part of procps
#
set pmap "${topdir}pmap"
2011-12-01 17:12:23 +05:30
set mypid [pid]
set pmap_procname "${mypid}:\\s+\\S+\[^\\r\]+\\s+"
2012-12-24 04:35:24 +05:30
set pmap_initname "1:\\s+\\S+\[^\\r\]+\\s+"
2011-12-01 17:12:23 +05:30
set pmap_std_header $pmap_procname
set pmap_device_header "${pmap_procname}Address\\s+Kbytes\\s+Mode\\s+Offset\\s+Device\\s+Mapping\\s+"
2012-01-02 12:09:41 +05:30
set pmap_ext_header "${pmap_procname}Address\\s+Kbytes\\s+RSS\\s+Dirty\\s+Mode\\s+Mapping\\s+"
2012-12-24 04:35:24 +05:30
set pmap_generic_header "${pmap_procname}\\s+\(?:\[A-Z\]\[a-z\]+ +\)+"
2011-12-01 17:12:23 +05:30
set pmap_std_items "\(\[0-9a-f\]+\\s+\\d+K \[rwx-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+"
set pmap_device_items "\(\[0-9a-f\]+\\s+\\d+ \[rwx-\]{5}\\s+\[0-9a-f\]+\\s+\[0-9a-f\]{3}:\[0-9a-f\]{5}\\s+\\S+\[^\\r\]+\\s*\)+"
2012-01-02 12:09:41 +05:30
set pmap_ext_items "\(\[0-9a-f\]+\\s+\\d+\\s+\\d+\\s+\\d+ \[rwx-\]{5}\\s+\\S+\[^\\r\]+\\s*\)+"
2011-12-01 17:12:23 +05:30
set pmap_std_footer "total\\s+\\d+K\\s*\$"
set pmap_device_footer "mapped:\\s+\\d+K\\s+writeable\/private:\\s+\\d+K\\s+shared:\\s+\\d+K\\s*\$"
2012-05-08 18:31:53 +05:30
set pmap_ext_footer "\[ -\]+\\s+total kB\\s+\\d+(\\s+\[\\d-\]+){2,3}\\s*\$"
2011-12-01 17:12:23 +05:30
set test "pmap with no arguments"
spawn $pmap
2012-01-02 12:09:41 +05:30
expect_pass "$test" "^\(lt-\)\?pmap: argument missing"
#expect_pass "$test" "^Usage: pmap \\\[-x | -d\\\] \\\[-q\\\] \\\[-A low,high\\\] pid\\.\\.\\.\\s+-x\\s+show details\\s+-d\\s+show offset and device number\\s+-q\\s+quiet; less header/footer info\\s+-V\\s+show the version number\\s+-A\\s+limit results to the given range\\s*"
2011-12-01 17:12:23 +05:30
set test "pmap standard output"
spawn $pmap $mypid
expect_table $test $pmap_std_header $pmap_std_items $pmap_std_footer
set test "pmap standard output with quiet"
spawn $pmap -q $mypid
expect_table $test $pmap_procname $pmap_std_items "\$"
set test "pmap device output"
spawn $pmap -d $mypid
expect_table $test $pmap_device_header $pmap_device_items $pmap_device_footer
set test "pmap device output quiet (dq)"
spawn $pmap -dq $mypid
expect_table $test $pmap_procname $pmap_device_items "\$"
set test "pmap device output quiet (qd)"
spawn $pmap -qd $mypid
expect_table $test $pmap_procname $pmap_device_items "\$"
set test "pmap extended output"
spawn $pmap -x $mypid
expect_table $test $pmap_ext_header $pmap_ext_items $pmap_ext_footer
2011-11-27 13:02:10 +05:30
2012-12-24 04:35:24 +05:30
# -X and -XX have no real format as its dependent on smaps
set test "pmap extra extended output"
spawn $pmap -X $mypid
expect_table $test $pmap_generic_header ".+" "\[= \]+"
set test "pmap double extra extended output"
spawn $pmap -XX $mypid
expect_table $test $pmap_generic_header ".+" "\[= \]+"
set test "pmap X with unreachable process"
spawn $pmap -X 1
expect_pass $test "$pmap_initname\$"
set test "pmap XX with unreachable process"
spawn $pmap -XX 1
expect_pass $test "$pmap_initname\$"