You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.6 KiB
104 lines
3.6 KiB
#!/bin/bash
|
|
################################################################################
|
|
## ##
|
|
## Copyright (c) Dan Carpenter., 2004 ##
|
|
## ##
|
|
## This program is free software; you can redistribute it and#or modify ##
|
|
## it under the terms of the GNU General Public License as published by ##
|
|
## the Free Software Foundation; either version 2 of the License, or ##
|
|
## (at your option) any later version. ##
|
|
## ##
|
|
## This program is distributed in the hope that it will be useful, but ##
|
|
## WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY ##
|
|
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License ##
|
|
## for more details. ##
|
|
## ##
|
|
## You should have received a copy of the GNU General Public License ##
|
|
## along with this program; if not, write to the Free Software ##
|
|
## Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA ##
|
|
## ##
|
|
################################################################################
|
|
|
|
## DESCRIPTION:
|
|
## This test creates 20 files (0 thru 19) and then shuffles them around,
|
|
## deletes, and recreates them as fast as possible. This is all done in
|
|
## an effort to test for race conditions in the filesystem code. This test
|
|
## runs until killed or Ctrl-C'd. It is suggested that it run overnight
|
|
## with preempt turned on to make the system more sensitive to race
|
|
## conditions.
|
|
|
|
MAX_FILES=20
|
|
CLEAR_SECS=30
|
|
DIR="$TMPDIR/race"
|
|
|
|
execute_test()
|
|
{
|
|
[ -e $DIR ] || mkdir $DIR
|
|
./fs_racer_file_create.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_create.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_create.sh $DIR $MAX_FILES &
|
|
|
|
./fs_racer_dir_create.sh $DIR $MAX_FILES &
|
|
./fs_racer_dir_create.sh $DIR $MAX_FILES &
|
|
./fs_racer_dir_create.sh $DIR $MAX_FILES &
|
|
|
|
./fs_racer_file_rename.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_rename.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_rename.sh $DIR $MAX_FILES &
|
|
|
|
./fs_racer_file_link.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_link.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_link.sh $DIR $MAX_FILES &
|
|
|
|
./fs_racer_file_symlink.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_symlink.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_symlink.sh $DIR $MAX_FILES &
|
|
|
|
./fs_racer_file_concat.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_concat.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_concat.sh $DIR $MAX_FILES &
|
|
|
|
./fs_racer_file_list.sh $DIR &
|
|
./fs_racer_file_list.sh $DIR &
|
|
./fs_racer_file_list.sh $DIR &
|
|
|
|
./fs_racer_file_rm.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_rm.sh $DIR $MAX_FILES &
|
|
./fs_racer_file_rm.sh $DIR $MAX_FILES &
|
|
}
|
|
|
|
|
|
usage()
|
|
{
|
|
echo usage: fs_racer.sh -t DURATION [Execute the testsuite for given DURATION seconds]
|
|
exit 0;
|
|
}
|
|
|
|
|
|
call_exit()
|
|
{
|
|
echo \"Cleaning up\"
|
|
killall fs_racer_file_create.sh
|
|
killall fs_racer_dir_create.sh
|
|
killall fs_racer_file_rm.sh
|
|
killall fs_racer_file_rename.sh
|
|
killall fs_racer_file_link.sh
|
|
killall fs_racer_file_symlink.sh
|
|
killall fs_racer_file_list.sh
|
|
killall fs_racer_file_concat.sh
|
|
rm -rf $DIR
|
|
exit 0
|
|
}
|
|
|
|
while getopts :t: arg
|
|
do case $arg in
|
|
t) execute_test
|
|
sleep $OPTARG
|
|
call_exit;;
|
|
\?) usage;;
|
|
esac
|
|
done
|
|
|
|
exit 0
|
|
|