Files
apfstests/tests/generic/467
T
Dave Chinner cf89aed924 generic: convert tests to SPDX license tags
Fully scripted conversion, see script in initial SPDX license commit
message.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
2018-06-09 11:35:42 +10:00

103 lines
2.3 KiB
Bash
Executable File

#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (C) 2017 CTERA Networks. All Rights Reserved.
#
# FS QA Test No. 467
#
# Check open by file handle.
# This is a variant of test generic/426 that tests with less
# files and more use cases:
# - open directory by file handle
# - verify content integrity of file after opening by file handle
# - open by file handle of unlinked open files
# - open by file handle of renamed files
#
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()
{
cd /
rm -f $tmp.*
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
# Modify as appropriate.
_supported_fs generic
_supported_os Linux
_require_test
# _require_exportfs already requires open_by_handle, but let's not count on it
_require_test_program "open_by_handle"
_require_exportfs
NUMFILES=10
testdir=$TEST_DIR/$seq-dir
# Create test dir and non-empty test files
create_test_files()
{
local dir=$1
local opt=$2
rm -rf $dir
$here/src/open_by_handle -cwp $dir $NUMFILES
}
# Test encode/decode file handles
test_file_handles()
{
local dir=$1
local opt=$2
echo test_file_handles $* | _filter_test_dir
$here/src/open_by_handle $opt $dir $NUMFILES
}
# Check stale handles to deleted files/dir
create_test_files $testdir
test_file_handles $testdir -dp
# Check non-stale handles to linked files/dir
create_test_files $testdir
test_file_handles $testdir -rp
# Check non-stale handles to unlinked open files
create_test_files $testdir
test_file_handles $testdir -dkr
# Check non-stale handles to files that were hardlinked and original deleted
create_test_files $testdir
test_file_handles $testdir -lr
test_file_handles $testdir -ur
# Check non-stale file handles of renamed files
create_test_files $testdir
test_file_handles $testdir -mr
# Check non-stale file handles after rename of parent
create_test_files $testdir
rm -rf $testdir.renamed
mv $testdir $testdir.renamed/
test_file_handles $testdir.renamed -rp
# Check non-stale file handles after move to new parent
create_test_files $testdir
rm -rf $testdir.new
mkdir -p $testdir.new
mv $testdir/* $testdir.new/
test_file_handles $testdir.new -rp
status=0
exit