Download | Plain Text | No Line Numbers


  1. #!/bin/bash
  2.  
  3. in="${1:-/lib/libc.so.6}"
  4. size="${2:-500}"
  5. chunksize="${3:-50}"
  6. ref="refdata"
  7. out="outdata"
  8.  
  9. echo "Creating reference data ..."
  10. dd if="$in" of="$ref" bs=1 count="$size" status=noxfer
  11.  
  12. echo "Create chunk files ..."
  13. split -b $chunksize -d "$ref" CHUNK
  14.  
  15. echo "Starting ./gluefile -s $size $out ..."
  16. ./gluefile -s $size $out &
  17. pid=$!
  18. echo " done (pid=$pid)"
  19.  
  20. ps -p $pid >/dev/null
  21. status=$?
  22. while [ $status -eq 0 ]
  23. do
  24. let "num = $RANDOM % ($size/$chunksize)"
  25. let "offset = $num * $chunksize"
  26. echo "Executing ./insertfile -o $offset CHUNK$num ..."
  27. num2=$(printf "%02d" $num)
  28. ./insertfile -o $offset CHUNK$num2
  29.  
  30. ps -p $pid >/dev/null
  31. status=$?
  32. done
  33. echo "done..."
  34.  
  35. echo "Checking MD5SUMs ..."
  36. if [ "$(md5sum < $ref)" = "$(md5sum < $out)" ]
  37. then
  38. echo "-> SUCCESS"
  39. rm -f "$ref" "$out" CHUNK*
  40. else
  41. echo "-> FAILURE"
  42. exit 1
  43. fi
  44.