#!/bin/sh
#

if [ X$2 = X ]; then
  echo "This script mounts a cifs volume then runs the specified binary or does a dd test"
  echo "Usage: $0 cifs-path cifs-args [/path/to/test/binary]"
  exit 1
fi

umount /mnt/cifs || true
mkdir -p /mnt/cifs || true
mount -t cifs "$1" -o "$2" /mnt/cifs || exit 1
cd /mnt/cifs

shift; shift;
if [ X$1 = X ]; then
  FILE1=file-small.$$
  FILE2=file-large.$$
  echo "Creating $FILE1"
  dd if=/dev/zero of=$FILE1 bs=1024 count=10000 || exit 1
  echo "Generating md5sum of FILE1"
  SUM1="`md5sum $FILE1`"
  echo "Creating $FILE2"
  dd if=/dev/zero of=$FILE2 bs=1024 count=256000 || exit 1
  echo "Reading back $FILE2 with md5sum"
  SUM3="`md5sum $FILE2`"
  echo "Regenerating md5sum of FILE1"
  SUM2="`md5sum $FILE1`"
  if [ "$SUM1" != "$SUM2" ]; then
    echo "Sum mismatch: $SUM1, $SUM2"
    exit 1
  else
    echo "Sums match"
  fi
  rm $FILE1 $FILE2 || exit 1
  exit 0
else
  exec $@
fi

exit 0
