mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
ac92390251
The actual lease test code has been added to src/locktest.c (see previous commits), now create a new lease test script to drive the test. Signed-off-by: Ira Weiny <ira.weiny@intel.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
96 lines
1.8 KiB
Plaintext
96 lines
1.8 KiB
Plaintext
##/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
|
|
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
|
|
|
|
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"
|
|
}
|