| ##/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" | |
| } |