blob: 61e7dd42785dd3d4f21050e10bd5ec9d76a3b15a [file] [log] [blame]
##/bin/bash
# SPDX-License-Identifier: GPL-2.0+
# Copyright (c) 2019 Intel Corp, All Rights Reserved
SERVER_LOG=$TEST_DIR/server.out
SERVER_PORT=$TEST_DIR/server.port
CLIENT_LOG=$TEST_DIR/client.out
TESTFILE=$TEST_DIR/lock_file
client_pid=""
server_pid=""
_cleanup()
{
kill $client_pid > /dev/null 2>&1
kill $server_pid > /dev/null 2>&1
rm -f $TESTFILE
}
_dump_logs_fail()
{
fail_str=$1
echo " ***** Client log *****" >> $seqres.full
cat $CLIENT_LOG >> $seqres.full
echo " ***** Server log *****" >> $seqres.full
cat $SERVER_LOG >> $seqres.full
echo " ***** End file details *****" >> $seqres.full
ls -la $TESTFILE >> $seqres.full
_fail $fail_str
exit 1
}
_run_generic() {
mode=$1
# set up log files
rm -f $SERVER_LOG
touch $SERVER_LOG
rm -f $SERVER_PORT
touch $SERVER_PORT
rm -f $CLIENT_LOG
touch $CLIENT_LOG
touch $TESTFILE
# Start the server
$here/src/locktest $mode $TESTFILE 2> $SERVER_LOG 1> $SERVER_PORT &
server_pid=$!
timeout=30
while [ $timeout -gt 0 ]; do
sleep 1
PORT=$(cat $SERVER_PORT | grep "^server port: " | awk '{print $3}')
if [ -n "$PORT" ]; then
break
fi
# check the existence of server process
if ! kill -s 0 $server_pid >/dev/null 2>&1; then
_dump_logs_fail "Server died abnormally"
fi
let timeout=timeout-1
done
if [ -z "$PORT" ]; then
_dump_logs_fail "Could not get server port"
fi
# Start the client
$here/src/locktest $mode -p $PORT -h localhost $TESTFILE 2> $CLIENT_LOG
client_result=$?
client_pid=$!
if [ $client_result -ne 0 ]; then
_dump_logs_fail "Client reported failure ($client_result)"
fi
wait $server_pid
server_result=$?
if [ $server_result -ne 0 ]; then
_dump_logs_fail "Server reported failure ($server_result)"
fi
echo success!
status=0
}
_run_locktest() {
_run_generic ""
}
_run_leasetest() {
_run_generic "-L"
}