home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume9 / tbench / ibench < prev    next >
Encoding:
Text File  |  1989-11-12  |  1.9 KB  |  142 lines

  1. #!/bin/sh
  2. #
  3. ####################################################
  4. #     This software released to the public domain  #
  5. #     without restrictions of any kind.            #
  6. ####################################################
  7. #
  8. #    @(#)ibench    3.1 9/22/89
  9.  
  10. def_baud="9600 exta extb"
  11. def_flow="ixoff"
  12. def_mode="-icanon"
  13.  
  14. tty=
  15. baud=
  16. mode=
  17. len=
  18. min=0
  19.  
  20. while [ "$1" ]
  21. do
  22.     case "$1" in
  23.  
  24.     50|75|110|1200|2400|4800|9600|19200|38400|exta|extb)
  25.         def_baud=
  26.         baud="$baud $1"
  27.         ;;
  28.  
  29.     [1-9]|1[0-6])
  30.         min=$1
  31.         ;;
  32.  
  33.     19200,exta|38400,extb|exta,19200|extb,38400)
  34.         def_baud=
  35.         baud="$baud $1"
  36.         ;;
  37.     
  38.     ixoff|-ixoff)
  39.         def_flow=
  40.         flow="$flow $1"
  41.         ;;
  42.  
  43.     icanon|-icanon)
  44.         def_mode=
  45.         mode="$mode $1"
  46.         ;;
  47.     
  48.     /dev/*)
  49.         tty="$tty $1"
  50.         ;;
  51.  
  52.     tty*|cu*)
  53.         tty="$tty /dev/$1"
  54.         ;;
  55.     
  56.     *)
  57.         tty="$tty /dev/tty$1"
  58.         ;;
  59.     esac
  60.  
  61.     shift
  62. done
  63.  
  64. baud="$def_baud $baud"
  65. mode="$def_mode $mode"
  66. flow="$def_flow $flow"
  67.  
  68. ctty=`expr "$tty" : ' *\([^ ]*\)'`
  69.  
  70. lastb=0
  71. for b in $baud
  72. do
  73.     b1=`expr "$b" : '\(.*\),.*' \| "$b"` ;
  74.     b2=`expr "$b" : '.*,\(.*\)' \| "$b"` ;
  75.  
  76.     if [ $lastb != 0 -a $b1 != $lastb ]
  77.     then
  78.         for i in $tty
  79.         do
  80.             (
  81.             stty $lastb -echo -icanon -opost
  82.             perf -c "stty $b2"
  83.             sleep 5
  84.             ) <$i >$i &
  85.         done
  86.         wait
  87.     fi
  88.     lastb=$b1
  89.  
  90.     case $b1 in
  91.     50) vol=574000 ;;
  92.     75) vol=768000 ;;
  93.     110) vol=1152000 ;;
  94.     1200) vol=12000 ;;
  95.     2400) vol=24000 ;;
  96.     4800) vol=48000 ;;
  97.     9600) vol=96000 ;;
  98.     exta|19200) vol=192000 ;;
  99.     extb|38400) vol=384000 ;;
  100.     esac
  101.  
  102.  
  103.     for f in $flow
  104.     do
  105.         for m in $mode
  106.         do
  107.             t=
  108.             n=0
  109.  
  110.             for i in $tty
  111.             do
  112.                 t="$t $i"
  113.                 n=`expr $n + 1`
  114.  
  115.                 [ $n -ge $min ] || continue
  116.  
  117.                 msg="tty=$n, baud=$b1, mode=$m, flow=$f"
  118.                 echo "SEND $msg"
  119.  
  120.                 (
  121.                 stty $b1 -echo -opost -icanon
  122.                 perf -e "TEST $msg"
  123.                 perf -c "(sleep 30 ; cpu -t 50)&"
  124.                 ) <$ctty >$ctty
  125.  
  126.                 for j in $t
  127.                 do
  128.                     (
  129.                     stty $b1 -opost -echo -icanon ixon
  130.                     perf -c "stty $m $f"
  131.                     sleep 5
  132.                     perf $vol
  133.                     ) <$j >$j &
  134.                 done
  135.  
  136.                 wait
  137.                 sleep 10
  138.             done
  139.         done
  140.     done
  141. done 2>&1
  142.