mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
2caa208e3a
When test generic/131 on nfs, the 'server.out' maybe create later than expect. Because the server is running on background, we should ensure the 'server.out' is exist before 'cat' it. So, let's create the server.out manually. Signed-off-by: ZhangXiaoxu <zhangxiaoxu5@huawei.com> Reviewed-by: Eryu Guan <guaneryu@gmail.com> Signed-off-by: Eryu Guan <guaneryu@gmail.com>
79 lines
1.5 KiB
Bash
Executable File
79 lines
1.5 KiB
Bash
Executable File
#! /bin/bash
|
|
# SPDX-License-Identifier: GPL-2.0
|
|
# Copyright (c) 2006 Silicon Graphics, Inc. All Rights Reserved.
|
|
#
|
|
# FSQA Test No. 131
|
|
#
|
|
# lock test created from CXFSQA test lockfile_simple
|
|
#
|
|
seq=`basename $0`
|
|
seqres=$RESULT_DIR/$seq
|
|
echo "QA output created by $seq"
|
|
|
|
here=`pwd`
|
|
tmp=/tmp/$$
|
|
status=1 # failure is the default!
|
|
trap "_cleanup; exit \$status" 0 1 2 3 15
|
|
|
|
_cleanup()
|
|
{
|
|
kill $locktest_pid2 > /dev/null 2>&1
|
|
kill $locktest_pid1 > /dev/null 2>&1
|
|
}
|
|
|
|
# get standard environment, filters and checks
|
|
. ./common/rc
|
|
. ./common/filter
|
|
|
|
# real QA test starts here
|
|
_supported_fs generic
|
|
_supported_os Linux
|
|
_require_test
|
|
_require_test_fcntl_advisory_locks
|
|
|
|
TESTFILE=$TEST_DIR/lock_file
|
|
|
|
rm -f $TEST_DIR/server.out
|
|
touch $TEST_DIR/server.out
|
|
|
|
# Start the server
|
|
src/locktest $TESTFILE 2>&1 > $TEST_DIR/server.out &
|
|
locktest_pid1=$!
|
|
|
|
timeout=30
|
|
while [ $timeout -gt 0 ]; do
|
|
sleep 1
|
|
|
|
PORT=$(cat $TEST_DIR/server.out | grep "^server port: " | awk '{print $3}')
|
|
if [ -n "$PORT" ]; then
|
|
break
|
|
fi
|
|
|
|
# check the existence of server process
|
|
if ! kill -s 0 $locktest_pid1 >/dev/null 2>&1; then
|
|
echo "Server died abnormally"
|
|
exit 1
|
|
fi
|
|
|
|
let timeout=timeout-1
|
|
done
|
|
|
|
if [ -z "$PORT" ]; then
|
|
echo "Could not get server port"
|
|
exit 1
|
|
fi
|
|
|
|
# Start the client
|
|
src/locktest -p $PORT -h localhost $TESTFILE 2>&1 > $TEST_DIR/client.out
|
|
locktest_pid2=$!
|
|
result=$?
|
|
if [ $result -eq 0 ]; then
|
|
echo success!
|
|
status=0
|
|
else
|
|
echo "Client reported failure ($result)"
|
|
cat $TEST_DIR/*.out
|
|
fi
|
|
|
|
exit
|