File: test-fragmentation.sh

package info (click to toggle)
wit 3.01a-5.1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 9,468 kB
  • sloc: ansic: 109,416; pascal: 2,205; sh: 1,972; makefile: 770
file content (76 lines) | stat: -rw-r--r-- 1,468 bytes parent folder | download | duplicates (6)
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env bash

dev="$1"
[[ $dev = "" ]] && dev=/dev/sdb2

rev_need=r666
log="${0##*/}.log"

max=16
fragid=PHT000
firstid=PHT001
midid="$(printf "PHT%03u" $((max|1)))"
lastid="$(printf "PHT%03u" $((2*max-1)))"
testlist="$fragid $firstid $midid $lastid"

if [[ $(wwt version | awk '{print $6}') < $rev_need ]]
then
	printf '\n*** %s: Need at least wwt revision %s\n\n' "${0##*/}" "$rev_need" >&2
	exit 1
fi

if ! wwt find -q -p "$dev"
then
	printf '\n*** %s: Not a WBFS: %s\n\n' "${0##*/}" "$dev" >&2
	exit 1
fi

{
	printf '\n---------- INIT ----------\n\n'

	wwt init $dev -qf
	rmlist=""
	for ((i=0;i<$max;i++))
	do
		wwt -p $dev -q phantom 256M 4G
		rmlist="$rmlist $(printf "PHT%03u" $((2*i)))"
	done
	wwt -p $dev -q rm $rmlist
	wwt -p $dev -q phantom 4G

	#wwt ll $dev --sort=none
	wwt -p $dev  dump -lll | sed '0,/WBFS Memory Map/ d' | grep -iv inode

	printf '\n---------- EXTRACT ----------\n\n'

	for (( i=0; i<10; i++ ))
	do
	    for id in $testlist
	    do
		    echo -n "extract $id ... "
		    start=$(date +%s)
		    wwt -p $dev -q extract $id=/dev/null --overwrite
		    end=$(date +%s)
		    printf "%3u sec\n" $((end-start))
	    done
	    echo
	done

	printf '\n---------- SUM ----------\n\n'

} | tee $log


awk='
 $1=="extract" && $5=="sec" { n[$2]++; s[$2]+=$4 }

 END { for ( i in s )
	printf("%s: %5u sec / %2u == %3u sec\n",
		i, s[i], n[i], s[i]/n[i] ); }

'

awk "$awk" $log | sort -n +4 | tee $log.tmp
cat $log.tmp >>$log
rm -f $log.tmp