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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129
|
#!/bin/sh
test_description='Check basic functionality of MUNGE daemon and clients'
: "${SHARNESS_TEST_OUTDIR:=$(pwd)}"
: "${SHARNESS_TEST_SRCDIR:=$(cd "$(dirname "$0")" && pwd)}"
. "${SHARNESS_TEST_SRCDIR}/sharness.sh"
# Set up the environment.
#
test_expect_success 'setup' '
munged_setup
'
# Create a key.
#
test_expect_success 'create key' '
munged_create_key
'
# Verify the key has been created.
#
test_expect_success 'check keyfile creation' '
test -s "${MUNGE_KEYFILE}"
'
# Start the daemon, or bail out.
#
test_expect_success 'start munged' '
munged_start
'
test "${MUNGED_START_STATUS}" = 0 || bail_out "Failed to start munged"
# Verify the socket has been created.
#
test_expect_success 'check socket creation' '
test -S "${MUNGE_SOCKET}"
'
# Verify the pidfile has been created.
#
test_expect_success 'check pidfile creation' '
test -s "${MUNGE_PIDFILE}"
'
# Verify the pid in the pidfile matches a running munged process.
# Provide [PID] for later checks.
#
test_expect_success 'check process is running' '
PID=$(cat "${MUNGE_PIDFILE}") &&
ps -p "${PID}" -ww | grep munged
'
# Verify the logfile has been created.
#
test_expect_success 'check logfile creation' '
test -s "${MUNGE_LOGFILE}"
'
# Encode a credential.
#
test_expect_success 'encode credential' '
"${MUNGE}" --socket="${MUNGE_SOCKET}" </dev/null >cred.$$
'
# Verify the credential string contains the expected prefix and suffix.
#
test_expect_success 'examine credential' '
test "$(expr X"$(cat cred.$$)" : "XMUNGE:.*:$")" -gt 0
'
# Decode a credential.
#
test_expect_success 'decode credential' '
"${UNMUNGE}" --socket="${MUNGE_SOCKET}" <cred.$$ >/dev/null
'
# Decode the same credential a second time to check if a replay is detected.
#
test_expect_success 'replay credential' '
test_must_fail "${UNMUNGE}" --socket="${MUNGE_SOCKET}" <cred.$$ >/dev/null
'
# Stop the daemon.
#
test_expect_success 'stop munged' '
munged_stop
'
# Verify the daemon is no longer running.
#
test_expect_success 'check process has exited' '
test "x${PID}" != x &&
! ps -p "${PID}" >/dev/null
'
# Verify the socket has been removed.
#
test_expect_success 'check socket removal' '
test "x${MUNGE_SOCKET}" != x &&
test ! -S "${MUNGE_SOCKET}"
'
# Verify the pidfile has been removed.
#
test_expect_success 'check pidfile removal' '
test "x${MUNGE_PIDFILE}" != x &&
test ! -f "${MUNGE_PIDFILE}"
'
# Verify the seedfile has been created.
#
test_expect_success 'check seedfile creation' '
test -s "${MUNGE_SEEDFILE}"
'
# Check if the final log message for stopping the daemon has been written out.
#
test_expect_success 'check logfile for final message' '
grep "Stopping" "${MUNGE_LOGFILE}"
'
# Check the logfile for errors.
#
test_expect_success 'check logfile for errors' '
! grep -E -i "(Emergency|Alert|Critical|Error):" "${MUNGE_LOGFILE}"
'
test_done
|