-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfstest.sh
executable file
·43 lines (40 loc) · 1.17 KB
/
fstest.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#!/bin/bash
base=${0%/*}
. ${0%/*}/config
usage() {
echo "Usage:
$0 time mountpoint [mountpoint ...]"
exit 1
}
cdir=$(pwd)
fstest_dir=/opt/fstest
(( $# <1 )) && usage
t=$1
shift
ts=$(date +%s)
while (( ts + t >= $(date +%s) )); do
d=$(date +%F_%T)
mkdir -p $results_dir/fstest_run/$d
rm $results_dir/fstest_run/$d/results.out 2>/dev/null
touch $results_dir/fstest_run/$d/results.out
for mount in $mountpoints; do
mkdir -p $results_dir/fstest_run/$d/$mount || exit 1
cd $mount
mkdir -p $mount/$(hostname)/fstest
cd $mount/$(hostname)/fstest
exec > $results_dir/fstest_run/$d/$mount/results.out 2>&1
for i in $(find $fstest_dir/tests/* -type d -print); do
for j in $(ls -1 $i/*); do
echo "Test: $j"
$j
done
done
rm -rf $mount/$(hostname)/fstest/*
failed=$(grep "not ok" $results_dir/fstest_run/$d/$mount/results.out | wc -l)
passed=$(grep "ok" $results_dir/fstest_run/$d/$mount/results.out | wc -l)
echo "Status, failed tests: $failed, passed tests: $passed"
echo "Status, failed tests: $failed, passed tests: $passed, for mount: $mount" >> $results_dir/fstest_run/$d/results.out
done
done
cd $cdir
exit 0