summaryrefslogtreecommitdiffstats
path: root/debian/tests
diff options
context:
space:
mode:
Diffstat (limited to 'debian/tests')
-rw-r--r--debian/tests/control2
-rw-r--r--debian/tests/free50
-rw-r--r--debian/tests/pgrep56
-rw-r--r--debian/tests/pmap59
-rw-r--r--debian/tests/ps53
-rw-r--r--debian/tests/pwdx42
-rw-r--r--debian/tests/uptime39
-rw-r--r--debian/tests/version10
-rw-r--r--debian/tests/vmstat58
-rw-r--r--debian/tests/w37
10 files changed, 406 insertions, 0 deletions
diff --git a/debian/tests/control b/debian/tests/control
new file mode 100644
index 0000000..df0aa57
--- /dev/null
+++ b/debian/tests/control
@@ -0,0 +1,2 @@
+Tests: version free pgrep pmap ps pwdx uptime vmstat w
+Depends: @, shunit2
diff --git a/debian/tests/free b/debian/tests/free
new file mode 100644
index 0000000..f44ea43
--- /dev/null
+++ b/debian/tests/free
@@ -0,0 +1,50 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( free >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "free exit value" "0" "${rtrn}"
+ grep -E '^[[:space:]]+total[[:space:]]+used[[:space:]]+free[[:space:]]+shared[[:space:]]+buff/cache[[:space:]]+available$' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+
+ grep -E '^Mem:([[:space:]]+[[:digit:]]+){6}$' "${stdoutF}" > /dev/null
+ assertTrue 'Mem line' $?
+ grep -E '^Swap:([[:space:]]+[[:digit:]]+){3}$' "${stdoutF}" > /dev/null
+ assertTrue 'Swap line' $?
+}
+
+test_total() {
+ ( free -t >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "free exit value" "0" "${rtrn}"
+ grep -E '^[[:space:]]+total[[:space:]]+used[[:space:]]+free[[:space:]]+shared[[:space:]]+buff/cache[[:space:]]+available$' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+
+ grep -E '^Mem:([[:space:]]+[[:digit:]]+){6}$' "${stdoutF}" > /dev/null
+ assertTrue 'Mem line' $?
+ grep -E '^Swap:([[:space:]]+[[:digit:]]+){3}$' "${stdoutF}" > /dev/null
+ assertTrue 'Swap line' $?
+ grep -E '^Total:([[:space:]]+[[:digit:]]+){3}$' "${stdoutF}" > /dev/null
+ assertTrue 'Total line' $?
+}
+
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/pgrep b/debian/tests/pgrep
new file mode 100644
index 0000000..d39400e
--- /dev/null
+++ b/debian/tests/pgrep
@@ -0,0 +1,56 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( pgrep >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pgrep exit value" "2" "${rtrn}"
+ grep -E '^pgrep: no matching criteria specified' "${stderrF}" > /dev/null
+ assertTrue 'no matching line' $?
+}
+
+test_count() {
+ ( pgrep -c "$fakeproc}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pgrep -c exit value" "1" "${rtrn}"
+ grep '^0$' "${stderrF}" > /dev/null
+ assertFalse 'count 0 of missing process' $?
+}
+
+test_user_procs() {
+ myUID=$(awk '$1 == "Uid:" { print $2}' "/proc/${myPID}/status" 2>/dev/null)
+ if [ -z "${myUID:-}" ];then
+ startSkipping
+ myUID=0
+ fi
+
+ ( pgrep -u "${myUID}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pgrep exit value" "0" "${rtrn}"
+
+ grep "^${myPID}$" "${stderrF}" > /dev/null
+ assertFalse "User ${myUID} doesn't match PID ${myPID}" $?
+}
+
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+ fakeproc='fakename-test'
+ myPID=$$
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/pmap b/debian/tests/pmap
new file mode 100644
index 0000000..60fdeaf
--- /dev/null
+++ b/debian/tests/pmap
@@ -0,0 +1,59 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( pmap >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pmap exit value" "1" "${rtrn}"
+ grep 'Usage:' "${stderrF}" > /dev/null
+ assertTrue 'usage message' $?
+}
+
+test_my_pid() {
+ ( pmap "${myPID}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pmap exit value" "0" "${rtrn}"
+
+ grep -E "^${myPID}: " "${stdoutF}" > /dev/null
+ assertTrue 'pmap header' $?
+
+ grep -E "^[[:space:]]+total +[[:digit:]]+K$" "${stdoutF}" > /dev/null
+ assertTrue 'pmap total' $?
+}
+
+test_device_format() {
+ ( pmap -d "${myPID}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pmap exit value" "0" "${rtrn}"
+
+ grep -E "^${myPID}: " "${stdoutF}" > /dev/null
+ assertTrue 'pmap header' $?
+
+ grep -E "^Address +Kbytes +Mode +Offset +Device +Mapping$" "${stdoutF}" > /dev/null
+ assertTrue 'pmap header' $?
+
+ grep -E "^mapped: [[:digit:]]+K +writeable/private: [[:digit:]]+K +shared: [[:digit:]]+K$" "${stdoutF}" > /dev/null
+ assertTrue 'pmap total' $?
+}
+
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+ myPID=$$
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/ps b/debian/tests/ps
new file mode 100644
index 0000000..e9cc83b
--- /dev/null
+++ b/debian/tests/ps
@@ -0,0 +1,53 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( ps >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "ps exit value" "0" "${rtrn}"
+ grep -E '^[[:space:]]+PID[[:space:]]+TTY[[:space:]]+TIME[[:space:]]+CMD' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+}
+
+test_pid() {
+ ( ps -o pid "${myPID}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "ps exit value" "0" "${rtrn}"
+ grep -E '^[[:space:]]+PID$' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+ grep -E "^[[:space:]]+${myPID}$" "${stdoutF}" > /dev/null
+ assertTrue 'pid line' $?
+}
+
+test_exe() {
+ ( ps -o exe "${myPID}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "ps exit value" "0" "${rtrn}"
+
+ myEXE=$(readlink "/proc/${myPID}/exe" 2>/dev/null)
+ [ -z "${myEXE:-}" ] && startSkipping
+ grep -E "^${myEXE}$" "${stdoutF}" > /dev/null
+ assertTrue 'exe line' $?
+}
+
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+ myPID=$$
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/pwdx b/debian/tests/pwdx
new file mode 100644
index 0000000..0f8639f
--- /dev/null
+++ b/debian/tests/pwdx
@@ -0,0 +1,42 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( pwdx >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pwdx exit value" "1" "${rtrn}"
+ grep 'Usage:' "${stderrF}" > /dev/null
+ assertTrue 'usage message' $?
+}
+
+test_my_pid() {
+ ( pwdx "${myPID}" >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "pwdx exit value" "0" "${rtrn}"
+
+ myCWD=$(readlink "/proc/${myPID}/cwd" 2>/dev/null)
+ [ -z "${myCWD:-}" ] && startSkipping
+ grep -E "^${myPID}: ${myCWD}" "${stdoutF}" > /dev/null
+ assertTrue 'pwdx output' $?
+}
+
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+ myPID=$$
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/uptime b/debian/tests/uptime
new file mode 100644
index 0000000..3550a8b
--- /dev/null
+++ b/debian/tests/uptime
@@ -0,0 +1,39 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( uptime >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "uptime exit value" "0" "${rtrn}"
+ grep -E '^[[:space:]]+[[:digit:]]{2}:[[:digit:]]{2}:[[:digit:]]{2}' "${stdoutF}" > /dev/null
+ assertTrue 'time' $?
+ grep -E ' load average: [[:digit:].]+, [[:digit:].]+, [[:digit:].]+$' "${stdoutF}" > /dev/null
+ assertTrue 'load average' $?
+}
+
+test_no_header() {
+ ( w -h >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "w exit value" "0" "${rtrn}"
+ grep -E '^USER[[:space:]]+TTY[[:space:]]+FROM' "${stdoutF}" > /dev/null
+ assertFalse 'header line with -h option' $?
+}
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/version b/debian/tests/version
new file mode 100644
index 0000000..213eb0b
--- /dev/null
+++ b/debian/tests/version
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+set -e
+
+BINARIES='ps free pgrep pmap pwdx skill slabtop tload uptime vmstat w watch pkill snice'
+
+for bin in $BINARIES ; do \
+ $bin --version | grep -E "^$bin from procps-ng [0-9.]+$" ; \
+done
+
diff --git a/debian/tests/vmstat b/debian/tests/vmstat
new file mode 100644
index 0000000..9907d42
--- /dev/null
+++ b/debian/tests/vmstat
@@ -0,0 +1,58 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( vmstat >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "vmstat exit value" "0" "${rtrn}"
+
+ grep -E '^procs[ -]+memory[ -]+swap[ -]+io[ -]+system[ -]+cpu[ -]+$' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+ grep -E '^ +r +b +swpd +free +buff +cache +si +so +bi +bo +in +cs us sy id wa st gu$' "${stdoutF}" >/dev/null
+ assertTrue 'header second line' $?
+ grep -E '^([[:space:]]+[[:digit:]]+){18}$' "${stdoutF}" >/dev/null
+ assertTrue 'value line' $?
+}
+
+test_forks() {
+ ( vmstat -f >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "vmstat -f exit value" "0" "${rtrn}"
+
+ grep -E '^[[:space:]]+[[:digit:]]+ forks$' "${stdoutF}" > /dev/null
+ assertTrue 'fork output' $?
+}
+
+test_disk() {
+ ( vmstat -d >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "vmstat -d exit value" "0" "${rtrn}"
+
+ grep -E '^disk[ -]+reads[ -]+writes[ -]+IO[ -]+$' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+ grep -E '^ +total +merged +sectors +ms +total +merged +sectors +ms +cur +sec$' "${stdoutF}" >/dev/null
+ assertTrue 'header second line' $?
+ grep -E '^[[:alnum:]]+([[:space:]]+[[:digit:]]+){10}$' "${stdoutF}" >/dev/null
+ assertTrue 'value line' $?
+}
+
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+
diff --git a/debian/tests/w b/debian/tests/w
new file mode 100644
index 0000000..6a4c15f
--- /dev/null
+++ b/debian/tests/w
@@ -0,0 +1,37 @@
+#!/bin/sh
+
+exec 2>&1
+
+test_no_arguments() {
+ ( w >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "w exit value" "0" "${rtrn}"
+ grep -E '^USER[[:space:]]+TTY[[:space:]]+FROM' "${stdoutF}" > /dev/null
+ assertTrue 'header line' $?
+}
+
+test_no_header() {
+ ( w -h >"${stdoutF}" 2>"${stderrF}" )
+ rtrn=$?
+
+ assertEquals "w exit value" "0" "${rtrn}"
+ grep -E '^USER[[:space:]]+TTY[[:space:]]+FROM' "${stdoutF}" > /dev/null
+ assertFalse 'header line with -h option' $?
+}
+oneTimeSetUp() {
+ # Define global variables for command output.
+ stdoutF="${AUTOPKGTEST_TMP}/stdout"
+ stderrF="${AUTOPKGTEST_TMP}/stderr"
+}
+
+setUp() {
+ # Truncate the output files.
+ cp /dev/null "${stdoutF}"
+ cp /dev/null "${stderrF}"
+}
+
+
+# shellcheck disable=SC1091
+. shunit2
+