#!/bin/bash

Xvfb :3 &
xpid=$!
export DISPLAY=:3

NTAPES=6
RECLEN=10
NREC=50000
NKEY=1

hi=300000
lo=30000
lastok=0
while [ $((hi-lo)) -ne 1 ]
do
mid=$((lo+(hi-lo)/2))
echo $lo $mid $hi
DEMO=sambasort.demo
echo "LOADCONFIG configs/bufferdisksamba.gier" > $DEMO
echo "HIDE KB1" >>$DEMO
echo "HIDE KB2" >>$DEMO
echo "LOADREADER tapes/mk/sambasort3.asc" >>$DEMO
echo "LOADPUNCH 0.flx" >>$DEMO
echo "SELECT 3 16" >>$DEMO
echo "HIDE MAGTAPE" >>$DEMO
echo "SHOW MAGTAPE" >>$DEMO
./maketext.sh "r<" >>$DEMO
#echo "WAITINPUT" >>$DEMO
#./maketext.sh "print,work,_p<" >>$DEMO
echo "WAITINPUT" >>$DEMO
./maketext.sh "run<" >>$DEMO
echo "DEBUG C01" >>$DEMO
echo "DEBUG 000" >>$DEMO
./maketext.sh "$NTAPES," >>$DEMO
echo "WAITINPUT" >>$DEMO
./maketext.sh "$RECLEN," >>$DEMO
echo "WAITINPUT" >>$DEMO
./maketext.sh "$mid," >>$DEMO
echo "WAITINPUT" >>$DEMO
./maketext.sh "$NKEY," >>$DEMO
echo "WAITINPUT" >>$DEMO
echo "FINISHPUNCH" >>$DEMO
echo "QUIT" >>$DEMO
./GIER $DEMO &
gierpid=$!
for ((count=0;count<1000000;count++))
do
sleep 1
echo count $count
flx2a <0.flx | grep -E -q 'EOT|interrupt' 
result=$?
if [ $result -eq 0 ]
then
  echo found termination in 0.flx
  sleep 1
  break
fi
if [ -d /proc/$gierpid ]
then
echo GIER running
else
echo GIER stopped
break
fi
done
kill $gierpid
cat buffer.log
flx2a <0.flx
echo result: $result
if [ $result -eq 0 ]
then
# mid bad
echo mid $mid bad
hi=$mid
else
# mid ok
echo mid $mid ok
lo=$mid
lastok=$mid
fi
done
echo lastok: $lastok

kill $xpid
