#!/bin/bash in="${1:-/lib/libc.so.6}" size="${2:-500}" chunksize="${3:-50}" ref="refdata" out="outdata" echo "Creating reference data ..." dd if="$in" of="$ref" bs=1 count="$size" status=noxfer echo "Create chunk files ..." split -b $chunksize -d "$ref" CHUNK echo "Starting ./gluefile -s $size $out ..." ./gluefile -s $size $out & pid=$! echo " done (pid=$pid)" ps -p $pid >/dev/null status=$? while [ $status -eq 0 ] do let "num = $RANDOM % ($size/$chunksize)" let "offset = $num * $chunksize" echo "Executing ./insertfile -o $offset CHUNK$num ..." num2=$(printf "%02d" $num) ./insertfile -o $offset CHUNK$num2 ps -p $pid >/dev/null status=$? done echo "done..." echo "Checking MD5SUMs ..." if [ "$(md5sum < $ref)" = "$(md5sum < $out)" ] then echo "-> SUCCESS" rm -f "$ref" "$out" CHUNK* else echo "-> FAILURE" exit 1 fi