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