123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103 |
- #!/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
|